summaryrefslogtreecommitdiff
path: root/archaeological_finds/views.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2016-12-08 20:41:59 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2016-12-08 20:41:59 +0100
commit34c7816addf4d24480cb5ad833cf2b70ab7e45a8 (patch)
tree7ec49e588438080c5a542123f5f7cee617df9999 /archaeological_finds/views.py
parent349fd863a1850e7e342a71c3ca38c96593609a5f (diff)
downloadIshtar-34c7816addf4d24480cb5ad833cf2b70ab7e45a8.tar.bz2
Ishtar-34c7816addf4d24480cb5ad833cf2b70ab7e45a8.zip
Manage file association for treatments
Diffstat (limited to 'archaeological_finds/views.py')
-rw-r--r--archaeological_finds/views.py44
1 files changed, 42 insertions, 2 deletions
diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py
index cbd8495f8..1b08e9853 100644
--- a/archaeological_finds/views.py
+++ b/archaeological_finds/views.py
@@ -17,9 +17,12 @@
# See the file COPYING for details.
+import json
+
from django.core.exceptions import PermissionDenied
from django.core.urlresolvers import reverse
-from django.http import HttpResponseRedirect
+from django.db.models import Q
+from django.http import HttpResponseRedirect, HttpResponse
from django.shortcuts import redirect
from django.utils.translation import ugettext_lazy as _
from django.views.generic import TemplateView
@@ -56,6 +59,36 @@ show_treatmentfile = show_item(models.TreatmentFile, 'treatmentfile')
get_treatmentfile = get_item(models.TreatmentFile, 'get_treatementfile',
'treatmentfile')
+
+def autocomplete_treatmentfile(request):
+ if not request.user.has_perm('ishtar_common.view_treatment',
+ models.Treatment) and \
+ not request.user.has_perm('ishtar_common.view_own_treatment',
+ models.Treatment) \
+ and not request.user.ishtaruser.has_right('treatmentfile_search',
+ session=request.session):
+ return HttpResponse(mimetype='text/plain')
+ if not request.GET.get('term'):
+ return HttpResponse(mimetype='text/plain')
+ q = request.GET.get('term')
+ query = Q()
+ for q1 in q.split(' '):
+ for q in q1.split(' '):
+ extra = Q(internal_reference__icontains=q) | \
+ Q(external_id__icontains=q) | \
+ Q(name__icontains=q)
+ try:
+ int(q)
+ extra = extra | Q(year=q) | Q(index=q)
+ except ValueError:
+ pass
+ query = query & extra
+ limit = 20
+ files = models.TreatmentFile.objects.filter(query)[:limit]
+ data = json.dumps([{'id': file.pk, 'value': unicode(file)}
+ for file in files])
+ return HttpResponse(data, mimetype='text/plain')
+
show_findsource = show_item(models.FindSource, 'findsource')
get_findsource = get_item(models.FindSource, 'get_findsource', 'findsource')
@@ -294,6 +327,7 @@ get_downstreamtreatment = get_item(
'downtreatment')
treatment_wizard_steps = [
+ ('file-treatment_creation', TreatmentFormFileChoice),
('basetreatment-treatment_creation', BaseTreatmentForm),
('selecfind-treatment_creation', UpstreamFindFormSelection),
('selecbasket-treatment_creation', SelectFindBasketForm),
@@ -353,7 +387,7 @@ treatmentfile_wizard_steps = [
treatmentfile_creation_wizard = TreatmentFileWizard.as_view(
treatmentfile_wizard_steps,
- label=_(u"New file treatment"),
+ label=_(u"New treatment file"),
url_name='treatmentfile_creation',)
treatmentfile_modification_wizard = TreatmentFileModificationWizard.as_view(
@@ -364,6 +398,12 @@ treatmentfile_modification_wizard = TreatmentFileModificationWizard.as_view(
url_name='treatmentfile_modification',
)
+treatmentfile_deletion_wizard = TreatmentFileDeletionWizard.as_view([
+ ('selec-treatmentfile_deletion', TreatmentFileFormSelection),
+ ('final-treatmentfile_deletion', TreatmentFileDeletionForm)],
+ label=_(u"Treatment file deletion"),
+ url_name='treatmentfile_deletion',)
+
"""
treatment_source_creation_wizard = TreatmentSourceWizard.as_view([
('selec-treatment_source_creation', SourceTreatmentFormSelection),