diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2021-03-19 11:09:10 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2021-03-19 11:09:10 +0100 |
commit | eb4565bbab91e2942b19fb107b3d7c51d2c7afa9 (patch) | |
tree | bfa6fbf20d7c7b7b3eedebb79bae8ecd4e0759f1 /archaeological_context_records/views.py | |
parent | e2d6c50f231f636fed362be37e7bf3319fc5d6b8 (diff) | |
download | Ishtar-eb4565bbab91e2942b19fb107b3d7c51d2c7afa9.tar.bz2 Ishtar-eb4565bbab91e2942b19fb107b3d7c51d2c7afa9.zip |
Format - black: context_records
Diffstat (limited to 'archaeological_context_records/views.py')
-rw-r--r-- | archaeological_context_records/views.py | 218 |
1 files changed, 124 insertions, 94 deletions
diff --git a/archaeological_context_records/views.py b/archaeological_context_records/views.py index 2de60dc2c..568d2a4f2 100644 --- a/archaeological_context_records/views.py +++ b/archaeological_context_records/views.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Copyright (C) 2010-2016 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> @@ -34,139 +34,163 @@ from archaeological_operations.views import site_extra_context from archaeological_context_records import forms from ishtar_common.utils import put_session_message -from ishtar_common.views import IshtarMixin, LoginRequiredMixin, QAItemForm, \ - QABaseLockView, wizard_is_available -from ishtar_common.views_item import display_item, get_item, show_item, \ - revert_item +from ishtar_common.views import ( + IshtarMixin, + LoginRequiredMixin, + QAItemForm, + QABaseLockView, + wizard_is_available, +) +from ishtar_common.views_item import display_item, get_item, show_item, revert_item from archaeological_context_records import wizards show_contextrecord = show_item( - models.ContextRecord, 'contextrecord', - extra_dct=site_extra_context + models.ContextRecord, "contextrecord", extra_dct=site_extra_context ) revert_contextrecord = revert_item(models.ContextRecord) def autocomplete_contextrecord(request): - if (not request.user.has_perm( - 'archaeological_context_records.view_contextrecord', - models.ContextRecord) - and not request.user.has_perm( - 'archaeological_context_records.view_own_contextrecord', - models.ArchaeologicalSite)): - return HttpResponse(content_type='text/plain') - if not request.GET.get('term'): - return HttpResponse(content_type='text/plain') - q = request.GET.get('term') + if not request.user.has_perm( + "archaeological_context_records.view_contextrecord", models.ContextRecord + ) and not request.user.has_perm( + "archaeological_context_records.view_own_contextrecord", + models.ArchaeologicalSite, + ): + return HttpResponse(content_type="text/plain") + if not request.GET.get("term"): + return HttpResponse(content_type="text/plain") + q = request.GET.get("term") query = Q() - if request.GET.get('operation__pk'): - query = Q(operation__pk=request.GET.get('operation__pk')) - for q in q.split(' '): - qt = Q(parcel__section__icontains=q) | \ - Q(parcel__parcel_number__icontains=q) | \ - Q(cached_label__icontains=q) | Q(label__icontains=q) + if request.GET.get("operation__pk"): + query = Q(operation__pk=request.GET.get("operation__pk")) + for q in q.split(" "): + qt = ( + Q(parcel__section__icontains=q) + | Q(parcel__parcel_number__icontains=q) + | Q(cached_label__icontains=q) + | Q(label__icontains=q) + ) query = query & qt limit = 15 - items = models.ContextRecord.objects\ - .filter(query).order_by('parcel__section', 'parcel__parcel_number', - 'label')[:limit] - data = json.dumps([{'id': item.pk, - 'value': str(item)[:60]} - for item in items]) - return HttpResponse(data, content_type='text/plain') + items = models.ContextRecord.objects.filter(query).order_by( + "parcel__section", "parcel__parcel_number", "label" + )[:limit] + data = json.dumps([{"id": item.pk, "value": str(item)[:60]} for item in items]) + return HttpResponse(data, content_type="text/plain") get_contextrecord = get_item( models.ContextRecord, - 'get_contextrecord', 'contextrecord', - search_form=forms.RecordSelect + "get_contextrecord", + "contextrecord", + search_form=forms.RecordSelect, ) get_contextrecord_for_ope = get_item( models.ContextRecord, - 'get_contextrecord', 'contextrecord', - own_table_cols=models.ContextRecord.TABLE_COLS_FOR_OPE) + "get_contextrecord", + "contextrecord", + own_table_cols=models.ContextRecord.TABLE_COLS_FOR_OPE, +) get_contextrecordrelation = get_item( - models.RecordRelationView, 'get_contextrecordrelation', - 'contextrecordrelation', specific_perms=['view_recordrelation'], + models.RecordRelationView, + "get_contextrecordrelation", + "contextrecordrelation", + specific_perms=["view_recordrelation"], do_not_deduplicate=True, - extra_request_keys=models.RecordRelationView.EXTRA_REQUEST_KEYS + extra_request_keys=models.RecordRelationView.EXTRA_REQUEST_KEYS, ) get_contextrecordrelationdetail = get_item( - models.RecordRelations, 'get_contextrecordrelationdetail', - 'contextrecordrelationdetail', specific_perms=['view_recordrelation']) + models.RecordRelations, + "get_contextrecordrelationdetail", + "contextrecordrelationdetail", + specific_perms=["view_recordrelation"], +) -record_search_wizard = wizards.RecordSearch.as_view([ - ('general-record_search', forms.RecordFormSelection)], +record_search_wizard = wizards.RecordSearch.as_view( + [("general-record_search", forms.RecordFormSelection)], label=_("Context record search"), - url_name='record_search',) + url_name="record_search", +) record_creation_steps = [ - ('selec-record_creation', forms.OperationRecordFormSelection), - ('general-record_creation', forms.RecordFormGeneral), - ('datings-record_creation', forms.DatingFormSet), - ('interpretation-record_creation', forms.RecordFormInterpretation), - ('relations-record_creation', forms.RecordRelationsFormSet), - ('final-record_creation', forms.FinalForm) + ("selec-record_creation", forms.OperationRecordFormSelection), + ("general-record_creation", forms.RecordFormGeneral), + ("datings-record_creation", forms.DatingFormSet), + ("interpretation-record_creation", forms.RecordFormInterpretation), + ("relations-record_creation", forms.RecordRelationsFormSet), + ("final-record_creation", forms.FinalForm), ] record_creation_wizard = wizards.RecordWizard.as_view( record_creation_steps, label=_("New context record"), - url_name='record_creation', + url_name="record_creation", ) record_modification_steps = [ - ('selec-record_modification', forms.RecordFormSelection), - ('operation-record_modification', forms.OperationFormSelection), - ('general-record_modification', forms.RecordFormGeneral), - ('datings-record_modification', forms.DatingFormSet), - ('interpretation-record_modification', forms.RecordFormInterpretation), - ('relations-record_modification', forms.RecordRelationsFormSet), - ('final-record_modification', forms.FinalForm) + ("selec-record_modification", forms.RecordFormSelection), + ("operation-record_modification", forms.OperationFormSelection), + ("general-record_modification", forms.RecordFormGeneral), + ("datings-record_modification", forms.DatingFormSet), + ("interpretation-record_modification", forms.RecordFormInterpretation), + ("relations-record_modification", forms.RecordRelationsFormSet), + ("final-record_modification", forms.FinalForm), ] record_modification_wizard = wizards.RecordModifWizard.as_view( record_modification_steps, label=_("Context record modification"), - url_name='record_modification', + url_name="record_modification", ) def record_modify(request, pk): - if not wizard_is_available(record_modification_wizard, request, - models.ContextRecord, pk): + if not wizard_is_available( + record_modification_wizard, request, models.ContextRecord, pk + ): return HttpResponseRedirect("/") wizards.RecordModifWizard.session_set_value( - request, 'selec-record_modification', 'pk', pk, reset=True) - return redirect(reverse('record_modification', - kwargs={'step': 'operation-record_modification'})) - -record_deletion_wizard = wizards.RecordDeletionWizard.as_view([ - ('selec-record_deletion', forms.RecordFormMultiSelection), - ('final-record_deletion', forms.RecordDeletionForm)], + request, "selec-record_modification", "pk", pk, reset=True + ) + return redirect( + reverse("record_modification", kwargs={"step": "operation-record_modification"}) + ) + + +record_deletion_wizard = wizards.RecordDeletionWizard.as_view( + [ + ("selec-record_deletion", forms.RecordFormMultiSelection), + ("final-record_deletion", forms.RecordDeletionForm), + ], label=_("Context record deletion"), - url_name='record_deletion',) + url_name="record_deletion", +) def record_delete(request, pk): - if not wizard_is_available(record_deletion_wizard, request, - models.ContextRecord, pk): + if not wizard_is_available( + record_deletion_wizard, request, models.ContextRecord, pk + ): return HttpResponseRedirect("/") wizards.RecordDeletionWizard.session_set_value( - request, 'selec-record_deletion', 'pks', pk, reset=True) - return redirect(reverse('record_deletion', - kwargs={'step': 'final-record_deletion'})) + request, "selec-record_deletion", "pks", pk, reset=True + ) + return redirect( + reverse("record_deletion", kwargs={"step": "final-record_deletion"}) + ) def reset_wizards(request): for wizard_class, url_name in ( - (wizards.RecordWizard, 'record_creation'), - (wizards.RecordModifWizard, 'record_modification'), - (wizards.RecordDeletionWizard, 'record_deletion')): + (wizards.RecordWizard, "record_creation"), + (wizards.RecordModifWizard, "record_modification"), + (wizards.RecordDeletionWizard, "record_deletion"), + ): wizard_class.session_reset(request, url_name) @@ -176,28 +200,31 @@ class GenerateRelationImage(IshtarMixin, LoginRequiredMixin, RedirectView): def get_redirect_url(self, *args, **kwargs): if self.upper_item: - return reverse( - 'display-item', - args=[self.upper_model.SLUG, self.upper_item.pk]) + "#cr" - return reverse('display-item', - args=[self.model.SLUG, self.item.pk]) + "#relations" + return ( + reverse( + "display-item", args=[self.upper_model.SLUG, self.upper_item.pk] + ) + + "#cr" + ) + return ( + reverse("display-item", args=[self.model.SLUG, self.item.pk]) + "#relations" + ) def get(self, request, *args, **kwargs): self.upper_item = None render_type = kwargs.get("type", None) if render_type == "full" and self.upper_model: try: - self.upper_item = self.upper_model.objects.get(pk=kwargs['pk']) + self.upper_item = self.upper_model.objects.get(pk=kwargs["pk"]) except self.model.DoesNotExist: raise Http404() q = self.upper_item.context_record_relations_q() if not q.count(): - return super(GenerateRelationImage, self).get(request, *args, - **kwargs) + return super(GenerateRelationImage, self).get(request, *args, **kwargs) self.item = q.all()[0].left_record else: try: - self.item = self.model.objects.get(pk=kwargs['pk']) + self.item = self.model.objects.get(pk=kwargs["pk"]) except self.model.DoesNotExist: raise Http404() render_above, render_below, full = True, True, False @@ -208,21 +235,25 @@ class GenerateRelationImage(IshtarMixin, LoginRequiredMixin, RedirectView): elif render_type == "full": full = True self.item.generate_relation_image( - render_below=render_below, render_above=render_above, full=full) + render_below=render_below, render_above=render_above, full=full + ) return super(GenerateRelationImage, self).get(request, *args, **kwargs) class QAOperationContextRecordView(QAItemForm): - template_name = 'ishtar/forms/qa_operation_contextrecord.html' + template_name = "ishtar/forms/qa_operation_contextrecord.html" model = Operation form_class = forms.QAOperationCR page_name = _("Context record") def get_quick_action(self): return QuickAction( - url="operation-qa-contextrecord", icon_class="fa fa-plus", - text=_("Add context record"), target="one", - rights=['add_contextrecord', 'add_own_contextrecord']) + url="operation-qa-contextrecord", + icon_class="fa fa-plus", + text=_("Add context record"), + target="one", + rights=["add_contextrecord", "add_own_contextrecord"], + ) def form_valid(self, form): form.save(self.items) @@ -235,7 +266,7 @@ class QAContextRecordLockView(QABaseLockView): class QAContextRecordDuplicateFormView(QAItemForm): - template_name = 'ishtar/forms/qa_contextrecord_duplicate.html' + template_name = "ishtar/forms/qa_contextrecord_duplicate.html" model = models.ContextRecord page_name = _("Duplicate") form_class = forms.QAContextRecordDuplicateForm @@ -243,7 +274,7 @@ class QAContextRecordDuplicateFormView(QAItemForm): def get_form_kwargs(self): kwargs = super(QAContextRecordDuplicateFormView, self).get_form_kwargs() - kwargs['user'] = self.request.user + kwargs["user"] = self.request.user return kwargs def form_valid(self, form): @@ -251,8 +282,7 @@ class QAContextRecordDuplicateFormView(QAItemForm): return HttpResponseRedirect(reverse("success")) def get_context_data(self, **kwargs): - data = super(QAContextRecordDuplicateFormView, self).get_context_data( - **kwargs) - data['action_name'] = _("Duplicate") + data = super(QAContextRecordDuplicateFormView, self).get_context_data(**kwargs) + data["action_name"] = _("Duplicate") data["operation"] = self.items[0].operation return data |