events Package

activity Module

class kawaz.apps.events.activity.EventActivityMediator[source]

Bases: activities.mediator.ActivityMediator

alter(instance, activity, **kwargs)[source]
m2m_fields = ('attendees',)
prepare_context(activity, context, typename=None)[source]

admin Module

class kawaz.apps.events.admin.EventAdmin(model, admin_site)[source]

Bases: django.contrib.admin.options.ModelAdmin

list_display = ('title', 'organizer_name', 'get_pub_state_display', 'period_start', 'number_of_attendees', 'created_at', 'updated_at')
media
number_of_attendees(obj)[source]
organizer_name(obj)[source]
save_model(request, obj, form, change)[source]
search_fields = ('title', 'body', 'organizer__username', 'organizer__nickname', 'category__label', 'place')
class kawaz.apps.events.admin.EventCategoryAdmin(model, admin_site)[source]

Bases: django.contrib.admin.options.ModelAdmin

list_display = ('label', 'number_of_events')
media
number_of_events(obj)[source]

filters Module

class kawaz.apps.events.filters.EventFilter(data=None, queryset=None, prefix=None, strict=None, request=None)[source]

Bases: django_filters.filterset.FilterSet

class Meta[source]

Bases: object

fields = ['category']
model

alias of Event

EventFilter.base_filters = OrderedDict([('category', <django_filters.filters.ModelChoiceFilter object at 0x7f203062bc18>)])
EventFilter.declared_filters = OrderedDict([('category', <django_filters.filters.ModelChoiceFilter object at 0x7f203062bc18>)])

forms Module

class kawaz.apps.events.forms.EventCreationForm(*args, **kwargs)[source]

Bases: kawaz.apps.events.forms.EventForm

class Meta[source]

Bases: object

exclude = ('organizer', 'created_at', 'updated_at', 'attendees')
model

alias of Event

EventCreationForm.base_fields = OrderedDict([('pub_state', <django.forms.fields.TypedChoiceField object at 0x7f20305dce48>), ('title', <django.forms.fields.CharField object at 0x7f2030727f28>), ('body', <kawaz.core.forms.fields.MarkdownField object at 0x7f203056bac8>), ('period_start', <django.forms.fields.DateTimeField object at 0x7f20305dc2b0>), ('period_end', <django.forms.fields.DateTimeField object at 0x7f20305dc4e0>), ('place', <django.forms.fields.CharField object at 0x7f20305e8358>), ('number_restriction', <django.forms.fields.IntegerField object at 0x7f20305e84a8>), ('attendance_deadline', <django.forms.fields.DateTimeField object at 0x7f20305dc898>), ('category', <django.forms.models.ModelChoiceField object at 0x7f20305e85f8>)])
EventCreationForm.declared_fields = OrderedDict([('body', <kawaz.core.forms.fields.MarkdownField object at 0x7f203056bac8>), ('period_start', <django.forms.fields.DateTimeField object at 0x7f20305dc2b0>), ('period_end', <django.forms.fields.DateTimeField object at 0x7f20305dc4e0>), ('attendance_deadline', <django.forms.fields.DateTimeField object at 0x7f20305dc898>)])
EventCreationForm.media
class kawaz.apps.events.forms.EventForm(*args, **kwargs)[source]

Bases: kawaz.core.forms.mixins.Bootstrap3HorizontalFormHelperMixin, django.forms.models.ModelForm

class Meta[source]

Bases: object

exclude = ('organizer', 'created_at', 'updated_at')
model

alias of Event

