summaryrefslogtreecommitdiff
path: root/archaeological_files
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_files')
-rw-r--r--archaeological_files/models.py12
-rw-r--r--archaeological_files/urls.py3
-rw-r--r--archaeological_files/views.py34
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'),