Example #1
0
 def save(self, force_insert = False, force_update = False, init = False, safe = False):
     if hasattr(self, 'account'): self.account = str(self.account)
     if self.pk:
         if self.prefix == 'p':
             old = Pupil.objects.get(id = self.id)
         if self.prefix == 't':
             old = Teacher.objects.get(id = self.id)
         if self.prefix == 's':
             old = Staff.objects.get(id = self.id)
     if self.school.gate_use:
         from gate import Gate
         gate = Gate(self.school.gate_url, self.school.gate_id, self.school.gate_password)
         if self.prefix == 'p':
             if not self.gate_id:
                 if len(self.phone_mother) > 5:
                     self.gate_id = gate.addUser(self.phone_mother)
                 if len(self.phone_father) > 5:
                     self.gate_id = gate.addUser(self.phone_father)
             else:
                 if old.phone_mother != self.phone_mother:
                     gate.changePhone(self.gate_id, self.phone_mother)
                 if old.phone_father != self.phone_father:
                     gate.changePhone(self.gate_id, self.phone_father)
     if not self.pk or init:
         if self.school.gapps_use:
             import gdata.apps.service
             self.username = self.gen_username()
             service = gdata.apps.service.AppsService(email = self.school.gapps_login, domain = self.school.gapps_domain, password = self.school.gapps_password)
             service.ProgrammaticLogin()
             try:
                 service.CreateUser(self.username, self.last_name, self.first_name, '123456789', quota_limit=1000)
             except gdata.apps.service.AppsForYourDomainException, (error, ):
                 self.set_password('123456789')
                 super(Clerk, self).save(force_insert, force_update)
                 raise gdata.apps.service.AppsForYourDomainException(error)
         else: 
             from random import randint
             username = self.school.prefix + str(randint(10**6, 9999999))
             while User.objects.filter(username = username).count()!=0:
                 username = '******' + str(randint(10**6, 9999999))
             self.username = username
         self.set_password("123456789")
         super(Clerk, self).save(force_insert, force_update)