EventForm.base_fields = OrderedDict([('pub_state', <django.forms.fields.TypedChoiceField object at 0x7f2030b087b8>), ('title', <django.forms.fields.CharField object at 0x7f20305dc978>), ('body', <kawaz.core.forms.fields.MarkdownField object at 0x7f203056bac8>), ('period_start', <django.forms.fields.DateTimeField object at 0x7f20305dc2b0>), ('period_end', <django.forms.fields.DateTimeField object at 0x7f20305dc4e0>), ('place', <django.forms.fields.CharField object at 0x7f20305dcc88>), ('number_restriction', <django.forms.fields.IntegerField object at 0x7f20305dcdd8>), ('attendance_deadline', <django.forms.fields.DateTimeField object at 0x7f20305dc898>), ('attendees', <django.forms.models.ModelMultipleChoiceField object at 0x7f20305dcf28>), ('category', <django.forms.models.ModelChoiceField object at 0x7f20311d8f28>)])
EventForm.declared_fields = OrderedDict([('body', <kawaz.core.forms.fields.MarkdownField object at 0x7f203056bac8>), ('period_start', <django.forms.fields.DateTimeField object at 0x7f20305dc2b0>), ('period_end', <django.forms.fields.DateTimeField object at 0x7f20305dc4e0>), ('attendance_deadline', <django.forms.fields.DateTimeField object at 0x7f20305dc898>)])
EventForm.media
class kawaz.apps.events.forms.EventUpdateForm(*args, **kwargs)[source]

Bases: kawaz.apps.events.forms.EventForm

base_fields = OrderedDict([('pub_state', <django.forms.fields.TypedChoiceField object at 0x7f20305e85c0>), ('title', <django.forms.fields.CharField object at 0x7f203104f390>), ('body', <kawaz.core.forms.fields.MarkdownField object at 0x7f203056bac8>), ('period_start', <django.forms.fields.DateTimeField object at 0x7f20305dc2b0>), ('period_end', <django.forms.fields.DateTimeField object at 0x7f20305dc4e0>), ('place', <django.forms.fields.CharField object at 0x7f20305e8a58>), ('number_restriction', <django.forms.fields.IntegerField object at 0x7f20305e8ba8>), ('attendance_deadline', <django.forms.fields.DateTimeField object at 0x7f20305dc898>), ('attendees', <kawaz.core.personas.forms.persona.PersonaChoiceField object at 0x7f203271e748>), ('category', <django.forms.models.ModelChoiceField object at 0x7f20305cb7b8>)])
declared_fields = OrderedDict([('body', <kawaz.core.forms.fields.MarkdownField object at 0x7f203056bac8>), ('period_start', <django.forms.fields.DateTimeField object at 0x7f20305dc2b0>), ('period_end', <django.forms.fields.DateTimeField object at 0x7f20305dc4e0>), ('attendance_deadline', <django.forms.fields.DateTimeField object at 0x7f20305dc898>), ('attendees', <kawaz.core.personas.forms.persona.PersonaChoiceField object at 0x7f203271e748>)])
media

gcal Module

Google Calendar 連携用 Backend kawaz.core.google.calendar に依存し settings.GOOGLE_CALENDAR_BACKEND で指定 されている

class kawaz.apps.events.gcal.KawazGoogleCalendarBackend[source]

Bases: google_calendar.backend.Backend

is_valid(event, raise_exception=False)[source]

Kawaz3のEventモデルインスタンスが、Google Calendar API Version3の Bodyパラメーターと適合しているかをチェックします

translate(event)[source]

Kawaz3のEventモデルをGoogle Calendar API Version3のBodyパラメーターに変換します

Params:
event [Event] Eventモデルインスタンス
Returns:[dict] パラメーター
kawaz.apps.events.gcal.get_base_url()[source]

models Module

class kawaz.apps.events.models.Category(*args, **kwargs)[source]

Bases: django.db.models.base.Model

イベントの大カテゴリ 運営が設置したものをユーザーが選ぶ

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception Category.MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

Category.events

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

Category.id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

Category.label

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

Category.objects = <django.db.models.manager.Manager object>
Category.order

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

class kawaz.apps.events.models.Event(id, pub_state, title, body, period_start, period_end, place, number_restriction, attendance_deadline, organizer, category, created_at, updated_at)[source]

Bases: django.db.models.base.Model

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception Event.MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

Event.active_attendees
Event.attend(user)[source]

指定されたユーザーをこのイベントに参加させる

Event.attendance_deadline

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

Event.attendees

Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.

In the example:

