summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@proxience.com>2015-12-03 13:05:06 +0100
committerÉtienne Loks <etienne.loks@proxience.com>2015-12-03 13:05:06 +0100
commitfd0a0165c3a06ecea377cc9a16ac2706b1dc9d40 (patch)
tree038feacbb6eaff4d5e531ec417652009ed2f1ce5 /ishtar_common
parent677bc165441d508429295f476a28a966efa2ce29 (diff)
downloadIshtar-fd0a0165c3a06ecea377cc9a16ac2706b1dc9d40.tar.bz2
Ishtar-fd0a0165c3a06ecea377cc9a16ac2706b1dc9d40.zip
Better management of raw_names for search and windows
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/forms_common.py5
-rw-r--r--ishtar_common/models.py2
-rw-r--r--ishtar_common/templates/ishtar/sheet_person.html26
-rw-r--r--ishtar_common/views.py19
4 files changed, 33 insertions, 19 deletions
diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py
index 0e6a34b74..1ff9532e9 100644
--- a/ishtar_common/forms_common.py
+++ b/ishtar_common/forms_common.py
@@ -258,6 +258,7 @@ class SimplePersonForm(NewItemForm):
validators=[name_validator])
name = forms.CharField(label=_(u"Name"), max_length=30,
validators=[name_validator])
+ raw_name = forms.CharField(label=_(u"Raw name"), max_length=255)
address = forms.CharField(label=_(u"Address"), widget=forms.Textarea,
required=False)
address_complement = forms.CharField(label=_(u"Address complement"),
@@ -278,6 +279,10 @@ class SimplePersonForm(NewItemForm):
associated_model=models.Organization, new=True),
validators=[models.valid_id(models.Organization)], required=False)
+ def __init__(self, *args, **kwargs):
+ super(SimplePersonForm, self).__init__(*args, **kwargs)
+ self.fields['raw_name'].widget.attrs['readonly'] = True
+
class BasePersonForm(forms.ModelForm):
class Meta:
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index e762bf67f..72b41e0cf 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -1864,7 +1864,7 @@ class Person(Address, Merge, OwnPerms, ValueGetter):
('Md', _(u'Mrs')),
('Dr', _(u'Doctor')),
)
- TABLE_COLS = ('name', 'surname', 'email', 'person_types_list',
+ TABLE_COLS = ('name', 'surname', 'raw_name', 'email', 'person_types_list',
'attached_to')
title = models.CharField(_(u"Title"), max_length=100, choices=TYPE,
blank=True, null=True)
diff --git a/ishtar_common/templates/ishtar/sheet_person.html b/ishtar_common/templates/ishtar/sheet_person.html
index b6bf99d56..38bc39c58 100644
--- a/ishtar_common/templates/ishtar/sheet_person.html
+++ b/ishtar_common/templates/ishtar/sheet_person.html
@@ -1,5 +1,5 @@
{% extends "ishtar/sheet.html" %}
-{% load i18n %}
+{% load i18n window_field %}
{% block head_sheet %}
{{block.super}}
@@ -9,18 +9,18 @@
{% block content %}
<div class='tool'>{%trans "Export as:"%} <a href='{% url show-person item.pk "odt" %}'>{%trans "OpenOffice.org file"%}</a>, <a href='{% url show-person item.pk "pdf" %}'>{%trans "PDF file"%}</a></div>
-<p><label>{% trans "Name" %}</label> <span class='value'>{{item.name}}</span></p>
-<p><label>{% trans "Surname" %}</label> <span class='value'>{{item.surname}}</span></p>
-<p><label>{%trans "Created by:"%}</label> <span class='value'>{{ item.history_creator.ishtaruser.full_label }}</span></p>
-{% if item.email %}<p><label>{% trans "Email" %}</label> <span class='value'>{{item.email}}</span></p>{% endif %}
-<p><label>{% trans "Type(s)" %}</label> <span class='value'>{{item.person_types_list}}</span></p>
-{% if item.address %}<p><label>{% trans "Address" %}</label> <span class='value'>{{item.address}}</span></p> {% endif %}
-{% if item.address_complement %}<p><label>{% trans "Address complement" %}</label> <span class='value'>{{item.address_complement}}</span></p> {% endif %}
-{% if item.postal_code %}<p><label>{% trans "Postal code" %}</label> <span class='value'>{{item.postal_code}}</span></p> {% endif %}
-{% if item.town %}<p><label>{% trans "Town" %}</label> <span class='value'>{{item.town}}</span></p> {% endif %}
-{% if item.phone %}<p><label>{% trans "Phone" %}</label> <span class='value'>{{item.phone}}</span></p> {% endif %}
-{% if item.mobile_phone %}<p><label>{% trans "Mobile phone" %}</label> <span class='value'>{{item.mobile_phone}}</span></p> {% endif %}
-
+{% field "Name" item.name %}
+{% field "Surname" item.surname %}
+{% field "Raw name" item.raw_name %}
+{% field "Created by" item.history_creator.ishtaruser.full_label %}
+{% field "Email" item.email %}
+{% field "Type(s)" item.person_types_list %}
+{% field "Address" item.address %}
+{% field "Address complement" item.address_complement %}
+{% field "Postal code" item.postal_code %}
+{% field "Town" item.town %}
+{% field "Phone" item.phone %}
+{% field "Mobile phone" item.mobile_phone %}
{% if item.organization %}<h3>{% trans "Associated organization"%}</h3>
<p><label>{% trans "Name" %}</label> <span class='value'>{{item.organization}}</span></p>
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index f605c4b25..819c88f32 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -356,10 +356,19 @@ def get_item(model, func_name, default_name, extra_request_keys=[],
except ValueError:
return HttpResponse('[]', mimetype='text/plain')
for k in request_keys:
- q = request_items.get(k)
- if not q:
+ val = request_items.get(k)
+ if not val:
+ continue
+ req_keys = request_keys[k]
+ if type(req_keys) not in (list, tuple):
+ dct[req_keys] = val
continue
- dct[request_keys[k]] = q
+ # multiple choice target
+ reqs = Q(**{req_keys[0]: val})
+ for req_key in req_keys[1:]:
+ q = Q(**{req_key: val})
+ reqs = reqs | q
+ and_reqs.append(reqs)
if not dct and 'submited' not in request_items:
if default_name in request.session and \
request.session[default_name]:
@@ -832,8 +841,8 @@ get_person = get_item(
models.Person,
'get_person', 'person',
extra_request_keys={
- 'name': 'name__icontains',
- 'surname': 'surname__icontains',
+ 'name': ['name__icontains', 'raw_name__icontains'],
+ 'surname': ['surname__icontains', 'raw_name__icontains'],
'attached_to': 'attached_to__pk',
'person_types': 'person_types__pk__in',
})