From 68bc5941842018ac733e23afe281c15fdf9af137 Mon Sep 17 00:00:00 2001 From: phear Date: Sat, 29 Dec 2012 11:06:06 +0000 Subject: [PATCH] added stubs for user management. the spam check functions seemed to give inconsistent results, fixed now. --- wortschlucker/src/wortschlucker.py | 49 +++++++++++++++++++++++++++--- 1 file changed, 45 insertions(+), 4 deletions(-) diff --git a/wortschlucker/src/wortschlucker.py b/wortschlucker/src/wortschlucker.py index f9fb68e..5cb98f0 100755 --- a/wortschlucker/src/wortschlucker.py +++ b/wortschlucker/src/wortschlucker.py @@ -584,9 +584,9 @@ def is_spam_submitter_name(name, errors_dict): (len(lower_text) > 3) and (len(upper_text) > 3) and \ (len(name) >= 8) and (not name.startswith(upper_text)): errors_dict["submitter"] = "Spam-Verdacht: bitte den Namen korrigieren" - return False - else: return True + else: + return False def is_spam_content(text, errors_dict): if re.search(r"()", text.lower()): @@ -771,6 +771,45 @@ def new_poll(bobo_request, submit=None, cancel=None, author=None, title=None, new_poll.change_setting(key, value) return bobo.redirect(new_poll.get_admin_url()) + +@bobo.query('/login') +@bobo.query('/login/') +def show_login(bobo_request): + """ shows a form for logging in and creating an account""" + value_dict = get_default_values(bobo_request) + return render("login.html", **value_dict) + + +@bobo.query('/newprofile') +@bobo.query('/newprofile/') +def show_newprofile(bobo_request): + """ Show polls and account data of this user and allows for changing the password. """ + value_dict = get_default_values(bobo_request) + return render("profile.html", **value_dict) + +@bobo.query('/:hash_key/vote_result.csv') +def vote_result(bobo_request, hash_key=None): + value_dict = get_default_values(bobo_request) + value_dict["errors"] = {} + data = {} + poll_id = get_poll_id(hash_key) + preorder = ["Paintball", "Billard", "Eislaufen", "Kegeln", "Kneipengang", "Karaoke", "Tischtennis", "Bowling", "Geek-out", "Go-Kart", "Dart"] + if not poll_id is None: + poll = Poll.get(poll_id) + voters = [] + for submission in ContentSubmission.selectBy(poll_id=poll.id): + for vote in VoteOrder.selectBy(content_submission_id=submission): + if not vote.submitter in voters: + voters.append(vote.submitter) + lines = [] + for voter in voters: + sorting = poll.get_ordered_submissions(voter) + items = [str(preorder.index(submission.content) + 1) for submission in sorting] + lines.append(" ".join(items)) + return os.linesep.join(lines) + else: + return bobo.redirect(BASE_DICT["base_url"]) + @bobo.query('/:hash_key/vote') def vote_submission_order(bobo_request, hash_key=None, submitter=None, vote_order=None): @@ -824,9 +863,9 @@ def submit_content(bobo_request, hash_key=None, submitter=None, content=None): value_dict = get_default_values(bobo_request) value_dict["errors"] = {} data = {} - if content and is_spam_content(content, value_dict["errors"]): + if content and (not is_spam_content(content, value_dict["errors"])): data["content"] = content - if submitter and is_spam_submitter_name(submitter, value_dict["errors"]): + if submitter and (not is_spam_submitter_name(submitter, value_dict["errors"])): data["submitter"] = submitter poll_id = get_poll_id(hash_key) if not poll_id is None: @@ -930,6 +969,7 @@ def admin_poll(bobo_request, cancel=False, submit=None, admin_hash_key=None, aut if poll_id is None: return bobo.redirect(BASE_DICT["base_url"]) poll = Poll.get(poll_id) + value_dict["poll"] = poll # cancel: return to (non-edit) admin page if cancel: return bobo.redirect(poll.get_admin_url()) @@ -1194,6 +1234,7 @@ def show_one_poll(bobo_request, poll_hash_for_admin=None, poll_hash=None, else: return bobo.redirect(BASE_DICT["base_url"]) + @bobo.query('/node/:pagename') def show_static_nodes(bobo_request, pagename=None): """ meant for serving hand-changed, automatically styled content. """