class Pizza(Model):
    toppings = ManyToManyField(Topping, related_name='pizzas')

pizza.toppings and topping.pizzas are ManyToManyDescriptor instances.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

Event.body

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

Event.category

Accessor to the related object on the forward side of a many-to-one or one-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

child.parent is a ForwardManyToOneDescriptor instance.

Event.category_id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

Event.clean()[source]

下記のルールに従ってValidationする 1. イベント終了時間は開始時間より遅い必要がある(時間は逆行できない) 2. 過去のイベントは作成できない(スネーク!タイムパラドックスだ!) 3. 7日以上にまたがるイベントは作成できない 4. 開始時間が指定されているが終了時間が指定されていないイベントは

作成できない(一生イベントに参加とかは物理的に不可能)
  1. 参加者制限が0人のイベントは作成できない
  2. 参加締め切りは未来でなければいけない
Event.created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

Event.get_absolute_url()[source]
Event.get_next_by_created_at(*moreargs, **morekwargs)
Event.get_next_by_updated_at(*moreargs, **morekwargs)
Event.get_previous_by_created_at(*moreargs, **morekwargs)
Event.get_previous_by_updated_at(*moreargs, **morekwargs)
Event.get_pub_state_display(*moreargs, **morekwargs)
Event.googlecalendarbridge

Accessor to the related object on the reverse side of a one-to-one relation.

In the example:

class Restaurant(Model):
    place = OneToOneField(Place, related_name='restaurant')

place.restaurant is a ReverseOneToOneDescriptor instance.

Event.humanized_period

開催日時をいい感じで描画します

Output:
5月10日(月) 13:00 ~ 19:00 2013年9月21(土) 13:00 ~ 19:00 6月11日(月) 13:00 ~ 6月12日(火) 10:00 未定 6月11日(月) 13:00 ~ 終了日時未定
Event.id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

Event.is_active()[source]

イベントが終了していないか否か

Event.is_attendee(user)[source]

参加者か否か

Event.is_over_deadline()[source]

参加締め切りを超えているか否か

Event.is_over_restriction()[source]

人数制限を超えているか否か

Event.number_restriction

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

Event.objects = <kawaz.apps.events.models.EventManager object>
Event.organizer

Accessor to the related object on the forward side of a many-to-one or one-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

child.parent is a ForwardManyToOneDescriptor instance.

Event.organizer_id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

Event.period_end

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

Event.period_start

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

Event.place

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

Event.pub_state

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

Event.quit(user)[source]

指定されたユーザーをこのイベントから退会させる

Event.save(force_insert=False, force_update=False, using=None, update_fields=None)

Saves the current instance. Override this in a subclass if you want to control the saving process.

The ‘force_insert’ and ‘force_update’ parameters can be used to insist that the “save” must be an SQL insert or update (or equivalent for non-SQL backends), respectively. Normally, they should not be set.

Event.title

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

Event.updated_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

class kawaz.apps.events.models.EventManager[source]

Bases: django.db.models.manager.Manager, kawaz.core.publishments.models.PublishmentManagerMixin

active(user)[source]

指定されたユーザーに公開されたイベントの中で、まだ終わっていない or イベントの終了時期が指定されていないかつ、作成日から30日日以内のイベントを含むクエリを返す

attendable(user)[source]

指定されたユーザーに公開されたイベントの中で、参加可能なイベントを 含むクエリを返す

author_field_name = 'organizer'
kawaz.apps.events.models.join_organizer(**kwargs)[source]

作成者を自動的に参加させるシグナルレシーバ

perms Module

class kawaz.apps.events.perms.EventPermissionLogic[source]

Bases: permission.logics.base.PermissionLogic

Permission logic of Event model which for

  • events.add_event
  • events.change_event
  • events.delete_event
  • events.attend_event
  • events.quit_event
has_perm(user_obj, perm, obj=None)[source]

Check if user have a specified event permissions (of obj)

urls Module

views Module

class kawaz.apps.events.views.EventActiveQuerySetMixin[source]

Bases: django.views.generic.list.MultipleObjectMixin

