Skip to content
Snippets Groups Projects
Commit 50273ea4 authored by Patrick Jentsch's avatar Patrick Jentsch
Browse files

Use links as list items for corpora and jobs. Add colors for service types. Link jobs to job page.

parent 136f2ee2
No related branches found
No related tags found
No related merge requests found
from flask import current_app, flash, redirect, render_template, url_for
from flask import abort, current_app, flash, redirect, render_template, url_for
from flask_login import current_user, login_required
from ..models import User, Corpus
from ..models import Corpus, User, Job
from ..tables import AdminUserTable, AdminUserItem
from . import main
from .forms import CreateCorpusForm
......@@ -14,9 +14,16 @@ def index():
return render_template('main/index.html.j2', title='Opaque')
@main.route('/corpora/<corpus>')
def corpora(corpus):
return render_template('main/corpus.html.j2', title=corpus)
@main.route('/admin', methods=['GET', 'POST'])
@login_required
@admin_required
def for_admins_only():
users = User.query.order_by(User.username).all()
items = [AdminUserItem(u.username, u.email, u.role_id, u.confirmed) for u in users]
table = AdminUserTable(items).__html__() # converts table object to html string
table = table.replace('tbody', 'tbody class="list"', 1) # add class list to tbody element. Needed by list.js
return render_template('main/admin.html.j2', title='Administration tools',
table=table)
@main.route('/dashboard', methods=['GET', 'POST'])
......@@ -54,13 +61,15 @@ def dashboard():
)
@main.route('/admin', methods=['GET', 'POST'])
@main.route('/jobs/<int:job_id>')
@login_required
@admin_required
def for_admins_only():
users = User.query.order_by(User.username).all()
items = [AdminUserItem(u.username, u.email, u.role_id, u.confirmed) for u in users]
table = AdminUserTable(items).__html__() # converts table object to html string
table = table.replace('tbody', 'tbody class="list"', 1) # add class list to tbody element. Needed by list.js
return render_template('main/admin.html.j2', title='Administration tools',
table=table)
def job(job_id):
job = Job.query.filter_by(id=job_id).first()
if not job:
print('Job not found.')
abort(404)
elif not job.user_id == current_user.id:
print('Job does not belong to current user.')
abort(403)
print(job)
return render_template('main/corpus.html.j2', title=job.title)
......@@ -27,16 +27,15 @@
</div>
</div>
</div>
<ul class="collection list">
<div class="collection list">
{% for corpus in current_user.corpora.all() %}
<li class="collection-item avatar">
<a href="#!" class="collection-item avatar">
<i class="material-icons circle">book</i>
<span class="title">{{ corpus.title }}</span>
<p>{{ corpus.description }}</p>
<a href="#!" class="secondary-content"><i class="material-icons">send</i></a>
</li>
</a>
{% endfor %}
</ul>
</div>
</div>
</div>
<script>
......@@ -78,13 +77,16 @@
</div>
</div>
</div>
<ul class="collection list">
<div class="collection list">
{% for job in current_user.jobs.all() %}
{% if job.service == 'nlp' %}
{% set service_color = 'blue' %}
{% set service_icon = 'format_textdirection_l_to_r' %}
{% elif job.service =='ocr' %}
{% set service_color = 'green' %}
{% set service_icon = 'find_in_page' %}
{% else %}
{% set service_color = 'red' %}
{% set service_icon = 'help' %}
{% endif %}
{% if job.status == 'pending' %}
......@@ -96,14 +98,14 @@
{% else %}
{% set badge_color = 'red' %}
{% endif %}
<li class="collection-item avatar">
<i class="material-icons circle">{{ service_icon }}</i>
<a href="{{ url_for('main.job', job_id=job.id) }}" class="collection-item avatar">
<i class="material-icons circle {{ service_color }}">{{ service_icon }}</i>
<span class="new badge {{ badge_color }}" data-badge-caption="">{{ job.status }}</span>
<span class="title">{{ job.title }}</span>
<p>{{ job.description }}</p>
</li>
</a>
{% endfor %}
</ul>
</div>
</div>
</div>
<script>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment