def monitoring(): if not g.user.editor: redirect('/') users = User.objects(editor=False) exercises = Exercise.objects() progress = {user: {p.exercise: p for p in ExerciseProgress.objects(user=user)} for user in users} breadcrumbs = [('Home', '/'), ('Monitoring', None)] return render_template('monitoring.html', users=users, exercises=exercises, progress=progress, breadcrumbs=breadcrumbs)
def search_words(): words = request.json['words'] tags = request.json['tags'].split() words = words.lower() find = [words] + words.split() if tags == [] : exercises = Exercise.objects else : exercises = Exercise.objects(tags__in=tags) try: user_id = g.user.id except: user_id = None found = set([e for e in exercises for w in find if w in e.title.lower() or w in e.description.lower()]) found = [f.to_dict() for f in found if f.published or f.author.id == user_id] return jsonify(ok=True, result=found, user=user_id)
def get_occurences(): occurrences = [] tags = list(set(t for e in Exercise.objects(published=True) for t in e.tags)) for t in tags : occurrences.append(str(len(Exercise.objects(tags=t,published=True)))) return jsonify(ok=True, tags=tags, occurrences=occurrences)