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 = []
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/"))