From: Magnus Hagander Date: Sun, 23 Sep 2018 12:56:59 +0000 (+0200) Subject: Specify default DataTable sorting for some backend forms X-Git-Url: http://git.postgresql.org/gitweb/static/session/%7B%7Bsession.id%7D%7D-%7B%7Bsession.title%7Cslugify%7D%7D?a=commitdiff_plain;h=3dbfc16a68cff303f9e8ed41974db6377aa375a7;p=pgeu-website.git Specify default DataTable sorting for some backend forms We had sorting, but when adding DataTable everything reverted to sorting based on the first column. Fix that for example for all items that have a defined sortkey column. --- diff --git a/postgresqleu/confreg/backendforms.py b/postgresqleu/confreg/backendforms.py index fc30d17..6e856f5 100644 --- a/postgresqleu/confreg/backendforms.py +++ b/postgresqleu/confreg/backendforms.py @@ -44,6 +44,7 @@ class BackendForm(ConcurrentProtectedModelForm): allow_copy_previous = False copy_transform_form = None coltypes = {} + defaultsort = [] readonly_fields = [] file_fields = [] linked_objects = {} @@ -265,6 +266,7 @@ class BackendRegistrationTypeForm(BackendForm): coltypes = { 'Sortkey': ['nosearch' ], } + defaultsort = [[4, 'asc']] auto_cascade_delete_to=['registrationtype_days', 'registrationtype_requires_option'] class Meta: @@ -361,6 +363,7 @@ class BackendTrackForm(BackendForm): coltypes = { 'Sortkey': ['nosearch' ], } + defaultsort = [[1, 'asc']] @classmethod def copy_from_conference(self, targetconf, sourceconf, idlist): @@ -386,6 +389,7 @@ class BackendRoomForm(BackendForm): coltypes = { 'Sortkey': ['nosearch' ], } + defaultsort = [[1, 'asc']] class BackendTransformConferenceDateTimeForm(django.forms.Form): timeshift = django.forms.DurationField(required=True, help_text="Shift all times by this much") @@ -595,9 +599,12 @@ class BackendFeedbackQuestionForm(BackendForm): class Meta: model = ConferenceFeedbackQuestion fields = ['question', 'isfreetext', 'textchoices', 'sortkey', 'newfieldset'] + coltypes = { 'Sortkey': ['nosearch' ], + 'Newfieldset': ['nosort', ], } + defaultsort = [[2, 'asc']] def clean(self): cleaned_data = super(BackendFeedbackQuestionForm, self).clean() diff --git a/postgresqleu/confreg/backendviews.py b/postgresqleu/confreg/backendviews.py index 4d91f99..fe864b2 100644 --- a/postgresqleu/confreg/backendviews.py +++ b/postgresqleu/confreg/backendviews.py @@ -251,6 +251,7 @@ def backend_handle_copy_previous(request, formclass, restpieces, conference): 'plural_name': formclass.Meta.model._meta.verbose_name_plural, 'headers': [formclass.get_field_verbose_name(f) for f in formclass.list_fields], 'coltypes': formclass.coltypes, + 'defaultsort': formclass.defaultsort, 'return_url': '../', 'allow_new': False, 'allow_delete': False, @@ -290,6 +291,7 @@ def backend_list_editor(request, urlname, formclass, resturl, allow_new=True, al 'plural_name': formclass.Meta.model._meta.verbose_name_plural, 'headers': [formclass.get_field_verbose_name(f) for f in formclass.list_fields], 'coltypes': formclass.coltypes, + 'defaultsort': formclass.defaultsort, 'return_url': return_url, 'allow_new': allow_new, 'allow_delete': allow_delete, diff --git a/template/confreg/admin_backend_list.html b/template/confreg/admin_backend_list.html index 6b18163..cc38549 100644 --- a/template/confreg/admin_backend_list.html +++ b/template/confreg/admin_backend_list.html @@ -16,6 +16,9 @@ $(document).ready(function() { { targets: 'coltype-nosearch', searchable: false}, ], +{%if defaultsort%} + 'order': {{defaultsort|safe}}, +{%endif%} }); $('#copyallcheckbox').click(function(e) {