CMS
This is the content management system for backend users which contains all database models, views, forms and templates.
- Admins
DisciplineAdmin
DisciplineAdmin.Media
DisciplineAdmin.actions
DisciplineAdmin.creator_group()
DisciplineAdmin.fields
DisciplineAdmin.get_action_choices()
DisciplineAdmin.get_form()
DisciplineAdmin.get_list_display()
DisciplineAdmin.get_queryset()
DisciplineAdmin.list_display
DisciplineAdmin.list_display_links
DisciplineAdmin.list_filter
DisciplineAdmin.list_per_page
DisciplineAdmin.make_released()
DisciplineAdmin.make_unreleased()
DisciplineAdmin.media
DisciplineAdmin.modules_released()
DisciplineAdmin.modules_unreleased()
DisciplineAdmin.readonly_fields
DisciplineAdmin.save_model()
DisciplineAdmin.search_fields
DisciplineAdmin.words_released()
DocumentAdmin
DocumentAdmin.Media
DocumentAdmin.article_display()
DocumentAdmin.creator_group()
DocumentAdmin.exclude
DocumentAdmin.get_action_choices()
DocumentAdmin.get_list_filter()
DocumentAdmin.get_queryset()
DocumentAdmin.has_audio()
DocumentAdmin.has_image()
DocumentAdmin.inlines
DocumentAdmin.list_display
DocumentAdmin.list_filter
DocumentAdmin.list_per_page
DocumentAdmin.media
DocumentAdmin.ordering
DocumentAdmin.readonly_fields
DocumentAdmin.related_training_set()
DocumentAdmin.save_model()
DocumentAdmin.search_fields
FeedbackAdmin
FeedbackAdmin.Media
FeedbackAdmin.actions
FeedbackAdmin.has_add_permission()
FeedbackAdmin.has_change_permission()
FeedbackAdmin.list_display
FeedbackAdmin.list_filter
FeedbackAdmin.mark_as_read()
FeedbackAdmin.mark_as_unread()
FeedbackAdmin.media
FeedbackAdmin.model
FeedbackAdmin.readonly_fields
FeedbackAdmin.search_fields
FeedbackAdmin.sortable_by
GroupAPIKeyAdmin
SponsorAdmin
TrainingSetAdmin
TrainingSetAdmin.Media
TrainingSetAdmin.actions
TrainingSetAdmin.creator_group()
TrainingSetAdmin.exclude
TrainingSetAdmin.fields
TrainingSetAdmin.form
TrainingSetAdmin.get_action_choices()
TrainingSetAdmin.get_form()
TrainingSetAdmin.get_list_display()
TrainingSetAdmin.get_queryset()
TrainingSetAdmin.list_display
TrainingSetAdmin.list_display_links
TrainingSetAdmin.list_filter
TrainingSetAdmin.list_per_page
TrainingSetAdmin.make_released()
TrainingSetAdmin.make_unreleased()
TrainingSetAdmin.media
TrainingSetAdmin.readonly_fields
TrainingSetAdmin.related_disciplines()
TrainingSetAdmin.save_model()
TrainingSetAdmin.search_fields
TrainingSetAdmin.words()
TrainingSetAdmin.words_released()
TrainingSetAdmin.words_unreleased()
- Alternative Word Admin
- Discipline Admin
DisciplineAdmin
DisciplineAdmin.Media
DisciplineAdmin.actions
DisciplineAdmin.creator_group()
DisciplineAdmin.fields
DisciplineAdmin.get_action_choices()
DisciplineAdmin.get_form()
DisciplineAdmin.get_list_display()
DisciplineAdmin.get_queryset()
DisciplineAdmin.list_display
DisciplineAdmin.list_display_links
DisciplineAdmin.list_filter
DisciplineAdmin.list_per_page
DisciplineAdmin.make_released()
DisciplineAdmin.make_unreleased()
DisciplineAdmin.media
DisciplineAdmin.modules_released()
DisciplineAdmin.modules_unreleased()
DisciplineAdmin.readonly_fields
DisciplineAdmin.save_model()
DisciplineAdmin.search_fields
DisciplineAdmin.words_released()
- Document Admin
DocumentAdmin
DocumentAdmin.Media
DocumentAdmin.article_display()
DocumentAdmin.creator_group()
DocumentAdmin.exclude
DocumentAdmin.get_action_choices()
DocumentAdmin.get_list_filter()
DocumentAdmin.get_queryset()
DocumentAdmin.has_audio()
DocumentAdmin.has_image()
DocumentAdmin.inlines
DocumentAdmin.list_display
DocumentAdmin.list_filter
DocumentAdmin.list_per_page
DocumentAdmin.media
DocumentAdmin.ordering
DocumentAdmin.readonly_fields
DocumentAdmin.related_training_set()
DocumentAdmin.save_model()
DocumentAdmin.search_fields
- Document Image Admin
- Feedback Admin
FeedbackAdmin
FeedbackAdmin.Media
FeedbackAdmin.actions
FeedbackAdmin.has_add_permission()
FeedbackAdmin.has_change_permission()
FeedbackAdmin.list_display
FeedbackAdmin.list_filter
FeedbackAdmin.mark_as_read()
FeedbackAdmin.mark_as_unread()
FeedbackAdmin.media
FeedbackAdmin.model
FeedbackAdmin.readonly_fields
FeedbackAdmin.search_fields
FeedbackAdmin.sortable_by
- Group API Key Admin
- Sponsor Admin
- Training Set Admin
TrainingSetAdmin
TrainingSetAdmin.Media
TrainingSetAdmin.actions
TrainingSetAdmin.creator_group()
TrainingSetAdmin.exclude
TrainingSetAdmin.fields
TrainingSetAdmin.form
TrainingSetAdmin.get_action_choices()
TrainingSetAdmin.get_form()
TrainingSetAdmin.get_list_display()
TrainingSetAdmin.get_queryset()
TrainingSetAdmin.list_display
TrainingSetAdmin.list_display_links
TrainingSetAdmin.list_filter
TrainingSetAdmin.list_per_page
TrainingSetAdmin.make_released()
TrainingSetAdmin.make_unreleased()
TrainingSetAdmin.media
TrainingSetAdmin.readonly_fields
TrainingSetAdmin.related_disciplines()
TrainingSetAdmin.save_model()
TrainingSetAdmin.search_fields
TrainingSetAdmin.words()
TrainingSetAdmin.words_released()
TrainingSetAdmin.words_unreleased()
- Models
AlternativeWord
Discipline
Discipline.DoesNotExist
Discipline.MultipleObjectsReturned
Discipline.children
Discipline.created_by
Discipline.created_by_id
Discipline.creator_is_admin
Discipline.description
Discipline.feedback
Discipline.get_nested_training_sets()
Discipline.icon
Discipline.id
Discipline.image_tag()
Discipline.is_valid()
Discipline.level
Discipline.lft
Discipline.parent
Discipline.parent_id
Discipline.released
Discipline.rght
Discipline.title
Discipline.training_sets
Discipline.tree_id
Document
Document.DoesNotExist
Document.MultipleObjectsReturned
Document.alternatives
Document.article
Document.audio
Document.converted
Document.created_by
Document.created_by_id
Document.creation_date
Document.creator_is_admin
Document.document_image
Document.example_sentence
Document.feedback
Document.get_article_display()
Document.get_next_by_creation_date()
Document.get_previous_by_creation_date()
Document.get_word_type_display()
Document.id
Document.objects
Document.save()
Document.training_sets
Document.word
Document.word_type
DocumentImage
DocumentImage.DoesNotExist
DocumentImage.MultipleObjectsReturned
DocumentImage.confirmed
DocumentImage.crop_img()
DocumentImage.document
DocumentImage.document_id
DocumentImage.id
DocumentImage.image
DocumentImage.image_tag()
DocumentImage.objects
DocumentImage.save()
DocumentImage.save_original_img()
Feedback
Feedback.DoesNotExist
Feedback.MultipleObjectsReturned
Feedback.comment
Feedback.content_object
Feedback.content_object_link()
Feedback.content_type
Feedback.content_type_id
Feedback.created_date
Feedback.get_next_by_created_date()
Feedback.get_previous_by_created_date()
Feedback.id
Feedback.object_id
Feedback.objects
Feedback.read_by
Feedback.read_by_id
GroupAPIKey
GroupAPIKey.DoesNotExist
GroupAPIKey.MultipleObjectsReturned
GroupAPIKey.creation_date
GroupAPIKey.expiry_date
GroupAPIKey.get_from_token()
GroupAPIKey.get_next_by_creation_date()
GroupAPIKey.get_previous_by_creation_date()
GroupAPIKey.group
GroupAPIKey.group_id
GroupAPIKey.id
GroupAPIKey.is_valid()
GroupAPIKey.objects
GroupAPIKey.qr_code()
GroupAPIKey.qr_code_download_link()
GroupAPIKey.qr_code_link()
GroupAPIKey.qr_code_url
GroupAPIKey.revoked
GroupAPIKey.token
Sponsor
Static
TrainingSet
TrainingSet.DoesNotExist
TrainingSet.MultipleObjectsReturned
TrainingSet.children
TrainingSet.created_by
TrainingSet.created_by_id
TrainingSet.creator_is_admin
TrainingSet.description
TrainingSet.discipline
TrainingSet.documents
TrainingSet.feedback
TrainingSet.icon
TrainingSet.id
TrainingSet.image_tag()
TrainingSet.level
TrainingSet.lft
TrainingSet.parent
TrainingSet.parent_id
TrainingSet.released
TrainingSet.rght
TrainingSet.save()
TrainingSet.style_description_field()
TrainingSet.title
TrainingSet.tree_id
convert_umlaute_audio()
convert_umlaute_images()
- Alternative Word
- Content Type
- Discipline
Discipline
Discipline.DoesNotExist
Discipline.MultipleObjectsReturned
Discipline.children
Discipline.created_by
Discipline.created_by_id
Discipline.creator_is_admin
Discipline.description
Discipline.feedback
Discipline.get_nested_training_sets()
Discipline.icon
Discipline.id
Discipline.image_tag()
Discipline.is_valid()
Discipline.level
Discipline.lft
Discipline.parent
Discipline.parent_id
Discipline.released
Discipline.rght
Discipline.title
Discipline.training_sets
Discipline.tree_id
- Document
Document
Document.DoesNotExist
Document.MultipleObjectsReturned
Document.alternatives
Document.article
Document.audio
Document.converted
Document.created_by
Document.created_by_id
Document.creation_date
Document.creator_is_admin
Document.document_image
Document.example_sentence
Document.feedback
Document.get_article_display()
Document.get_next_by_creation_date()
Document.get_previous_by_creation_date()
Document.get_word_type_display()
Document.id
Document.objects
Document.save()
Document.training_sets
Document.word
Document.word_type
- Document Image
DocumentImage
DocumentImage.DoesNotExist
DocumentImage.MultipleObjectsReturned
DocumentImage.confirmed
DocumentImage.crop_img()
DocumentImage.document
DocumentImage.document_id
DocumentImage.id
DocumentImage.image
DocumentImage.image_tag()
DocumentImage.objects
DocumentImage.save()
DocumentImage.save_original_img()
- Feedback
Feedback
Feedback.DoesNotExist
Feedback.MultipleObjectsReturned
Feedback.comment
Feedback.content_object
Feedback.content_object_link()
Feedback.content_type
Feedback.content_type_id
Feedback.created_date
Feedback.get_next_by_created_date()
Feedback.get_previous_by_created_date()
Feedback.id
Feedback.object_id
Feedback.objects
Feedback.read_by
Feedback.read_by_id
- Group
- Group API Key
GroupAPIKey
GroupAPIKey.DoesNotExist
GroupAPIKey.MultipleObjectsReturned
GroupAPIKey.creation_date
GroupAPIKey.expiry_date
GroupAPIKey.get_from_token()
GroupAPIKey.get_next_by_creation_date()
GroupAPIKey.get_previous_by_creation_date()
GroupAPIKey.group
GroupAPIKey.group_id
GroupAPIKey.id
GroupAPIKey.is_valid()
GroupAPIKey.objects
GroupAPIKey.qr_code()
GroupAPIKey.qr_code_download_link()
GroupAPIKey.qr_code_link()
GroupAPIKey.qr_code_url
GroupAPIKey.revoked
GroupAPIKey.token
generate_default_token()
- Sponsor
- Static
- Training Set
TrainingSet
TrainingSet.DoesNotExist
TrainingSet.MultipleObjectsReturned
TrainingSet.children
TrainingSet.created_by
TrainingSet.created_by_id
TrainingSet.creator_is_admin
TrainingSet.description
TrainingSet.discipline
TrainingSet.documents
TrainingSet.feedback
TrainingSet.icon
TrainingSet.id
TrainingSet.image_tag()
TrainingSet.level
TrainingSet.lft
TrainingSet.parent
TrainingSet.parent_id
TrainingSet.released
TrainingSet.rght
TrainingSet.save()
TrainingSet.style_description_field()
TrainingSet.title
TrainingSet.tree_id
- Templatetags
Admin
Register models for Django’s CRUD back end and specify autocomplete_fields, search_fields and nested modules
- lunes_cms.cms.admin.get_app_list(self, request)
Function that returns a sorted list of all the installed apps that have been registered in this site.
- Parameters:
self (class: admin.AdminSite) – A handle to the
admin.AdminSite
request (django.http.request) – current user request
- Returns:
list of app dictionaries (e.g. containing models)
- Return type:
Apps
Forms
- class lunes_cms.cms.forms.DisciplineChoiceField(queryset, **kwargs)
Bases:
ModelMultipleChoiceField
Custom form field in order to include parent nodes in string representation. Inherits from forms.ModelMultipleChocieField.
- label_from_instance(obj)
Convert objects into strings and generate the labels for the choices presented by this object. Subclasses can override this method to customize the display of the choices.
- class lunes_cms.cms.forms.TrainingSetForm(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, instance=None, use_required_attribute=None, renderer=None)
Bases:
ModelForm
Defining custom form for the training set admin interface. Inherits from forms.ModelForm.
Form fields:
released
: Released (BooleanField
)title
: Training set (CharField
)description
: Description (CharField
)icon
: Icon (ImageField
)documents
: vocabulary (ModelMultipleChoiceField
)discipline
: disciplines (DisciplineChoiceField
)
- clean()
Make sure the training set is only released when it contains at least as many vocabularies as defined in
TRAININGSET_MIN_DOCS
.- Returns:
The cleaned data for this form
- Return type:
- description = <django.db.models.CharField>
- property media
Return all media required to render the widgets on this form.
- title = <django.db.models.CharField>
List Filter
- class lunes_cms.cms.list_filter.ApprovedImageListFilter(request, params, model, model_admin)
Bases:
SimpleListFilter
Filter for approved images within document list display. Inherits from admin.SimpleListFilter.
- default_value = None
- lookups(request, model_admin)
Defining look up values that can be seen in the admin interface. Returns tuples: the first element is a coded value, whereas the second one is human-readable
- Parameters:
request (django.http.request) – current user request
model_admin (ModelAdmin) – admin of current model
- Returns:
list of tuples containing id and title of each discipline
- Return type:
- parameter_name = 'images'
- queryset(request, queryset)
Returns the filtered queryset based on the value provided in the query string and retrievable via self.value().
- Parameters:
request (django.http.request) – current user request
queryset (QuerySet) – current queryset
- Returns:
filtered queryset based on the value provided in the query string
- Return type:
QuerySet
- title = 'Images'
- class lunes_cms.cms.list_filter.AssignedListFilter(request, params, model, model_admin)
Bases:
SimpleListFilter
Filter for documents that are either assigned or unassigned to at least one training set. Inherits from admin.SimpleListFilter.
- default_value = None
- lookups(request, model_admin)
Defining look up values that can be seen in the admin interface. Returns tuples: the first element is a coded value, whereas the second one is human-readable
- Parameters:
request (django.http.request) – current user request
model_admin (ModelAdmin) – admin of current model
- Returns:
list of tuples containing id and title of each discipline
- Return type:
- parameter_name = 'assigned'
- queryset(request, queryset)
Returns the filtered queryset based on the value provided in the query string and retrievable via self.value().
- Parameters:
request (django.http.request) – current user request
queryset (QuerySet) – current queryset
- Returns:
filtered queryset based on the value provided in the query string
- Return type:
QuerySet
- title = 'Assignments'
- class lunes_cms.cms.list_filter.DisciplineListFilter(request, params, model, model_admin)
Bases:
SimpleListFilter
Generic Filter for models that have a direct relationship to disciplines. Inherits from admin.SimpleListFilter.
- lookups(request, model_admin)
Defining look up values that can be seen in the admin interface. Returns tuples: the first element is a coded value, whereas the second one is human-readable.
- Parameters:
request (django.http.request) – current user request
model_admin (ModelAdmin) – admin of current model
- Returns:
list of tuples containing id and title of each discipline
- Return type:
- parameter_name = 'disciplines'
- queryset(request, queryset)
Returns the filtered queryset based on the value provided in the query string and retrievable via self.value().
- Parameters:
request (django.http.request) – current user request
queryset (QuerySet) – current queryset
- Returns:
filtered queryset based on the value provided in the query string
- Return type:
QuerySet
- template = 'admin/discipline_filter.html'
- title = 'disciplines'
- class lunes_cms.cms.list_filter.DocumentDisciplineListFilter(request, params, model, model_admin)
Bases:
DisciplineListFilter
Filter for disciplines within document list display. Inherits from admin.SimpleListFilter.
- queryset(request, queryset)
Returns the filtered queryset based on the value provided in the query string and retrievable via self.value().
- Parameters:
request (django.http.request) – current user request
queryset (QuerySet) – current queryset
- Returns:
filtered queryset based on the value provided in the query string
- Return type:
QuerySet
- class lunes_cms.cms.list_filter.DocumentTrainingSetListFilter(request, params, model, model_admin)
Bases:
SimpleListFilter
Filter for training sets within document list display. Inherits from admin.SimpleListFilter.
- lookups(request, model_admin)
Defining look up values that can be seen in the admin interface. Returns tuples: the first element is a coded value, whereas the second one is human-readable.
- Parameters:
request (django.http.request) – current user request
model_admin (ModelAdmin) – admin of current model
- Returns:
list of tuples containing id and title of each training set
- Return type:
- parameter_name = 'training set'
- queryset(request, queryset)
Returns the filtered queryset based on the value provided in the query string and retrievable via self.value().
- Parameters:
request (django.http.request) – current user request
queryset (QuerySet) – current queryset
- Returns:
filtered queryset based on the value provided in the query string
- Return type:
QuerySet
- title = 'training sets'
Urls
Map paths to view functions. Defines custom schema views and a router that handles the url patterns described in the README.md file
- lunes_cms.cms.urls.urlpatterns = [<URLPattern 'admin/password_reset/' [name='admin_password_reset']>, <URLPattern 'admin/password_reset/done/' [name='password_reset_done']>, <URLPattern 'reset/<uidb64>/<token>/' [name='password_reset_confirm']>, <URLPattern 'reset/done/' [name='password_reset_complete']>, <URLResolver <URLPattern list> (admin:admin) 'admin/'>, <URLPattern 'i18n.js' [name='javascript-translations']>]
The url patterns of this module (see URL dispatcher)
[ <URLPattern 'admin/password_reset/' [name='admin_password_reset']>, <URLPattern 'admin/password_reset/done/' [name='password_reset_done']>, <URLPattern 'reset/<uidb64>/<token>/' [name='password_reset_confirm']>, <URLPattern 'reset/done/' [name='password_reset_complete']>, <URLResolver <URLPattern list> (admin:admin) 'admin/'>, <URLPattern 'i18n.js' [name='javascript-translations']>, ]
Utils
A collection of helper methods and classes
- lunes_cms.cms.utils.create_resource_path(parent_dir, filename)
Create a file path with a uuid and given parent directory.
- lunes_cms.cms.utils.document_to_string(doc)
Create string representation of a document object
- Parameters:
doc (models.Document) – Document object
- Returns:
String representation of document image
- Return type:
- lunes_cms.cms.utils.get_child_count(disc)
Returns the number of children of a discipline. Every child contains at least one training set or is a direct/indirect parent of a discipline that contains one.
- Parameters:
disc (Discipline) – Discipline instance
- Returns:
sum of children
- Return type:
- lunes_cms.cms.utils.get_image_tag(image, width=330)
Image thumbnail to display a preview of a image
- lunes_cms.cms.utils.get_random_key(length: int = 10, excluded_chars: list | None = None) str
Auxiliary function that creates a random key based on latin letters and digits using the passed length. Optionally, it is possible to exclude characters like l and 1.
- lunes_cms.cms.utils.get_training_set_count(disc)
Returns the total number of training sets of a discipline and all its child elements.
- Parameters:
disc (Discipline) – Discipline instance
- Returns:
sum of training sets
- Return type:
Validators
- lunes_cms.cms.validators.validate_file_extension(value)
Function to validate the audio file format
- Parameters:
value (audio file) – audio file returned by a models.FileField
- Returns:
None
- Return type:
None
- lunes_cms.cms.validators.validate_file_size(value)
Function to validate the size of an audio file
- Parameters:
value (audio file) – audio file returned by a models.FileField
- Returns:
None
- Return type:
None
- lunes_cms.cms.validators.validate_multiple_extensions(value)
Function that checks if an audio file has multiple extensions
- Parameters:
value (audio file) – audio file returned by a models.FileField
- Returns:
None
- Return type:
None
Widgets
- class lunes_cms.cms.widgets.ManyToManyOverlay(*args, **kwargs)
Bases:
FilteredSelectMultiple
Adds an overlay to the FilteredSelectMultiple widget to preview images and audios of Document objects. Inherits from django.contrib.admin.widgets.FilteredSelectMultiple.
- class Media
Bases:
object
Media class of ManyToManyOverlay
- css = {'all': ('css/overlay.css',)}
- js = ('js/manytomany_overlay.js', 'js/overlay.js', '/en/i18n.js')
- __init__(*args, **kwargs)
Instantiates model by calling super() and passing a new onclick event to the widget.
- property media