Пример #1
0
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
Пример #2
0
    def get_birthdate(self):
        '''
        Return birth date as %Y-%m-%d.
        '''

        return strptime(self.postdict['birthdate'], '%Y-%m-%d')