products Package

activity Module

class kawaz.apps.products.activity.ProductActivityMediator[source]

Bases: activities.mediator.ActivityMediator

alter(instance, activity, **kwargs)[source]
notifiers = ('twitter_kawaz_info', 'twitter_kawaz_official')
prepare_context(activity, context, typename=None)[source]
class kawaz.apps.products.activity.ReleaseActivityMediator[source]

Bases: activities.mediator.ActivityMediator

alter(instance, activity, **kwargs)[source]
class kawaz.apps.products.activity.ScreenshotActivityMediator[source]

Bases: activities.mediator.ActivityMediator

alter(instance, activity, **kwargs)[source]

admin Module

class kawaz.apps.products.admin.CategoryAdmin(model, admin_site)[source]

Bases: django.contrib.admin.options.ModelAdmin

media
class kawaz.apps.products.admin.PackageReleaseAdmin(model, admin_site)[source]

Bases: django.contrib.admin.options.ModelAdmin

list_display = ('label', 'platform', 'version', 'downloads')
media
readonly_fields = ('downloads',)
search_fields = ('title', 'description')
class kawaz.apps.products.admin.PlatformAdmin(model, admin_site)[source]

Bases: django.contrib.admin.options.ModelAdmin

media
class kawaz.apps.products.admin.ProductAdmin(model, admin_site)[source]

Bases: django.contrib.admin.options.ModelAdmin

last_modifier_nickname(obj)[source]
list_display = ('title', 'last_modifier_nickname', 'get_display_mode_display', 'published_at', 'created_at', 'updated_at')
media
class kawaz.apps.products.admin.ScreenshotAdmin(model, admin_site)[source]

Bases: django.contrib.admin.options.ModelAdmin

media
class kawaz.apps.products.admin.URLReleaseAdmin(model, admin_site)[source]

Bases: django.contrib.admin.options.ModelAdmin

list_display = ('label', 'platform', 'version', 'url', 'pageview')
media
readonly_fields = ('pageview',)

filters Module

class kawaz.apps.products.filters.PlatformListGroupLinkWidget(attrs=None, choices=())[source]

Bases: kawaz.core.filters.widgets.ListGroupLinkWidget

プラットフォームアイコンを一覧に出すWidget

media
option_string()[source]
render_option(name, selected_choices, option_value, option_label)[source]

各要素のタグを描画している BootstrapのListGroupを使用するために以下のようなタグを吐く

<a class=”list-group-item” href=”?platform=1”><img class=”platform-icon” src=”/icon/windows.png”>Windows(10)</a>

render_options(choices, selected_choices, name)[source]
class kawaz.apps.products.filters.ProductFilter(data=None, queryset=None, prefix=None, strict=None, request=None)[source]

Bases: django_filters.filterset.FilterSet

class Meta[source]

Bases: object

fields = ['platforms', 'categories']
model

alias of Product

ProductFilter.base_filters = OrderedDict([('platforms', <django_filters.filters.ModelChoiceFilter object at 0x7f48fd95aeb8>), ('categories', <django_filters.filters.ModelChoiceFilter object at 0x7f48fdfc26d8>)])
ProductFilter.declared_filters = OrderedDict([('platforms', <django_filters.filters.ModelChoiceFilter object at 0x7f48fd95aeb8>), ('categories', <django_filters.filters.ModelChoiceFilter object at 0x7f48fdfc26d8>)])

forms Module

class kawaz.apps.products.forms.PackageReleaseForm(*args, **kwargs)[source]

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

class Meta[source]

Bases: object

fields = ('label', 'platform', 'version', 'file_content')
model

alias of PackageRelease

PackageReleaseForm.base_fields = OrderedDict([('label', <django.forms.fields.CharField object at 0x7f48fd233a58>), ('platform', <django.forms.models.ModelChoiceField object at 0x7f48fd2c0ac8>), ('version', <django.forms.fields.CharField object at 0x7f48fd2bdf60>), ('file_content', <django.forms.fields.FileField object at 0x7f48fd8dff60>)])
PackageReleaseForm.declared_fields = OrderedDict()
PackageReleaseForm.form_tag = False
PackageReleaseForm.media
class kawaz.apps.products.forms.ProductBaseForm(*args, **kwargs)[source]

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

class Meta[source]

Bases: object

exclude = ()
model

alias of Product

