diff options
Diffstat (limited to 'archaeological_files')
-rw-r--r-- | archaeological_files/models.py | 12 | ||||
-rw-r--r-- | archaeological_files/urls.py | 3 | ||||
-rw-r--r-- | archaeological_files/views.py | 34 |
3 files changed, 39 insertions, 10 deletions
diff --git a/archaeological_files/models.py b/archaeological_files/models.py index ddee0f6cc..1e8876e66 100644 --- a/archaeological_files/models.py +++ b/archaeological_files/models.py @@ -26,6 +26,7 @@ from django.contrib.postgres.indexes import GinIndex from django.core.cache import cache from django.db.models import Q, Count, Sum from django.db.models.signals import post_save, m2m_changed, post_delete +from django.core.urlresolvers import reverse from ishtar_common.utils import ugettext_lazy as _, pgettext_lazy from ishtar_common.utils import cached_label_changed, get_cache, \ @@ -706,6 +707,17 @@ class File(ClosedItem, DocumentItem, BaseHistorizedItem, CompleteIdentifierItem, self.general_contractor.save() return True + def get_extra_actions(self, request): + # url, base_text, icon, extra_text, extra css class, is a quick action + actions = super(File, self).get_extra_actions(request) + if self.can_do(request, 'add_administrativeact'): + actions += [ + (reverse('file-add-adminact', args=[self.pk]), + _("Add associated administrative act"), "fa fa-plus", + _("admin. act"), "", False), + ] + return actions + def save(self, *args, **kwargs): returned = super(File, self).save(*args, **kwargs) if not getattr(self, '_no_new_add', None) and self.main_town and \ diff --git a/archaeological_files/urls.py b/archaeological_files/urls.py index 2b1e70b8c..cb8a63369 100644 --- a/archaeological_files/urls.py +++ b/archaeological_files/urls.py @@ -86,6 +86,9 @@ urlpatterns = [ views.show_file, name='show-historized-file'), url(r'revert-file/(?P<pk>.+)/(?P<date>.+)$', views.revert_file, name='revert-file'), + url(r'^file-add-adminact/(?P<pk>[0-9-]+)/$', + check_rights(['add_administrativeact'])(views.file_adminact_add), + name='file-add-adminact'), url(r'dashboard_file/$', views.dashboard_file, name='dashboard-file'), url(r'file_administrativeact_document/$', administrativeactfile_document, diff --git a/archaeological_files/views.py b/archaeological_files/views.py index 7917af6b8..a29ae8b15 100644 --- a/archaeological_files/views.py +++ b/archaeological_files/views.py @@ -33,7 +33,8 @@ from archaeological_operations.wizards import AdministrativeActDeletionWizard, \ is_preventive, is_not_preventive from ishtar_common.wizards import SearchWizard -from archaeological_files.wizards import FileSearch, FileWizard, \ +from archaeological_files import wizards +from archaeological_files.wizards import FileWizard, \ FileModificationWizard, FileClosingWizard, FileDeletionWizard, \ FileAdministrativeActWizard, FileEditAdministrativeActWizard @@ -105,11 +106,11 @@ def dashboard_file(request, *args, **kwargs): dct = {'dashboard': models.FileDashboard()} return render(request, 'ishtar/dashboards/dashboard_file.html', dct) -file_search_wizard = FileSearch.as_view( +file_search_wizard = wizards.FileSearch.as_view( [('general-file_search', forms.FileFormSelection)], label=_(u"File search"), url_name='file_search',) -file_creation_wizard = FileWizard.as_view( +file_creation_wizard = wizards.FileWizard.as_view( [('general-file_creation', forms.FileFormGeneral), ('towns-file_creation', TownFormset), ('parcels-file_creation', forms.ParcelFormset), @@ -127,7 +128,7 @@ file_creation_wizard = FileWizard.as_view( }, url_name='file_creation',) -file_modification_wizard = FileModificationWizard.as_view( +file_modification_wizard = wizards.FileModificationWizard.as_view( [('selec-file_modification', forms.FileFormSelection), ('general-file_modification', forms.FileFormGeneralRO), ('towns-file_modification', TownFormset), @@ -157,13 +158,13 @@ def file_modify(request, pk): return redirect(reverse('file_modification', kwargs={'step': 'general-file_modification'})) -file_closing_wizard = FileClosingWizard.as_view( +file_closing_wizard = wizards.FileClosingWizard.as_view( [('selec-file_closing', forms.FileFormSelection), ('date-file_closing', ClosingDateFormSelection), ('final-file_closing', forms.FinalFileClosingForm)], label=_(u"File closing"), url_name='file_closing',) -file_deletion_wizard = FileDeletionWizard.as_view( +file_deletion_wizard = wizards.FileDeletionWizard.as_view( [('selec-file_deletion', forms.FileFormMultiSelection), ('final-file_deletion', forms.FinalFileDeleteForm)], label=_(u"File deletion"), @@ -174,7 +175,7 @@ def file_delete(request, pk): if not wizard_is_available(file_deletion_wizard, request, models.File, pk): return HttpResponseRedirect("/") - FileDeletionWizard.session_set_value( + wizards.FileDeletionWizard.session_set_value( request, 'selec-file_deletion', 'pks', pk, reset=True) return redirect(reverse('file_deletion', kwargs={'step': 'final-file_deletion'})) @@ -187,7 +188,7 @@ file_administrativeactfile_search_wizard = \ url_name='file_administrativeactfile_search',) file_administrativeactfile_wizard = \ - FileAdministrativeActWizard.as_view([ + wizards.FileAdministrativeActWizard.as_view([ ('selec-file_administrativeactfile', forms.FileFormSelection), ('administrativeact-file_administrativeactfile', forms.AdministrativeActFileForm), @@ -196,7 +197,7 @@ file_administrativeactfile_wizard = \ url_name='file_administrativeactfile',) file_administrativeactfile_modification_wizard = \ - FileEditAdministrativeActWizard.as_view([ + wizards.FileEditAdministrativeActWizard.as_view([ ('selec-file_administrativeactfile_modification', forms.AdministrativeActFileModifyFormSelection), ('administrativeact-file_administrativeactfile_modification', @@ -210,7 +211,7 @@ def file_administrativeactfile_modify(request, pk): if not wizard_is_available(file_administrativeactfile_modification_wizard, request, AdministrativeAct, pk): return HttpResponseRedirect("/") - FileEditAdministrativeActWizard.session_set_value( + wizards.FileEditAdministrativeActWizard.session_set_value( request, 'selec-file_administrativeactfile_modification', 'pk', pk, reset=True) return redirect( @@ -245,6 +246,19 @@ def file_administrativeact_delete(request, pk): kwargs={'step': 'final-file_administrativeactfile_deletion'})) +def file_adminact_add(request, pk, current_right=None): + try: + models.File.objects.get(pk=pk) + except models.File.DoesNotExist: + raise Http404() + file_administrativeactfile_wizard(request) + wizards.FileAdministrativeActWizard.session_set_value( + request, 'selec-file_administrativeactfile', 'pk', pk, reset=True) + return redirect(reverse( + 'file_administrativeactfile', + kwargs={'step': 'administrativeact-file_administrativeactfile'})) + + def reset_wizards(request): for wizard_class, url_name in ( (FileWizard, 'file_creation'), |