Beispiel #1
0
def home(request):
    user = local.gae_user
    account = models.GoogleAccount.gql('WHERE google_user = :1', user).get()
    if account:
        any_submission_key = db.GqlQuery('SELECT __key__ FROM Submission WHERE account = :1', account.key()).get()
        if any_submission_key:
            return redirect(url_for('home/dashboard'))
        else:
            return redirect(url_for('home/submit'))
    else:
        account = models.GoogleAccount(google_user=user, email=user.email())
        account.put()
        return redirect(url_for('home/first'))
Beispiel #2
0
def resubmit(request, submission_id):
    submission = models.Submission.get_by_id(submission_id)
    if submission is None or submission.account.key().id() != local.account.key().id():
        logging.warning('Attempt to resubmit submission "%s" by account "%s" with email "%s".' % (submission_id, local.account.key().id(), local.account.email))
        return redirect(url_for('main/index'))
    if request.method == "POST":
        form = forms.ResubmissionForm(request.form)
        if form.validate():
            submission.text_list.append(db.Text(utils.text_tidy(form.text.data)))
            submission.put()
            flash("Your submission has been updated.")
            return redirect(url_for('home/preview', submission_id=submission.key().id()))
    else:
        form = forms.ResubmissionForm(obj=submission)
    return render_response('resubmit.html', form=form, submission=submission)
Beispiel #3
0
def _redirect_unauthorized(resp):
    if resp.status_code == 401:
        # We need the request for later redirecting.
        req = get_request()
        resp.headers['Location'] = url_for("auth/login", **{REDIRECT_FIELD_NAME:
                                                            req.url})
        resp.status_code = 302
Beispiel #4
0
def test_endpoint_lookup():
    """
    Adding a rule, and that it's in the map
    """
    def _add_rule_setup(app):
        app.add_url('/', endpoint='foo/blah')

    app = make_app(_add_rule_setup, 'test_output')

    assert url_for('foo/blah') == '/'
Beispiel #5
0
def faq_admin_group(request):
    if request.method == 'POST':
        form = forms.GroupForm(request.form)
        if form.validate():
            group = models.FrequentlyAskedQuestionGroup(title=form.title.data, weight=form.weight.data)
            group.put()
            return redirect(url_for('main/faq'))
    else:
        form = forms.GroupForm()
    return render_response('faq_admin_group.html', form=form)
Beispiel #6
0
def faq_admin_question(request):
    if request.method == 'POST':
        form = forms.QuestionForm(request.form)
        if form.validate():
            group = models.FrequentlyAskedQuestionGroup.get_by_id(int(form.group.data))
            question = models.FrequentlyAskedQuestion(question=form.question.data, answer=form.answer.data, weight=form.weight.data, group=group.key())
            question.put()
            return redirect(url_for('main/faq'))
    else:
        form = forms.QuestionForm()
    return render_response('faq_admin_question.html', form=form)
Beispiel #7
0
def add_edit_view(req, nid=None):
    if nid is None:
        form = NotesForm(req.form)
        # Validate form
        if req.method == 'POST' and form.validate():
            # No validation errors, save note and redirect to success page
            note = Note(
                        req.form.get('title'),
                        req.form.get('note'),
                        req.form.get('importance')
                        )
            db.add(note)
            db.commit()
            return redirect(url_for('example/success'))
        return render_response('notes_add.jinja', form=form)
    else:
        # Find note
        note = db.query(Note).get(nid)
        # Check if note exists
        if note is None:
            return Response('Not Found', status=404)
        # Form with values
        form = NotesForm(req.form,
                        title = note.title,
                        note = note.note,
                        importance = note.importance
                        )
        # Validate form
        if req.method == 'POST' and form.validate():
            # No validation errors, update note and redirect to success page
            note.title = req.form.get('title')
            note.note = req.form.get('note')
            note.importance = req.form.get('importance')
            db.add(note)
            db.commit()
            return redirect(url_for('example/success'))
        return render_response('notes_edit.jinja', note=note, form=form)
Beispiel #8
0
def submit(request):
    if request.method == "POST":
        form = forms.SubmissionForm(request.form)
        if form.validate():
            submission = models.Submission(account=local.account,
                                           simultaneous=form.simultaneous.data,
                                           cover_letter=db.Text(utils.text_tidy(form.cover_letter.data)),
                                           title=utils.text_tidy(form.title.data),
                                           text_list=[db.Text(utils.text_tidy(form.text.data))],
                                           categories=form.categories.data)
            submission.put()
            flash("Your submission has been saved.")
            return redirect(url_for('home/preview', submission_id=submission.key().id()))
    else:
        form = forms.SubmissionForm()
    return render_response('submit.html', form=form)
Beispiel #9
0
def login_view(req):
    session = get_session()
    consumer = Consumer(session, None)
    url_back = url_for('openid/login', _external=True)
    if req.method == 'POST':
        url = req.form.get('openid')
        authreq = consumer.begin(url)
        return redirect(authreq.redirectURL(url_back, url_back))
    else:
        res = consumer.complete(req.args, url_back)
        if res.status == SUCCESS:
            identity = req.args.get('openid.identity')
            login(identity)
            return Response('Successfully logged in as: %s' % identity)
        elif res.status == CANCEL:
            return Response('Cancelled')
        else:
            return Response('Nope')
        print res == SUCCESS
Beispiel #10
0
 def url_shared(self, filename, **kw):
     return url_for('shared/%s' % self.name, filename=filename, **kw)
Beispiel #11
0
 def url_local(self, endpoint_name, **kw):
     return url_for(self.get_endpoint(endpoint_name), **kw)
Beispiel #12
0
def view_logout(request):
    """Just logout and redirect to the login screen."""
    logout()
    return redirect(url_for('auth/login'))
Beispiel #13
0
 def wrapped(*args, **kw):
     if get_app().conf['auth/token_key'] in get_session():
         return f(*args, **kw)
     else:
         return redirect(url_for('auth/login'))
Beispiel #14
0
def profile(request):
    return render_profile(request, "profile.html", url_for('home/profile'))
Beispiel #15
0
def preview(request, submission_id):
    submission = models.Submission.get_by_id(submission_id)
    if submission is None or submission.account.key().id() != local.account.key().id():
        logging.warning('Attempt to retrieve submission "%s" by account "%s" with email "%s".' % (submission_id, local.account.key().id(), local.account.email))
        return redirect(url_for('main/index'))
    return render_response("preview.html", submission=submission)
Beispiel #16
0
 def get_preview_url(self):
     return url_for("home/preview", submission_id=self.key().id())
Beispiel #17
0
def _view(req):
    s = url_for('shared/test', filename='blah')
    return Response(s)
Beispiel #18
0
def first(request):
    return render_profile(request, "first.html", url_for('home/submit'))