ProductBaseForm.base_fields = OrderedDict([('title', <django.forms.fields.CharField object at 0x7f48fd440a90>), ('slug', <django.forms.fields.SlugField object at 0x7f48fd72c4e0>), ('thumbnail', <django.forms.fields.ImageField object at 0x7f48fd241550>), ('description', <kawaz.core.forms.fields.MarkdownField object at 0x7f48fd43fe48>), ('advertisement_image', <django.forms.fields.ImageField object at 0x7f48fd241828>), ('trailer', <django.forms.fields.URLField object at 0x7f48fd2415f8>), ('project', <django.forms.models.ModelChoiceField object at 0x7f48fd43f898>), ('platforms', <django.forms.models.ModelMultipleChoiceField object at 0x7f48fd3a0ac8>), ('categories', <django.forms.models.ModelMultipleChoiceField object at 0x7f48fd1f9ef0>), ('contact_info', <django.forms.fields.CharField object at 0x7f48fd2c03c8>), ('published_at', <django.forms.fields.DateField object at 0x7f48fd4402e8>), ('administrators', <kawaz.core.personas.forms.persona.PersonaChoiceField object at 0x7f48fd440e80>), ('display_mode', <django.forms.fields.TypedChoiceField object at 0x7f48fd1f0f60>)])
ProductBaseForm.declared_fields = OrderedDict([('description', <kawaz.core.forms.fields.MarkdownField object at 0x7f48fd43fe48>), ('project', <django.forms.models.ModelChoiceField object at 0x7f48fd43f898>), ('platforms', <django.forms.models.ModelMultipleChoiceField object at 0x7f48fd3a0ac8>), ('categories', <django.forms.models.ModelMultipleChoiceField object at 0x7f48fd1f9ef0>), ('administrators', <kawaz.core.personas.forms.persona.PersonaChoiceField object at 0x7f48fd440e80>), ('published_at', <django.forms.fields.DateField object at 0x7f48fd4402e8>)])
ProductBaseForm.form_tag = False
ProductBaseForm.get_additional_objects()[source]
ProductBaseForm.media
class kawaz.apps.products.forms.ProductCreateForm(*args, **kwargs)[source]

Bases: kawaz.apps.products.forms.ProductBaseForm

class Meta[source]

Bases: kawaz.apps.products.forms.Meta

exclude = ('display_mode',)
ProductCreateForm.base_fields = OrderedDict([('title', <django.forms.fields.CharField object at 0x7f48fd2417f0>), ('slug', <django.forms.fields.SlugField object at 0x7f48fd6f4c50>), ('thumbnail', <django.forms.fields.ImageField object at 0x7f48fd2bd898>), ('description', <kawaz.core.forms.fields.MarkdownField object at 0x7f48fd43fe48>), ('advertisement_image', <django.forms.fields.ImageField object at 0x7f48fd2bd2e8>), ('trailer', <django.forms.fields.URLField object at 0x7f48fd96a128>), ('project', <django.forms.models.ModelChoiceField object at 0x7f48fd43f898>), ('platforms', <django.forms.models.ModelMultipleChoiceField object at 0x7f48fd3a0ac8>), ('categories', <django.forms.models.ModelMultipleChoiceField object at 0x7f48fd1f9ef0>), ('contact_info', <django.forms.fields.CharField object at 0x7f48fdfc2358>), ('published_at', <django.forms.fields.DateField object at 0x7f48fd4402e8>), ('administrators', <kawaz.core.personas.forms.persona.PersonaChoiceField object at 0x7f48fd440e80>)])
ProductCreateForm.declared_fields = OrderedDict([('description', <kawaz.core.forms.fields.MarkdownField object at 0x7f48fd43fe48>), ('project', <django.forms.models.ModelChoiceField object at 0x7f48fd43f898>), ('platforms', <django.forms.models.ModelMultipleChoiceField object at 0x7f48fd3a0ac8>), ('categories', <django.forms.models.ModelMultipleChoiceField object at 0x7f48fd1f9ef0>), ('administrators', <kawaz.core.personas.forms.persona.PersonaChoiceField object at 0x7f48fd440e80>), ('published_at', <django.forms.fields.DateField object at 0x7f48fd4402e8>)])
ProductCreateForm.media
class kawaz.apps.products.forms.ProductUpdateForm(*args, **kwargs)[source]

