Reference

Rolca core

Core models

class rolca.core.models.Contest(*args, **kwargs)

Model for storing contests.

Contest object is the main object of single contest. It can contain multiple themes and all important dates for contest (start, end and results date).

is_active()

Check if contest is active.

number_of_photos()

Return number of photos submitted to the current contest.

save(*args, **kwargs)

Save Contest instance.

class rolca.core.models.Theme(*args, **kwargs)

Model for storing themes.

save(*args, **kwargs)

Save Theme instance.

class rolca.core.models.Author(*args, **kwargs)

Model for storing participents.

class rolca.core.models.Photo(*args, **kwargs)

Model for storing uploaded photos.

class rolca.core.models.File(*args, **kwargs)

Model for storing uploaded images.

Uploaded images can be stored prior to creating Photo instance. This way you can upload images while user is typing other data. Images are checked if meet size and format requirements before saving.

delete(*args, **kwargs)

Delete attached images and actual object.

get_long_edge()

Return longer edge of the image.

save(*args, **kwargs)

Add photo thumbnail and save object.

Core views

rolca.core.views.upload(request)

Handle uploaded photo and create new File object.

Core API

Core API viewsets

class rolca.core.api.viewsets.PhotoViewSet(**kwargs)

API view Photo objects.

get_queryset()

Return queryset for photos that can be shown to user.

Return: * all photos for already finished contests * user’s photos

serializer_class

alias of PhotoSerializer

class rolca.core.api.viewsets.ContestViewSet(**kwargs)

API view Contest objects.

serializer_class

alias of ContestSerializer

Core API serializers

class rolca.core.api.serializers.FileSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, **kwargs)

Serializer for File objects.

class Meta

Serializer configuration.

model

alias of File

class rolca.core.api.serializers.PhotoSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, **kwargs)

Serializer for Photo objects.

class Meta

Serializer configuration.

model

alias of Photo

class rolca.core.api.serializers.ThemeSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, **kwargs)

Serializer for Theme objects.

class Meta

Serializer configuration.

model

alias of Theme

class rolca.core.api.serializers.ContestSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, **kwargs)

Serializer for Contest objects.

class Meta

Serializer configuration.

model

alias of Contest

Core API permissions

class rolca.core.api.permissions.AdminOrReadOnly

Permission class for DRF.

has_permission(request, view)

Return True if method is safe or user is superuser.

Core API URLs

The routList is ment to be included in urlpatterns with the following code:

from rest_framework import routers

from rolca.core.api import urls as core_api_urls

route_lists = [
    core_api_urls.routeList,
    ...
]

router = routers.DefaultRouter()
for route_list in route_lists:
    for prefix, viewset in route_list:
        router.register(prefix, viewset)

For advanced configuration code can be accordingly changed to meet the needs.

Core Admin

class rolca.core.admin.ThemeInline(parent_model, admin_site)

Inline Theme tabular used in ContestAdmin.

model

alias of Theme

class rolca.core.admin.ContestAdmin(model, admin_site)

Contest configuration.

download_action(obj)

Generate ‘Download’ button.

save_model(request, obj, form, change)

Add current user to the model and save it.

Core URLs

Rolca frontend

Frontend views

rolca.frontend.views.upload_view(request, *args, **kwargs)

View for uploading photos.

class rolca.frontend.views.SelectContestView(**kwargs)

View for selecting the Salon.

get(request, *args, **kwargs)

Redirect to upload if only one contest is active.

get_queryset()

Filter queryset based on start and end date.

Frontend forms

class rolca.frontend.forms.PhotoForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, field_order=None, use_required_attribute=None)

Form for handling Photo uploads.

save(user, author, theme)

Save photo and create coresponding File object.

Frontend validators

Following validators are for validating ImageField, but can also be used with coresponding form fields.

To use them, list them in validators attribute of coresponding field:

my_field = models.ImageField(validators=[<validator_1>, <validator_2>,...])
rolca.frontend.validators.validate_format(value)

Check if file format is among allowed ones in settings.

List of allowed formats is read from ROLCA_ACCEPTED_FORMATS setting. If the setting is not defined, validation passes.

Parameters:

value (UploadedFile) – value of the field to be checked

Raises:
  • ValidationError – if image format is not among allowed formats
  • ImproperlyConfigured – if ROLCA_ACCEPTED_FORMATS setting is defined but is not a list
rolca.frontend.validators.validate_size(value)

Check if file is smaller then specified in settings.

Maximum file size is read from ROLCA_MAX_SIZE setting. If the setting is not defined, validation passes.

Parameters:

value (UploadedFile) – value of the field to be checked

Raises:
  • ValidationError – if image size is greated than one define in settings
  • ImproperlyConfigured – if ROLCA_MAX_SIZE setting is defined but is not a integer
rolca.frontend.validators.validate_long_edge(value)

Check if the long edge of the image meets requirements.

Maximum length of the long edge is read from ROLCA_MAX_LONG_EDGE setting. If the setting is not defined, validation passes.

Parameters:

value (UploadedFile) – value of the field to be checked

Raises:
  • ValidationError – if long edge is greated than one define in settings
  • ImproperlyConfigured – if ROLCA_MAX_LONG_EDGE setting is defined but is not a integer

Frontend decorators

rolca.frontend.decorators.check_contest_login_required(function)

Use login_required decorator if contest has set login_required.

Frontend URLs

Frontend context processors

rolca.frontend.context_processors.ui_configuration(request)

Set parameters for configuring UI.