diff options
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 |
commit | c08f9930d6d0a8b7ffc539aefc3fcabee3e0d942 (patch) | |
tree | 5dae823ae5c269a2ac2320d103680315be4be4ab | |
parent | d54777bcc17044818fe869957cc693f024665889 (diff) | |
download | Ishtar-c08f9930d6d0a8b7ffc539aefc3fcabee3e0d942.tar.bz2 Ishtar-c08f9930d6d0a8b7ffc539aefc3fcabee3e0d942.zip |
Add "Has an image?" in find searches (refs #1314)
-rw-r--r-- | archaeological_finds/forms.py | 1 | ||||
-rw-r--r-- | archaeological_finds/views.py | 4 | ||||
-rw-r--r-- | ishtar_common/views.py | 7 |
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]: |