summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2013-08-26 13:55:40 +0200
committerÉtienne Loks <etienne.loks@peacefrogs.net>2013-08-26 13:55:40 +0200
commitc08f9930d6d0a8b7ffc539aefc3fcabee3e0d942 (patch)
tree5dae823ae5c269a2ac2320d103680315be4be4ab
parentd54777bcc17044818fe869957cc693f024665889 (diff)
downloadIshtar-c08f9930d6d0a8b7ffc539aefc3fcabee3e0d942.tar.bz2
Ishtar-c08f9930d6d0a8b7ffc539aefc3fcabee3e0d942.zip
Add "Has an image?" in find searches (refs #1314)
-rw-r--r--archaeological_finds/forms.py1
-rw-r--r--archaeological_finds/views.py4
-rw-r--r--ishtar_common/views.py7
3 files changed, 9 insertions, 3 deletions
diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py
index efb827ef4..b72210946 100644
--- a/archaeological_finds/forms.py
+++ b/archaeological_finds/forms.py
@@ -107,6 +107,7 @@ class FindSelect(TableSelect):
material_type = forms.ChoiceField(label=_(u"Material type"), choices=[])
base_finds__find__description = forms.CharField(label=_(u"Description"))
base_finds__is_isolated = forms.NullBooleanField(label=_(u"Is isolated?"))
+ image = forms.NullBooleanField(label=_(u"Has an image?"))
def __init__(self, *args, **kwargs):
super(FindSelect, self).__init__(*args, **kwargs)
diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py
index 17f1a3f4d..b01cd4934 100644
--- a/archaeological_finds/views.py
+++ b/archaeological_finds/views.py
@@ -27,6 +27,7 @@ import models
get_find = get_item(models.Find, 'get_find', 'find',
bool_fields = ['base_finds__is_isolated'],
+ reversed_bool_fields = ['image__isnull'],
base_request={'downstream_treatment__isnull':True},
extra_request_keys={
'base_finds__context_record__parcel__town':
@@ -38,7 +39,8 @@ get_find = get_item(models.Find, 'get_find', 'find',
'dating__period':'dating__period__pk',
'base_finds__find__description':
'base_finds__find__description__icontains',
- 'base_finds__is_isolated':'base_finds__is_isolated'})
+ 'base_finds__is_isolated':'base_finds__is_isolated',
+ 'image':'image__isnull'})
get_findsource = get_item(models.FindSource, 'get_findsource', 'findsource',
extra_request_keys={
'find__context_record__operation__year':
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index 6c0f0696a..dc72b8d12 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -173,7 +173,8 @@ HIERARCHIC_LEVELS = 5
HIERARCHIC_FIELDS = ['periods', 'period', 'unit', 'material_type']
PRIVATE_FIELDS = ('id', 'history_modifier', 'order')
def get_item(model, func_name, default_name, extra_request_keys=[],
- base_request={}, bool_fields=[], dated_fields=[]):
+ base_request={}, bool_fields=[], reversed_bool_fields=[],
+ dated_fields=[]):
"""
Generic treatment of tables
"""
@@ -207,12 +208,14 @@ def get_item(model, func_name, default_name, extra_request_keys=[],
dct = request.session[func_name]
else:
request.session[func_name] = dct
- for k in bool_fields:
+ for k in (list(bool_fields) + list(reversed_bool_fields)):
if k in dct:
if dct[k] == u"1":
dct.pop(k)
else:
dct[k] = dct[k] == u"2" and True or False
+ if k in reversed_bool_fields:
+ dct[k] = not dct[k]
for k in dated_fields:
if k in dct:
if not dct[k]: