summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@proxience.com>2014-05-12 17:02:56 +0200
committerÉtienne Loks <etienne.loks@proxience.com>2014-05-12 17:02:56 +0200
commitfe9484b72cd2daed7cfb2bf7f9b330bd0e0b76dd (patch)
tree592a834685dac25aad04bb0f4505ec9006e787b4 /ishtar_common
parent9d3f78cb51f05c6f39d95b222bbd03cf19018e60 (diff)
downloadIshtar-fe9484b72cd2daed7cfb2bf7f9b330bd0e0b76dd.tar.bz2
Ishtar-fe9484b72cd2daed7cfb2bf7f9b330bd0e0b76dd.zip
Work on registry search (refs #1680) - work on operations test
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/models.py17
-rw-r--r--ishtar_common/views.py15
2 files changed, 23 insertions, 9 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 1ff809315..429c8217b 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -56,8 +56,7 @@ def post_save_user(sender, **kwargs):
ishtaruser = q.all()[0]
if ishtaruser.is_superuser \
and not ishtaruser.has_right('administrator'):
- ishtaruser.person.person_types.add(PersonType.objects.get(
- txt_idx='administrator'))
+ ishtaruser.person.person_types.add(ADMINISTRATOR)
post_save.connect(post_save_user, sender=User)
class ValueGetter(object):
@@ -318,6 +317,12 @@ class GeneralType(models.Model):
for child in cls._get_childs(item, dct, instances, exclude=exclude):
yield child
+ def save(self, *args, **kwargs):
+ if not self.id and not self.label:
+ self.label = u" ".join(u" ".join(self.txt_idx.split('-')
+ ).split('_')).title()
+ return super(GeneralType, self).save(*args, **kwargs)
+
class ImageModel(models.Model):
image = models.ImageField(upload_to="upload/", blank=True, null=True)
thumbnail = models.ImageField(upload_to='upload/thumbs/', blank=True,
@@ -758,6 +763,9 @@ class PersonType(GeneralType):
verbose_name_plural = _(u"Person types")
ordering = ('label',)
+ADMINISTRATOR, created = PersonType.objects.get_or_create(
+ txt_idx='administrator')
+
class Person(Address, OwnPerms, ValueGetter) :
_prefix = 'person_'
TYPE = (('Mr', _(u'Mr')),
@@ -859,9 +867,10 @@ class IshtarUser(User):
email = user.email
person_type = None
if user.is_superuser:
- person_type = PersonType.objects.get(txt_idx='administrator')
+ person_type = ADMINISTRATOR
else:
- person_type = PersonType.objects.get(txt_idx='public_access')
+ person_type, created = PersonType.objects.get_or_create(
+ txt_idx='public_access')
person = Person.objects.create(title='Mr', surname=surname,
name=name, email=email,
history_modifier=user)
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index 7440e0170..9a20fadd5 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -217,17 +217,22 @@ def get_item(model, func_name, default_name, extra_request_keys=[],
if specific_perms and perm not in specific_perms:
continue
if request.user.has_perm(perm) \
- or request.user.ishtaruser.has_right(perm):
+ or (request.user.is_authenticated()
+ and request.user.ishtaruser.has_right(perm)):
allowed = True
if "_own_" not in perm:
own = False
break # max right reach
- if not allowed:
- return HttpResponse(None, mimetype='text/plain')
+ EMPTY, mimetype = '', 'text/plain'
if 'type' in dct:
data_type = dct.pop('type')
+ if data_type == 'csv':
+ mimetype = 'text/csv'
if not data_type:
+ EMPTY = '[]'
data_type = 'json'
+ if not allowed:
+ return HttpResponse(EMPTY, mimetype='text/plain')
fields = [model._meta.get_field_by_name(k)[0]
for k in model._meta.get_all_field_names()]
request_keys = dict([(field.name,
@@ -247,7 +252,7 @@ def get_item(model, func_name, default_name, extra_request_keys=[],
try:
old = 'old' in request_items and int(request_items['old'])
except ValueError:
- return HttpResponse(None, mimetype='text/plain')
+ return HttpResponse('[]', mimetype='text/plain')
for k in request_keys:
q = request_items.get(k)
if not q:
@@ -452,7 +457,7 @@ def get_item(model, func_name, default_name, extra_request_keys=[],
for data in datas:
writer.writerow([val.encode(ENCODING) for val in data[1:]])
return response
- return HttpResponse(None, mimetype='text/plain')
+ return HttpResponse('{}', mimetype='text/plain')
return func