示例#1
0
文件: views.py 项目: dlukes/kudlanka
            raise ValidationError("Uživatel má již várku přidělenou.")


class KudlankaLoginForm(LoginForm):
    email = TextField("Uživatel")
    password = PasswordField("Heslo")
    remember = BooleanField("Zapamatovat přihlášení")
    submit = SubmitField("Přihlásit se")


security = Security(app, user_ds, login_form=KudlankaLoginForm)

# Regular routes


@app.route(k("/"))
def root():
    if current_user.has_role("admin"):
        return redirect(url_for("admin"))
    if current_user.is_authenticated():
        return redirect(url_for("edit"))
    else:
        return redirect(url_for_security("login"))


@app.route(k("/list/"))
@login_required
def list():
    uid = session["user_id"]
    user = User.objects(id=uid).first()
    segs = []
示例#2
0
文件: api.py 项目: dlukes/kudlanka
    method_decorators = [with_user_info]

    def get(self):
        max_done = app.config["MAX_DISAMB_PASSES"]
        uid = session["user_id"]
        user = User.objects(id=uid).first()
        if user.assigned:
            seg = Seg.objects(sid=user.assigned).first().to_mongo()
            return seg
        # if user.assigned == "", then the user has completed all segs in
        # user.segs and might be done with their batch
        elif len(user.segs) >= sum(user.batches):
            abort(404, messages=[["success", SegAssign.done]])
        else:
            # assign the already rated (i.e. the most rated → order_by) segs
            # first
            seg = Seg.objects(ambiguous=True, users_size__lt=max_done, users__nin=[uid]).order_by("-users_size").first()
            try:
                users = set(seg.users + [uid])
                users_size = len(users)
                seg.modify(users=users, users_size=users_size)
                user.modify(assigned=seg.sid, add_to_set__segs=seg.sid)
            except AttributeError:
                # seg is None
                abort(400, messages=[["danger", SegAssign.noseg_err]])
            return seg.to_mongo()


api.add_resource(SegSid, k("/api/sid/<string:sid>/"))
api.add_resource(SegAssign, k("/api/assign/"))