def test_get_current_sequence_number(self): cs = sequence_model.get_current_sequence() csn = sequence_model.get_current_sequence_number() self.assertIsNone(cs) self.assertIsNone(csn) # test sequence in the past now = datetime.datetime.utcnow().date() start_date = now - datetime.timedelta(weeks=16) signup_close_date = now - datetime.timedelta(weeks=17) sequence_model.create_sequence( start_date, signup_close_date ) cs = sequence_model.get_current_sequence() csn = sequence_model.get_current_sequence_number() self.assertIsNone(cs) self.assertIsNone(csn) start_date = now + datetime.timedelta(weeks=16) signup_close_date = now + datetime.timedelta(weeks=17) sequence_model.create_sequence( start_date, signup_close_date ) cs = sequence_model.get_current_sequence() csn = sequence_model.get_current_sequence_number() self.assertEqual(cs['id'], csn)
def sequence_redirect(request): # TODO if we have a signed in user, we should redirect to the right sequence current_sequence = sequence_api.get_current_sequence_number() if not current_sequence: return http.HttpResponseNotFound() url = reverse('classphoto_classphoto', kwargs={'sequence':current_sequence}) return http.HttpResponseRedirect(url)
def create_or_update_signup( email, questions ): # check if user is already added to the current sequence sequence = sequence_model.get_current_sequence_number() if db.UserSignup.objects.filter(email__iexact=email, sequence=sequence).exists(): return update_signup(email, questions) else: return create_signup(email, questions)
def create_or_update_signup(email, questions): # check if user is already added to the current sequence sequence = sequence_model.get_current_sequence_number() if db.UserSignup.objects.filter(email__iexact=email, sequence=sequence).exists(): return update_signup(email, questions) else: return create_signup(email, questions)
def sequence_redirect(request): # TODO if we have a signed in user, we should redirect to the right sequence current_sequence = sequence_api.get_current_sequence_number() if not current_sequence: return http.HttpResponseNotFound() url = reverse('classphoto_classphoto', kwargs={'sequence': current_sequence}) return http.HttpResponseRedirect(url)
def handle(self, *args, **options): import requests resp = requests.get(args[0]) sequence_number = sequence_model.get_current_sequence_number() for signup in resp.json(): email = signup['email'] del signup['email'] create_or_update_signup(email, signup) db.UserSignup.objects.filter(email=email).update(date_welcome_email_sent=datetime.datetime.utcnow()) add_user_to_global_list(email, sequence_number)
def handle(self, *args, **options): import requests resp = requests.get(args[0]) sequence_number = sequence_model.get_current_sequence_number() for signup in resp.json(): email = signup['email'] del signup['email'] create_or_update_signup(email, signup) db.UserSignup.objects.filter(email=email).update( date_welcome_email_sent=datetime.datetime.utcnow()) add_user_to_global_list(email, sequence_number)
def update_signup( email, questions ): """ will also add a signup to the latest sequence """ signup_db = db.UserSignup.objects.get(email=email, date_deleted__isnull=True) old_questions = simplejson.loads(signup_db.questions) for key, value in questions.items(): old_questions[key] = value signup_db.questions = simplejson.dumps(old_questions) signup_db.date_updated = datetime.utcnow() sequence = sequence_model.get_current_sequence_number() signup_db.sequence = sequence signup_db.save()
def update_signup( email, questions ): """ Update the signup if it exists for the current sequence. If the signup was previously delete it will be undeleted """ sequence = sequence_model.get_current_sequence_number() signup_db = db.UserSignup.objects.get(email__iexact=email, sequence=sequence) old_questions = simplejson.loads(signup_db.questions) for key, value in questions.items(): old_questions[key] = value signup_db.questions = simplejson.dumps(old_questions) signup_db.date_updated = datetime.utcnow() signup_db.date_deleted = None signup_db.save() return _signup2json(signup_db)
def update_signup(email, questions): """ will also add a signup to the latest sequence """ signup_db = db.UserSignup.objects.get(email=email, date_deleted__isnull=True) old_questions = simplejson.loads(signup_db.questions) for key, value in questions.items(): old_questions[key] = value signup_db.questions = simplejson.dumps(old_questions) signup_db.date_updated = datetime.utcnow() sequence = sequence_model.get_current_sequence_number() signup_db.sequence = sequence signup_db.save()
def update_signup(email, questions): """ Update the signup if it exists for the current sequence. If the signup was previously delete it will be undeleted """ sequence = sequence_model.get_current_sequence_number() signup_db = db.UserSignup.objects.get(email__iexact=email, sequence=sequence) old_questions = json.loads(signup_db.questions) for key, value in questions.items(): old_questions[key] = value signup_db.questions = json.dumps(old_questions) signup_db.date_updated = datetime.utcnow() signup_db.date_deleted = None signup_db.save() return _signup2json(signup_db)
def remove_signup_from_sequence( email ): """ remove the signup from the sequence it is in and add it to the nexxt sequence if there is one. """ signup_db = db.UserSignup.objects.get(email=email, date_deleted__isnull=True) sequence_number = sequence_model.get_current_sequence_number() if signup_db.sequence != sequence_number: signup_db.sequence = sequence_number signup_db.date_updated = datetime.utcnow() signup_db.date_tasks_handled = None signup_db.save() else: signup_db.sequence = None signup_db.date_updated = datetime.utcnow() signup_db.save()
def remove_signup_from_sequence(email): """ remove the signup from the sequence it is in and add it to the nexxt sequence if there is one. """ signup_db = db.UserSignup.objects.get(email=email, date_deleted__isnull=True) sequence_number = sequence_model.get_current_sequence_number() if signup_db.sequence != sequence_number: signup_db.sequence = sequence_number signup_db.date_updated = datetime.utcnow() signup_db.date_tasks_handled = None signup_db.save() else: signup_db.sequence = None signup_db.date_updated = datetime.utcnow() signup_db.save()
def create_signup(email, questions): if db.UserSignup.objects.filter(email=email, date_deleted__isnull=True).exists(): raise Exception('Signup already exists') invite_code = ''.join( [random.choice(string.letters + string.digits) for i in range(32)]) sequence_number = sequence_model.get_current_sequence_number() now = datetime.utcnow() signup = db.UserSignup(email=email, invite_code=invite_code, questions=simplejson.dumps(questions), sequence=sequence_number, date_added=now, date_updated=now) signup.save() return get_signup(email)
def create_signup(email, questions): """ Add signup to the current sequence """ sequence = sequence_model.get_current_sequence_number() if db.UserSignup.objects.filter(email__iexact=email, sequence=sequence).exists(): raise Exception('Signup already exists') invite_code = ''.join( [random.choice(string.letters + string.digits) for i in range(32)]) now = datetime.utcnow() signup = db.UserSignup(email=email, invite_code=invite_code, questions=json.dumps(questions), sequence=sequence, date_added=now, date_updated=now) signup.save() return _signup2json(signup)
def create_signup( email, questions ): """ Add signup to the current sequence """ sequence = sequence_model.get_current_sequence_number() if db.UserSignup.objects.filter(email__iexact=email, sequence=sequence).exists(): raise Exception('Signup already exists') invite_code=''.join([ random.choice(string.letters+string.digits) for i in range(32) ]) now = datetime.utcnow() signup = db.UserSignup( email=email, invite_code=invite_code, questions=simplejson.dumps(questions), sequence=sequence, date_added=now, date_updated=now ) signup.save() return _signup2json(signup)
def create_signup( email, questions ): if db.UserSignup.objects.filter(email=email, date_deleted__isnull=True).exists(): raise Exception('Signup already exists') invite_code=''.join([ random.choice(string.letters+string.digits) for i in range(32) ]) sequence_number = sequence_model.get_current_sequence_number() now = datetime.utcnow() signup = db.UserSignup( email=email, invite_code=invite_code, questions=simplejson.dumps(questions), sequence=sequence_number, date_added=now, date_updated=now ) signup.save() return get_signup(email)