Bases: kawaz.apps.products.forms.ProductBaseForm

class Meta[source]

Bases: kawaz.apps.products.forms.Meta

exclude = ('slug', 'display_mode')
ProductUpdateForm.base_fields = OrderedDict([('title', <django.forms.fields.CharField object at 0x7f48fd95add8>), ('thumbnail', <django.forms.fields.ImageField object at 0x7f48fd2bdda0>), ('description', <kawaz.core.forms.fields.MarkdownField object at 0x7f48fd43fe48>), ('advertisement_image', <django.forms.fields.ImageField object at 0x7f48fd2331d0>), ('trailer', <django.forms.fields.URLField object at 0x7f48fe3c6d30>), ('project', <django.forms.models.ModelChoiceField object at 0x7f48fd43f898>), ('platforms', <django.forms.models.ModelMultipleChoiceField object at 0x7f48fd3a0ac8>), ('categories', <django.forms.models.ModelMultipleChoiceField object at 0x7f48fd1f9ef0>), ('contact_info', <django.forms.fields.CharField object at 0x7f48fdfc2908>), ('published_at', <django.forms.fields.DateField object at 0x7f48fd4402e8>), ('administrators', <kawaz.core.personas.forms.persona.PersonaChoiceField object at 0x7f48fd440e80>)])
ProductUpdateForm.declared_fields = OrderedDict([('description', <kawaz.core.forms.fields.MarkdownField object at 0x7f48fd43fe48>), ('project', <django.forms.models.ModelChoiceField object at 0x7f48fd43f898>), ('platforms', <django.forms.models.ModelMultipleChoiceField object at 0x7f48fd3a0ac8>), ('categories', <django.forms.models.ModelMultipleChoiceField object at 0x7f48fd1f9ef0>), ('administrators', <kawaz.core.personas.forms.persona.PersonaChoiceField object at 0x7f48fd440e80>), ('published_at', <django.forms.fields.DateField object at 0x7f48fd4402e8>)])
ProductUpdateForm.media
class kawaz.apps.products.forms.ScreenshotForm(*args, **kwargs)[source]

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

class Meta[source]

Bases: object

fields = ('image',)
model

alias of Screenshot

ScreenshotForm.base_fields = OrderedDict([('image', <django.forms.fields.ImageField object at 0x7f48fdfc2dd8>)])
ScreenshotForm.declared_fields = OrderedDict()
ScreenshotForm.form_tag = False
ScreenshotForm.media
class kawaz.apps.products.forms.URLReleaseForm(*args, **kwargs)[source]

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

class Meta[source]

Bases: object

fields = ('label', 'platform', 'version', 'url')
model

alias of URLRelease

URLReleaseForm.base_fields = OrderedDict([('label', <django.forms.fields.CharField object at 0x7f48fd2bd7b8>), ('platform', <django.forms.models.ModelChoiceField object at 0x7f48fd2bdb38>), ('version', <django.forms.fields.CharField object at 0x7f48fd2bdb70>), ('url', <django.forms.fields.URLField object at 0x7f48fdfa5c88>)])
URLReleaseForm.declared_fields = OrderedDict()
URLReleaseForm.form_tag = False
URLReleaseForm.media

models Module

class kawaz.apps.products.models.AbstractRelease(*args, **kwargs)[source]

Bases: django.db.models.base.Model

リリース形態のアブストラクトモデル

class Meta[source]

Bases: object

abstract = False
ordering = ('platform__pk', 'product__pk')
AbstractRelease.created_at

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

AbstractRelease.get_next_by_created_at(*moreargs, **morekwargs)
AbstractRelease.get_next_by_updated_at(*moreargs, **morekwargs)
AbstractRelease.get_previous_by_created_at(*moreargs, **morekwargs)
AbstractRelease.get_previous_by_updated_at(*moreargs, **morekwargs)
AbstractRelease.label

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

AbstractRelease.platform

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.

AbstractRelease.platform_id

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

AbstractRelease.product

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.

AbstractRelease.product_id

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

AbstractRelease.updated_at

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

AbstractRelease.version

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.products.models.Category(*args, **kwargs)[source]

Bases: django.db.models.base.Model

プロダクトが所属するカテゴリーを表すモデル

e.g. ACT, STG, ADV など

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception Category.MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

Category.description

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

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.

Category.product_set

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.

