summaryrefslogtreecommitdiff
path: root/archaeological_warehouse
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_warehouse')
-rw-r--r--archaeological_warehouse/models.py17
-rw-r--r--archaeological_warehouse/urls.py5
-rw-r--r--archaeological_warehouse/views.py13
3 files changed, 33 insertions, 2 deletions
diff --git a/archaeological_warehouse/models.py b/archaeological_warehouse/models.py
index 5565bc504..92eaf5d2f 100644
--- a/archaeological_warehouse/models.py
+++ b/archaeological_warehouse/models.py
@@ -21,6 +21,7 @@ import datetime
from django.conf import settings
from django.contrib.gis.db import models
+from django.core.urlresolvers import reverse
from django.db.models import Q
from django.db.models.signals import post_save, post_delete
from django.template.defaultfilters import slugify
@@ -311,7 +312,7 @@ post_save.connect(post_save_cache, sender=ContainerType)
post_delete.connect(post_save_cache, sender=ContainerType)
-class Container(LightHistorizedItem, ImageModel):
+class Container(LightHistorizedItem, ImageModel, OwnPerms):
TABLE_COLS = ['reference', 'container_type__label', 'cached_location',
'cached_division', 'old_reference']
IMAGE_PREFIX = 'containers/'
@@ -570,6 +571,20 @@ class Container(LightHistorizedItem, ImageModel):
def set_localisation_9(self, context, value):
return self.set_localisation(8, value)
+ def get_extra_actions(self, request):
+ """
+ extra actions for the sheet template
+ """
+ # url, base_text, icon, extra_text, extra css class, is a quick action
+ actions = []
+ can_edit_find = self.can_do(request, 'change_find')
+ if can_edit_find:
+ actions += [
+ (reverse('container-add-treatment', args=[self.pk]),
+ _(u"Add treatment"), "fa fa-exchange", "", "", False),
+ ]
+ return actions
+
def pre_save(self):
if not self.index:
q = Container.objects.filter(responsible=self.responsible).order_by(
diff --git a/archaeological_warehouse/urls.py b/archaeological_warehouse/urls.py
index 5dce12ffa..47058a352 100644
--- a/archaeological_warehouse/urls.py
+++ b/archaeological_warehouse/urls.py
@@ -68,6 +68,11 @@ urlpatterns = [
url(r'warehouse-modify/(?P<pk>.+)/$',
views.warehouse_modify, name='warehouse_modify'),
+ url(r'^container-add-treatment/(?P<pk>[0-9-]+)/$',
+ check_rights(['change_find', 'change_own_find'])(
+ views.container_treatment_add),
+ name='container-add-treatment'),
+
url(r'^container_search/(?P<step>.+)?$',
check_rights(['view_container', 'view_own_container'])(
views.container_search_wizard),
diff --git a/archaeological_warehouse/views.py b/archaeological_warehouse/views.py
index 0cd68dac6..83fd7f4e1 100644
--- a/archaeological_warehouse/views.py
+++ b/archaeological_warehouse/views.py
@@ -21,7 +21,7 @@ import json
from django.core.urlresolvers import reverse
from django.db.models import Q
-from django.http import HttpResponse
+from django.http import HttpResponse, Http404
from django.shortcuts import redirect
from django.utils.translation import ugettext_lazy as _
@@ -35,6 +35,8 @@ from archaeological_warehouse.forms import WarehouseForm, ContainerForm, \
from ishtar_common.forms import FinalForm
from ishtar_common.views_item import get_item, show_item, new_item
+from archaeological_finds.views import treatment_add
+
from archaeological_warehouse.wizards import PackagingWizard, WarehouseSearch, \
WarehouseWizard, WarehouseModificationWizard, WarehouseDeletionWizard, \
ContainerSearch, ContainerWizard, ContainerModificationWizard, \
@@ -195,6 +197,15 @@ container_deletion_wizard = ContainerDeletionWizard.as_view([
label=_(u"Container deletion"),
url_name='container_deletion',)
+
+def container_treatment_add(request, pk, current_right=None):
+ try:
+ container = models.Container.objects.get(pk=pk)
+ except models.Container.DoesNotExist:
+ raise Http404()
+ return treatment_add(
+ request, ",".join([str(f.pk) for f in container.finds.all()]))
+
"""
warehouse_packaging_wizard = ItemSourceWizard.as_view([
('selec-warehouse_packaging', ItemsSelection),