def save(self, *args, **kwargs): from lib.functions import latinaze self.passport=latinaze(self.passport) self.firstname = self.firstname.capitalize() self.lastname = self.lastname.capitalize() self.middlename = self.middlename.capitalize() self.sorting = self.fio_short() for abonent in self.abonents.all(): abonent.save() super(self.__class__, self).save(*args, **kwargs)
def save(self, *args, **kwargs): from lib.functions import latinaze self.passport = latinaze(self.passport) self.firstname = self.firstname.capitalize() self.lastname = self.lastname.capitalize() self.middlename = self.middlename.capitalize() self.sorting = self.fio_short() for abonent in self.abonents.all(): abonent.save() super(self.__class__, self).save(*args, **kwargs)
def person_set(self, rdata, request): from abon.models import Abonent, Person from abon.forms import PersonForm from lib.functions import latinaze uid = int(rdata.__getitem__("uid")) passport = rdata.__getitem__("passport") passport = latinaze(passport) if not passport: return dict(success=False, title="Неправильный номер паспорта", msg="passport number is invalid", errors="") if len(passport) > 0: try: person = Person.objects.get(passport=passport) except Person.DoesNotExist: person = Person() else: pass elif uid > 0: try: abonent = Abonent.objects.get(pk=uid) except Abonent.DoesNotExist: return dict(success=False, title="Сбой загрузки формы", msg="abonent not found", errors="") else: person = abonent.person else: person = Person() form = PersonForm(rdata) result = [] if form.is_valid(): res = form.save(person) ok = res[0] result.append(res[1].store_record()) msg = res[2] else: ok = False msg = form._errors if ok: return dict(success=True, data=result) else: return dict(success=False, title="Ошибка записи", msg=msg, data={})
def person_get(self, rdata, request): from abon.models import Abonent, Person from lib.functions import latinaze if "uid" in rdata: uid = int(rdata["uid"]) try: abonent = Abonent.objects.get(pk=uid) except Abonent.DoesNotExist: return dict(success=False, title="Сбой загрузки формы", msg="abonent not found", errors="") else: return dict(success=True, data=abonent.person.store_record()) elif "passport" in rdata: try: person = Person.objects.get(passport=latinaze(rdata["passport"])) except Person.DoesNotExist: return dict(success=False, title="Сбой загрузки формы", errors="") else: return dict(success=True, data=person.store_record()) else: return dict(success=False, title="Сбой загрузки формы", msg="abonent not found", errors="")
def wrapper(*args, **kwargs): from lib.functions import latinaze import re spec_lookup = re.compile("^.*\_{2}(i?exact|i?contains|(l|g)te|i?(start|end)swith)$") result = func(*args, **kwargs) rdata = args[1] if isinstance(result, tuple): result, extras = result success = True else: success = True extras = {} total=0 if isinstance(result, QuerySet) or isinstance(result, QuerySetChain): if 'filter_fields' in rdata and 'filter_value' in rdata: query=None if 'query' in rdata: for node in rdata['filter_fields']: val=unicode(rdata['query']) wild = val.split('*') query2 = None for v in wild: if not v == '': if spec_lookup.match(node): if query2: query2 = query2 & Q(**{"%s" % str(node):v}) else: query2 = Q(**{"%s" % str(node):v}) else: if query2: query2 = query2 & Q(**{"%s__icontains" % str(node):v}) else: query2 = Q(**{"%s__istartswith" % str(node):v}) if query: query = query | query2 else: query = query2 if not rdata['filter_value']=='': for node in rdata['filter_fields']: if 'passport' in node: val=latinaze(rdata['filter_value']) else: val=unicode(rdata['filter_value']) wild = val.split('*') query2 = None for v in wild: if not v == '': if spec_lookup.match(node): if query2: query2 = query2 & Q(**{"%s" % str(node):v}) else: query2 = Q(**{"%s" % str(node):v}) else: if query2: query2 = query2 & Q(**{"%s__icontains" % str(node):v}) else: query2 = Q(**{"%s__icontains" % str(node):v}) if query: query = query | query2 else: query = query2 if query: result = result.filter(query) if 'filter' in rdata: for item in rdata['filter']: val = unicode(rdata['filter'][item]) result = result.filter(**{str(item):val}) if 'sort' in rdata: if 'dir' in rdata and rdata['dir']=='DESC': result = result.order_by('-%s' % rdata['sort']) else: result = result.order_by('%s' % rdata['sort']) total = result.count() if 'start' in rdata and 'limit' in rdata: result = result[rdata['start']:rdata['start']+rdata['limit']] result = [obj.store_record() for obj in result] return dict(data=result, success=success, total=total, extras=extras)