class kawaz.apps.products.models.PackageRelease(*args, **kwargs)[source]

Bases: kawaz.apps.products.models.AbstractRelease

ファイル添付形式でのリリースモデル

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception PackageRelease.MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

PackageRelease.downloads

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

PackageRelease.file_content

The descriptor for the file attribute on the model instance. Returns a FieldFile when accessed so you can do stuff like:

>>> from myapp.models import MyModel
>>> instance = MyModel.objects.get(pk=1)
>>> instance.file.size

Assigns a file object on assignment so you can do:

>>> with open('/path/to/hello.world', 'r') as f:
...     instance.file = File(f)
PackageRelease.filename

ファイル名を返します

PackageRelease.get_absolute_url()[source]
PackageRelease.get_next_by_created_at(*moreargs, **morekwargs)
PackageRelease.get_next_by_updated_at(*moreargs, **morekwargs)
PackageRelease.get_previous_by_created_at(*moreargs, **morekwargs)
PackageRelease.get_previous_by_updated_at(*moreargs, **morekwargs)
PackageRelease.id

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

PackageRelease.mimetype

Mimetypeを返します

PackageRelease.objects = <django.db.models.manager.Manager object>
PackageRelease.platform

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.

PackageRelease.product

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.

class kawaz.apps.products.models.Platform(*args, **kwargs)[source]

Bases: django.db.models.base.Model

プロダクトがサポートしているプラットフォームを表すモデル

e.g. Windows, Mac, Browser, iOS, PS Vita など

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception Platform.MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

Platform.icon

Just like the FileDescriptor, but for ImageFields. The only difference is assigning the width/height to the width_field/height_field, if appropriate.

Platform.id

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

Platform.label

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

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

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

Platform.packagerelease_set

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.

Platform.products

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.

Platform.urlrelease_set

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.

class kawaz.apps.products.models.Product(*args, **kwargs)[source]

Bases: django.db.models.base.Model

完成したプロダクトを表すモデル

メンバーであれば誰でも作成・管理可能

DISPLAY_MODES = (('featured', <django.utils.functional.lazy.<locals>.__proxy__ object at 0x7f48fe7a8da0>), ('tiled', <django.utils.functional.lazy.<locals>.__proxy__ object at 0x7f48fe7a8f60>), ('normal', <django.utils.functional.lazy.<locals>.__proxy__ object at 0x7f48fe7a8f98>))
exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception Product.MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

Product.administrators

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.

Product.advertisement_image

Enhanced ImageFileDescriptor

Just like the ImageFileDescriptor, but for ThumbnailField. The only difference is removing previous Image and Thumbnails from storage when the value has changed.

Product.categories

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.

Product.clean()[source]
Product.contact_info

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

Product.created_at

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

Product.description

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

Product.display_mode

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

Product.get_absolute_url()[source]
Product.get_display_mode_display(*moreargs, **morekwargs)
Product.get_next_by_created_at(*moreargs, **morekwargs)
Product.get_next_by_published_at(*moreargs, **morekwargs)
Product.get_next_by_updated_at(*moreargs, **morekwargs)
Product.get_previous_by_created_at(*moreargs, **morekwargs)
Product.get_previous_by_published_at(*moreargs, **morekwargs)
Product.get_previous_by_updated_at(*moreargs, **morekwargs)
Product.id

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

Product.join(user)[source]

指定されたユーザーを管理者にする

ユーザーに参加権限がない場合は PermissionDenied を投げる

Product.last_modifier

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.

Product.last_modifier_id

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

Product.objects = <django.db.models.manager.Manager object>
Product.packagereleases

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.

Product.platforms

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.

Product.project

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.

Product.project_id

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

Product.published_at

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

Product.quit(user)[source]

指定されたユーザーを管理者から外す

ユーザーに脱退権限がない場合は PermissionDenied を投げる

Product.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.

Product.screenshots

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.

Product.slug

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

Product.thumbnail

Enhanced ImageFileDescriptor

Just like the ImageFileDescriptor, but for ThumbnailField. The only difference is removing previous Image and Thumbnails from storage when the value has changed.

Product.title

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

Product.trailer

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

Product.updated_at

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

Product.urlreleases

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.

class kawaz.apps.products.models.Screenshot(*args, **kwargs)[source]

Bases: django.db.models.base.Model