get_queryset()[source]
class kawaz.apps.events.views.EventAttendView(**kwargs)[source]

Bases: django.views.generic.edit.UpdateView

attend(request, *args, **kwargs)[source]

Calls the attend() method on the fetched object and then redirects to the success URL.

dispatch(request, *args, **kwargs)
get(request, *args, **kwargs)[source]
get_success_url()[source]
model

alias of Event

post(request, *args, **kwargs)[source]
class kawaz.apps.events.views.EventCalendarView(**kwargs)[source]

Bases: django.views.generic.detail.DetailView

EventをiCal形式でダウンロードするView

MIMETYPE = 'text/calendar'
dispatch(request, *args, **kwargs)
model

alias of Event

render_to_response(context, **response_kwargs)[source]
class kawaz.apps.events.views.EventCreateView(**kwargs)[source]

Bases: django.contrib.messages.views.SuccessMessageMixin, django.views.generic.edit.CreateView

dispatch(request, *args, **kwargs)
form_class

alias of EventCreationForm

form_valid(form)[source]
get_success_message(cleaned_data)[source]
model

alias of Event

class kawaz.apps.events.views.EventDateArchiveMixin(**kwargs)[source]

Bases: django.views.generic.dates.BaseArchiveIndexView

get(request, *args, **kwargs)[source]
class kawaz.apps.events.views.EventDeleteView(**kwargs)[source]

Bases: kawaz.core.views.delete.DeleteSuccessMessageMixin, django.views.generic.edit.DeleteView

dispatch(request, *args, **kwargs)
get_success_message()[source]
model

alias of Event

success_url = <django.utils.functional.lazy.<locals>.__proxy__ object>
class kawaz.apps.events.views.EventDetailView(**kwargs)[source]

Bases: django.views.generic.detail.DetailView

dispatch(request, *args, **kwargs)
model

alias of Event

class kawaz.apps.events.views.EventListView(**kwargs)[source]

Bases: django_filters.views.FilterView, kawaz.apps.events.views.EventActiveQuerySetMixin

filterset_class

alias of EventFilter

model

alias of Event

template_name_suffix = '_list'
class kawaz.apps.events.views.EventMonthListView(**kwargs)[source]

Bases: django.views.generic.dates.MonthArchiveView, kawaz.apps.events.views.EventPublishedQuerySetMixin, kawaz.apps.events.views.EventDateArchiveMixin

allow_empty = True
allow_future = True
date_field = 'period_start'
model

alias of Event

month_format = '%m'
class kawaz.apps.events.views.EventPreviewView(**kwargs)[source]

Bases: kawaz.core.views.preview.SingleObjectPreviewViewMixin, django.views.generic.detail.DetailView

model

alias of Event

template_name = 'events/components/event_detail.html'
class kawaz.apps.events.views.EventPublishedQuerySetMixin[source]

Bases: django.views.generic.list.MultipleObjectMixin

get_queryset()[source]
class kawaz.apps.events.views.EventQuitView(**kwargs)[source]

Bases: django.views.generic.edit.UpdateView

dispatch(request, *args, **kwargs)
get(request, *args, **kwargs)[source]
get_success_url()[source]
model

alias of Event

post(request, *args, **kwargs)[source]
quit(request, *args, **kwargs)[source]

Calls the quit() method on the fetched object and then redirects to the success URL.

class kawaz.apps.events.views.EventUpdateView(**kwargs)[source]

Bases: django.contrib.messages.views.SuccessMessageMixin, django.views.generic.edit.UpdateView

dispatch(request, *args, **kwargs)
form_class

alias of EventUpdateForm

get_success_message(cleaned_data)[source]
model

alias of Event

class kawaz.apps.events.views.EventYearListView(**kwargs)[source]

Bases: django.views.generic.dates.YearArchiveView, kawaz.apps.events.views.EventPublishedQuerySetMixin, kawaz.apps.events.views.EventDateArchiveMixin

allow_empty = True
allow_future = True
date_field = 'period_start'
make_object_list = True
model

alias of Event

paginate_by = 10