コード例 #1
0
    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)
コード例 #2
0
ファイル: views.py プロジェクト: Luifer1/mechanical-mooc
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)
コード例 #3
0
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)
コード例 #4
0
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)
コード例 #5
0
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)
コード例 #6
0
    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)
コード例 #7
0
    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)
コード例 #8
0
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()
コード例 #9
0
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)
コード例 #10
0
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()
コード例 #11
0
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)
コード例 #12
0
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()
コード例 #13
0
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()
コード例 #14
0
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)
コード例 #15
0
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)
コード例 #16
0
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)
コード例 #17
0
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)