プロダクトのスクリーンショットモデル

プロダクト管理者は何枚でもプロダクトに関連付けることが出来る

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception Screenshot.MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

Screenshot.id

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

Screenshot.image

Enhanced ImageFileDescriptor

Just like the ImageFileDescriptor, but for ThumbnailField. The only difference is removing previous Image and Thumbnails from storage when the value has changed.

Screenshot.objects = <django.db.models.manager.Manager object>
Screenshot.product

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.

Screenshot.product_id

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.products.models.URLRelease(*args, **kwargs)[source]

Bases: kawaz.apps.products.models.AbstractRelease

URL指定形式でのリリースモデル。主に外部ホスティングでのリリース用

e.g. iTunes App Store, Google Play, Vector など

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception URLRelease.MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

URLRelease.PLAY_NOW_PLATFORM_LABELS = ['ブラウザ']
URLRelease.app_id

そのリリースがiOSアプリかAndroidアプリだった場合は、そのアプリのAppIDを取得して返します そうではない場合、空白文字を返します

URLRelease.get_absolute_url()[source]
URLRelease.get_next_by_created_at(*moreargs, **morekwargs)
URLRelease.get_next_by_updated_at(*moreargs, **morekwargs)
URLRelease.get_previous_by_created_at(*moreargs, **morekwargs)
URLRelease.get_previous_by_updated_at(*moreargs, **morekwargs)
URLRelease.id

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

URLRelease.is_appstore

App Store の URL か否か

URLRelease.is_googleplay

Google Play の URL か否か

URLRelease.is_play_now()[source]
URLRelease.objects = <django.db.models.manager.Manager object>
URLRelease.pageview

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

URLRelease.platform

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.

URLRelease.product

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.

URLRelease.url

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.products.models.UnsavedForeignKey(to, on_delete=None, related_name=None, related_query_name=None, limit_choices_to=None, parent_link=False, to_field=None, db_constraint=True, **kwargs)[source]

Bases: django.db.models.fields.related.ForeignKey

allow_unsaved_instance_assignment = True

perms Module

class kawaz.apps.products.perms.ProductPermissionLogic[source]

Bases: permission.logics.base.PermissionLogic

allowed_permissions = ('products.add_product', 'products.change_product', 'products.delete_product', 'products.join_product', 'products.quit_product')
has_perm(user_obj, perm, obj=None)[source]

urls Module

views Module

class kawaz.apps.products.views.PackageReleaseDetailView(**kwargs)[source]

Bases: django.views.generic.detail.DetailView

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

alias of PackageRelease

class kawaz.apps.products.views.ProductCreateView(**kwargs)[source]

Bases: kawaz.apps.products.views.ProductFormMixin, django.views.generic.edit.CreateView

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

alias of ProductCreateForm

form_valid(*args, **kwargs)[source]
get(request, *args, **kwargs)[source]
get_form(form_class=<class 'kawaz.apps.products.forms.ProductCreateForm'>)[source]
get_success_message(cleaned_data)[source]
model

alias of Product

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

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

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

alias of Product

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

Bases: django.views.generic.detail.DetailView

model

alias of Product

class kawaz.apps.products.views.ProductFormMixin[source]

Bases: django.contrib.messages.views.SuccessMessageMixin

form_invalid(form, url_release_formset, package_release_formset, screenshot_formset)[source]
form_valid(form, url_release_formset, package_release_formset, screenshot_formset)[source]
get(request, *args, **kwargs)[source]
get_form_kwargs()[source]
get_package_release_formset()[source]
get_screenshot_formset()[source]
get_url_release_formset()[source]
post(request, *args, **kwargs)[source]
class kawaz.apps.products.views.ProductListView(**kwargs)[source]

Bases: django_filters.views.FilterView

filterset_class

alias of ProductFilter

model

alias of Product

paginate_by = 20
template_name_suffix = '_list'
class kawaz.apps.products.views.ProductPreviewView(**kwargs)[source]

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

model

alias of Product

template_name = 'products/components/product_detail.html'
class kawaz.apps.products.views.ProductUpdateView(**kwargs)[source]

Bases: kawaz.apps.products.views.ProductFormMixin, django.views.generic.edit.UpdateView

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

alias of ProductUpdateForm

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

alias of Product

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

Bases: django.views.generic.detail.DetailView

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

alias of URLRelease