diff options
Diffstat (limited to 'ishtar_common')
| -rw-r--r-- | ishtar_common/models.py | 17 | ||||
| -rw-r--r-- | ishtar_common/views.py | 15 | 
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  | 
