CMS
This is the content management system for backend users which contains all database models, views, forms and templates.
- Admins
DisciplineAdminDisciplineAdmin.MediaDisciplineAdmin.actionsDisciplineAdmin.creator_group()DisciplineAdmin.fieldsDisciplineAdmin.get_action_choices()DisciplineAdmin.get_form()DisciplineAdmin.get_list_display()DisciplineAdmin.get_queryset()DisciplineAdmin.list_displayDisciplineAdmin.list_display_linksDisciplineAdmin.list_filterDisciplineAdmin.list_per_pageDisciplineAdmin.make_released()DisciplineAdmin.make_unreleased()DisciplineAdmin.mediaDisciplineAdmin.modules_released()DisciplineAdmin.modules_unreleased()DisciplineAdmin.readonly_fieldsDisciplineAdmin.save_model()DisciplineAdmin.search_fieldsDisciplineAdmin.words_released()
DocumentAdminDocumentAdmin.MediaDocumentAdmin.article_display()DocumentAdmin.creator_group()DocumentAdmin.excludeDocumentAdmin.get_action_choices()DocumentAdmin.get_list_filter()DocumentAdmin.get_queryset()DocumentAdmin.has_audio()DocumentAdmin.has_image()DocumentAdmin.inlinesDocumentAdmin.list_displayDocumentAdmin.list_filterDocumentAdmin.list_per_pageDocumentAdmin.mediaDocumentAdmin.orderingDocumentAdmin.readonly_fieldsDocumentAdmin.related_training_set()DocumentAdmin.save_model()DocumentAdmin.search_fields
FeedbackAdminFeedbackAdmin.MediaFeedbackAdmin.actionsFeedbackAdmin.has_add_permission()FeedbackAdmin.has_change_permission()FeedbackAdmin.list_displayFeedbackAdmin.list_filterFeedbackAdmin.mark_as_read()FeedbackAdmin.mark_as_unread()FeedbackAdmin.mediaFeedbackAdmin.modelFeedbackAdmin.readonly_fieldsFeedbackAdmin.search_fieldsFeedbackAdmin.sortable_by
GroupAPIKeyAdminSponsorAdminTrainingSetAdminTrainingSetAdmin.MediaTrainingSetAdmin.actionsTrainingSetAdmin.creator_group()TrainingSetAdmin.excludeTrainingSetAdmin.fieldsTrainingSetAdmin.formTrainingSetAdmin.get_action_choices()TrainingSetAdmin.get_form()TrainingSetAdmin.get_list_display()TrainingSetAdmin.get_queryset()TrainingSetAdmin.list_displayTrainingSetAdmin.list_display_linksTrainingSetAdmin.list_filterTrainingSetAdmin.list_per_pageTrainingSetAdmin.make_released()TrainingSetAdmin.make_unreleased()TrainingSetAdmin.mediaTrainingSetAdmin.readonly_fieldsTrainingSetAdmin.related_disciplines()TrainingSetAdmin.save_model()TrainingSetAdmin.search_fieldsTrainingSetAdmin.words()TrainingSetAdmin.words_released()TrainingSetAdmin.words_unreleased()
- Alternative Word Admin
- Discipline Admin
DisciplineAdminDisciplineAdmin.MediaDisciplineAdmin.actionsDisciplineAdmin.creator_group()DisciplineAdmin.fieldsDisciplineAdmin.get_action_choices()DisciplineAdmin.get_form()DisciplineAdmin.get_list_display()DisciplineAdmin.get_queryset()DisciplineAdmin.list_displayDisciplineAdmin.list_display_linksDisciplineAdmin.list_filterDisciplineAdmin.list_per_pageDisciplineAdmin.make_released()DisciplineAdmin.make_unreleased()DisciplineAdmin.mediaDisciplineAdmin.modules_released()DisciplineAdmin.modules_unreleased()DisciplineAdmin.readonly_fieldsDisciplineAdmin.save_model()DisciplineAdmin.search_fieldsDisciplineAdmin.words_released()
- Document Admin
DocumentAdminDocumentAdmin.MediaDocumentAdmin.article_display()DocumentAdmin.creator_group()DocumentAdmin.excludeDocumentAdmin.get_action_choices()DocumentAdmin.get_list_filter()DocumentAdmin.get_queryset()DocumentAdmin.has_audio()DocumentAdmin.has_image()DocumentAdmin.inlinesDocumentAdmin.list_displayDocumentAdmin.list_filterDocumentAdmin.list_per_pageDocumentAdmin.mediaDocumentAdmin.orderingDocumentAdmin.readonly_fieldsDocumentAdmin.related_training_set()DocumentAdmin.save_model()DocumentAdmin.search_fields
- Document Image Admin
- Feedback Admin
FeedbackAdminFeedbackAdmin.MediaFeedbackAdmin.actionsFeedbackAdmin.has_add_permission()FeedbackAdmin.has_change_permission()FeedbackAdmin.list_displayFeedbackAdmin.list_filterFeedbackAdmin.mark_as_read()FeedbackAdmin.mark_as_unread()FeedbackAdmin.mediaFeedbackAdmin.modelFeedbackAdmin.readonly_fieldsFeedbackAdmin.search_fieldsFeedbackAdmin.sortable_by
- Group API Key Admin
- Sponsor Admin
- Training Set Admin
TrainingSetAdminTrainingSetAdmin.MediaTrainingSetAdmin.actionsTrainingSetAdmin.creator_group()TrainingSetAdmin.excludeTrainingSetAdmin.fieldsTrainingSetAdmin.formTrainingSetAdmin.get_action_choices()TrainingSetAdmin.get_form()TrainingSetAdmin.get_list_display()TrainingSetAdmin.get_queryset()TrainingSetAdmin.list_displayTrainingSetAdmin.list_display_linksTrainingSetAdmin.list_filterTrainingSetAdmin.list_per_pageTrainingSetAdmin.make_released()TrainingSetAdmin.make_unreleased()TrainingSetAdmin.mediaTrainingSetAdmin.readonly_fieldsTrainingSetAdmin.related_disciplines()TrainingSetAdmin.save_model()TrainingSetAdmin.search_fieldsTrainingSetAdmin.words()TrainingSetAdmin.words_released()TrainingSetAdmin.words_unreleased()
- Models
AlternativeWordDisciplineDiscipline.DoesNotExistDiscipline.MultipleObjectsReturnedDiscipline.childrenDiscipline.created_byDiscipline.created_by_idDiscipline.creator_is_adminDiscipline.descriptionDiscipline.feedbackDiscipline.get_nested_training_sets()Discipline.iconDiscipline.idDiscipline.image_tag()Discipline.is_valid()Discipline.levelDiscipline.lftDiscipline.parentDiscipline.parent_idDiscipline.releasedDiscipline.rghtDiscipline.titleDiscipline.training_setsDiscipline.tree_id
DocumentDocument.DoesNotExistDocument.MultipleObjectsReturnedDocument.alternativesDocument.articleDocument.audioDocument.convertedDocument.created_byDocument.created_by_idDocument.creation_dateDocument.creator_is_adminDocument.document_imageDocument.example_sentenceDocument.feedbackDocument.get_article_display()Document.get_next_by_creation_date()Document.get_previous_by_creation_date()Document.get_word_type_display()Document.idDocument.objectsDocument.save()Document.training_setsDocument.wordDocument.word_type
DocumentImageDocumentImage.DoesNotExistDocumentImage.MultipleObjectsReturnedDocumentImage.confirmedDocumentImage.crop_img()DocumentImage.documentDocumentImage.document_idDocumentImage.idDocumentImage.imageDocumentImage.image_tag()DocumentImage.objectsDocumentImage.save()DocumentImage.save_original_img()
FeedbackFeedback.DoesNotExistFeedback.MultipleObjectsReturnedFeedback.commentFeedback.content_objectFeedback.content_object_link()Feedback.content_typeFeedback.content_type_idFeedback.created_dateFeedback.get_next_by_created_date()Feedback.get_previous_by_created_date()Feedback.idFeedback.object_idFeedback.objectsFeedback.read_byFeedback.read_by_id
GroupAPIKeyGroupAPIKey.DoesNotExistGroupAPIKey.MultipleObjectsReturnedGroupAPIKey.creation_dateGroupAPIKey.expiry_dateGroupAPIKey.get_from_token()GroupAPIKey.get_next_by_creation_date()GroupAPIKey.get_previous_by_creation_date()GroupAPIKey.groupGroupAPIKey.group_idGroupAPIKey.idGroupAPIKey.is_valid()GroupAPIKey.objectsGroupAPIKey.qr_code()GroupAPIKey.qr_code_download_link()GroupAPIKey.qr_code_link()GroupAPIKey.qr_code_urlGroupAPIKey.revokedGroupAPIKey.token
SponsorStaticTrainingSetTrainingSet.DoesNotExistTrainingSet.MultipleObjectsReturnedTrainingSet.childrenTrainingSet.created_byTrainingSet.created_by_idTrainingSet.creator_is_adminTrainingSet.descriptionTrainingSet.disciplineTrainingSet.documentsTrainingSet.feedbackTrainingSet.iconTrainingSet.idTrainingSet.image_tag()TrainingSet.levelTrainingSet.lftTrainingSet.parentTrainingSet.parent_idTrainingSet.releasedTrainingSet.rghtTrainingSet.save()TrainingSet.style_description_field()TrainingSet.titleTrainingSet.tree_id
convert_umlaute_audio()convert_umlaute_images()- Alternative Word
- Content Type
- Discipline
DisciplineDiscipline.DoesNotExistDiscipline.MultipleObjectsReturnedDiscipline.childrenDiscipline.created_byDiscipline.created_by_idDiscipline.creator_is_adminDiscipline.descriptionDiscipline.feedbackDiscipline.get_nested_training_sets()Discipline.iconDiscipline.idDiscipline.image_tag()Discipline.is_valid()Discipline.levelDiscipline.lftDiscipline.parentDiscipline.parent_idDiscipline.releasedDiscipline.rghtDiscipline.titleDiscipline.training_setsDiscipline.tree_id
- Document
DocumentDocument.DoesNotExistDocument.MultipleObjectsReturnedDocument.alternativesDocument.articleDocument.audioDocument.convertedDocument.created_byDocument.created_by_idDocument.creation_dateDocument.creator_is_adminDocument.document_imageDocument.example_sentenceDocument.feedbackDocument.get_article_display()Document.get_next_by_creation_date()Document.get_previous_by_creation_date()Document.get_word_type_display()Document.idDocument.objectsDocument.save()Document.training_setsDocument.wordDocument.word_type
- Document Image
DocumentImageDocumentImage.DoesNotExistDocumentImage.MultipleObjectsReturnedDocumentImage.confirmedDocumentImage.crop_img()DocumentImage.documentDocumentImage.document_idDocumentImage.idDocumentImage.imageDocumentImage.image_tag()DocumentImage.objectsDocumentImage.save()DocumentImage.save_original_img()
- Feedback
FeedbackFeedback.DoesNotExistFeedback.MultipleObjectsReturnedFeedback.commentFeedback.content_objectFeedback.content_object_link()Feedback.content_typeFeedback.content_type_idFeedback.created_dateFeedback.get_next_by_created_date()Feedback.get_previous_by_created_date()Feedback.idFeedback.object_idFeedback.objectsFeedback.read_byFeedback.read_by_id
- Group
- Group API Key
GroupAPIKeyGroupAPIKey.DoesNotExistGroupAPIKey.MultipleObjectsReturnedGroupAPIKey.creation_dateGroupAPIKey.expiry_dateGroupAPIKey.get_from_token()GroupAPIKey.get_next_by_creation_date()GroupAPIKey.get_previous_by_creation_date()GroupAPIKey.groupGroupAPIKey.group_idGroupAPIKey.idGroupAPIKey.is_valid()GroupAPIKey.objectsGroupAPIKey.qr_code()GroupAPIKey.qr_code_download_link()GroupAPIKey.qr_code_link()GroupAPIKey.qr_code_urlGroupAPIKey.revokedGroupAPIKey.token
generate_default_token()
- Sponsor
- Static
- Training Set
TrainingSetTrainingSet.DoesNotExistTrainingSet.MultipleObjectsReturnedTrainingSet.childrenTrainingSet.created_byTrainingSet.created_by_idTrainingSet.creator_is_adminTrainingSet.descriptionTrainingSet.disciplineTrainingSet.documentsTrainingSet.feedbackTrainingSet.iconTrainingSet.idTrainingSet.image_tag()TrainingSet.levelTrainingSet.lftTrainingSet.parentTrainingSet.parent_idTrainingSet.releasedTrainingSet.rghtTrainingSet.save()TrainingSet.style_description_field()TrainingSet.titleTrainingSet.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.AdminSiterequest (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:
ModelMultipleChoiceFieldCustom 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:
ModelFormDefining 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:
SimpleListFilterFilter 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:
SimpleListFilterFilter 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:
SimpleListFilterGeneric 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:
DisciplineListFilterFilter 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:
SimpleListFilterFilter 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:
FilteredSelectMultipleAdds an overlay to the FilteredSelectMultiple widget to preview images and audios of Document objects. Inherits from django.contrib.admin.widgets.FilteredSelectMultiple.
- class Media
Bases:
objectMedia 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