Skip to content

Commit

Permalink
Merge pull request #83 from vitorfs/dev
Browse files Browse the repository at this point in the history
Release v2.0.5
  • Loading branch information
vitorfs authored Sep 10, 2021
2 parents 3967603 + e6e8249 commit 7d43597
Show file tree
Hide file tree
Showing 6 changed files with 44 additions and 17 deletions.
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
Parsifal 2.0.5 (2021-09-10)
===========================

Bugfixes
--------

- Improve quality assessment performance (#81)


Parsifal 2.0.4 (2021-09-10)
===========================

Expand Down
2 changes: 1 addition & 1 deletion parsifal/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from parsifal.utils.version import get_version

VERSION = (2, 0, 4, "final", 0)
VERSION = (2, 0, 5, "final", 0)

__version__ = get_version(VERSION)
34 changes: 19 additions & 15 deletions parsifal/apps/reviews/conducting/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
from django.shortcuts import get_object_or_404, redirect, render
from django.template.context_processors import csrf
from django.urls import reverse as r
from django.utils.html import escape, format_html
from django.utils.html import escape
from django.utils.translation import gettext as _
from django.views.decorators.http import require_POST

Expand Down Expand Up @@ -237,6 +237,14 @@ def build_quality_assessment_table(request, review, order):
quality_questions = review.get_quality_assessment_questions()
quality_answers = review.get_quality_assessment_answers()

csrf_token = csrf(request)["csrf_token"]

quality_index = {}
for study in selected_studies:
quality_index[study.pk] = {}
for qa in study.qualityassessment_set.all():
quality_index[study.pk][qa.question_id] = qa.answer_id

if quality_questions and quality_answers:
str_table = ""
for study in selected_studies:
Expand All @@ -248,31 +256,27 @@ def build_quality_assessment_table(request, review, order):
<table class="table" id="tbl-quality" article-id="{2}" csrf-token="{3}">
<tbody>""".format(
escape(study.title), study.score, study.id, str(csrf(request)["csrf_token"]), escape(study.year)
escape(study.title), study.score, study.id, csrf_token, escape(study.year)
)

for question in quality_questions:
str_table += format_html(
'<tr question-id="{question_id}"><td>{question_description}</td>',
str_table += '<tr question-id="{question_id}"><td>{question_description}</td>'.format(
question_id=question.pk,
question_description=question.description,
question_description=escape(question.description),
)

question_answer_id = None
for qa in study.qualityassessment_set.all():
if qa.question_id == question.pk:
question_answer_id = qa.answer_id
break
question_answer_id = quality_index[study.pk].get(question.pk)

for answer in quality_answers:
selected_answer = ""
if answer.id == question_answer_id:
selected_answer = " selected-answer"
str_table += format_html(
'<td class="answer {selected}" answer-id="{answer_id}">{answer_description}</td>',
selected=selected_answer,
answer_id=answer.pk,
answer_description=answer.description,
str_table += (
'<td class="answer {selected}" answer-id="{answer_id}">{answer_description}</td>'.format(
selected=selected_answer,
answer_id=answer.pk,
answer_description=escape(answer.description),
)
)
str_table += "</tr>"

Expand Down
11 changes: 10 additions & 1 deletion parsifal/settings/local.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,22 @@
# CORE SETTINGS
# ==============================================================================

INSTALLED_APPS += ["debug_toolbar"]
INSTALLED_APPS += ["debug_toolbar", "silk"]

MIDDLEWARE.insert(0, "debug_toolbar.middleware.DebugToolbarMiddleware")
MIDDLEWARE.insert(0, "silk.middleware.SilkyMiddleware")


# ==============================================================================
# EMAIL SETTINGS
# ==============================================================================

EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend"


# ==============================================================================
# THIRD-PARTY APPS
# ==============================================================================

SILKY_PYTHON_PROFILER = True
SILKY_PYTHON_PROFILER_BINARY = True
4 changes: 4 additions & 0 deletions parsifal/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,10 @@

urlpatterns = [path("__debug__/", include(debug_toolbar.urls))] + urlpatterns

if apps.is_installed("silk"):

urlpatterns = [path("__silk__/", include("silk.urls"))] + urlpatterns

from django.conf.urls.static import static

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
1 change: 1 addition & 0 deletions requirements/local.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
-r tests.txt

django-debug-toolbar==3.2.2
git+git://github.com/jazzband/django-silk.git#egg=django-silk
ipython==7.27.0

0 comments on commit 7d43597

Please sign in to comment.