def subject_enroll(enroll_cfg): ''' The enroll_cfg should be configobj parsed file. ''' subjects = [] for email, details in enroll_cfg.items(): userdict = dict(username = email, email = email, first_name = details['first_name'].title(), password = details['password'], male = bool(details['male']), dob = strptime(details['dob'], '%Y-%m-%d') ) try: user = User.objects.get(username=userdict['username']) subject = Subject.objects.get(user=user) if not user.check_password(userdict['password']): user.set_password(userdict['password']) user.save() if not user.first_name == userdict['first_name']: user.first_name = userdict['first_name'] user.save() for key in ['male', 'dob']: if not getattr(subject, key) == userdict[key]: setattr(subject, key, userdict[key]) except ObjectDoesNotExist: user = User.objects.create_user(username=userdict['username'], password=userdict['password'], first_name=userdict['first_name'], email=userdict['email']) user.validate_unique() user.save() subject = Subject.objects.create_subject(user, date_of_birth=userdict['dob'], male=userdict['male']) subjects.append((user, subject)) return subjects
def get_birthdate(self): ''' Return birth date as %Y-%m-%d. ''' return strptime(self.postdict['birthdate'], '%Y-%m-%d')