def __init__(self, email, name, password, learned_language=None, native_language=None, invitation_code=None, cohort=None): self.email = email self.name = name self.update_password(password) self.learned_language = learned_language or Language.default_learned() self.native_language = native_language or Language.default_native_language( ) self.invitation_code = invitation_code self.cohort = cohort # Add the learned language to user languages and set reading_news to True # so that the user has articles in the reader when opening it for the first time. from zeeguu.model import UserLanguage UserLanguage(self, learned_language or Language.default_learned(), reading_news=True)
def __init__(self, email, name, password, learned_language=None, native_language=None, invitation_code=None): self.email = email self.name = name self.update_password(password) self.learned_language = learned_language or Language.default_learned() self.native_language = native_language or Language.default_native_language( ) self.invitation_code = invitation_code
def create_account(): # A cool way of passing the arguments to the flask template template_arguments = dict ( languages= Language.all(), native_languages = Language.native_languages(), default_learned= Language.default_learned() ) # GET if flask.request.method == "GET": return flask.render_template("create_account.html", **template_arguments) # POST form = flask.request.form password = form.get("password", None) email = form.get("email", None) name = form.get("name", None) code = form.get("code", None) language = Language.find(form.get("language", None)) native_language = Language.find(form.get("native_language", None)) if not (code == "Kairo" or code == "unibe" or code == "rug" or code =="42"): flash("Invitation code is not recognized. Please contact us.") elif password is None or email is None or name is None: flash("Please enter your name, email address, and password") else: try: zeeguu.db.session.add(User(email, name, password, language, native_language)) zeeguu.db.session.commit() user = User.authorize(email, password) flask.session["user"] = user.id return flask.redirect(flask.url_for("account.my_account")) except ValueError: flash("Username could not be created. Please contact us.") except sqlalchemy.exc.IntegrityError: flash(email + " is already in use. Please select a different email.") except: flash("Something went wrong. Please contact us.") finally: zeeguu.db.session.rollback() return flask.render_template("create_account.html", **template_arguments)
def __init__(self, email, username, password, learned_language=None, native_language = None): self.email = email self.name = username self.update_password(password) self.learned_language = learned_language or Language.default_learned() self.native_language = native_language or Language.default_native_language()