Skip to content
Snippets Groups Projects
Commit ccc5240e authored by Bryan BRANCOTTE's avatar Bryan BRANCOTTE
Browse files

Merge branch 'fix-pending-jm' into 'master'

take jury manager into account when looking for pending user.

Closes #172

See merge request !239
parents 9215c10c 3f16a021
No related branches found
No related tags found
1 merge request!239take jury manager into account when looking for pending user.
Pipeline #150145 passed
......@@ -167,7 +167,11 @@ def has_pending_user(request):
qs = models.User.objects.filter(is_active=True)
qs = business_logic.annotate_is_juror(qs, pending_to_become_one=True)
qs = business_logic.annotate_is_reviewer(qs, pending_to_become_one=True)
return request is not None and qs.filter(Q(is_pending_juror=True) | Q(is_pending_reviewer=True)).exists()
qs = business_logic.annotate_is_jury_manager(qs, pending_to_become_one=True)
return (
request is not None
and qs.filter(Q(is_pending_juror=True) | Q(is_pending_reviewer=True) | Q(is_pending_jury_manager=True)).exists()
)
def cleanup_line_starts(value):
......@@ -233,7 +237,7 @@ def my_progress_bar(value, total=100, color_class='primary', as_ratio=False, sec
if over_all_value > 0:
limit = int(10000 * value / over_all_value) / 100
style = f"background: linear-gradient( to right, #0000 {limit}%, #fff3 {limit}% 40% );"
style += f"width: {0 if total==0 else int(100.0*over_all_value/total)}%;"
style += f"width: {0 if total == 0 else int(100.0 * over_all_value / total)}%;"
low = total == 0 or (1.0 * over_all_value / total < 0.3)
bar = (
'<div class="progress position-relative" style="height: 2em;">'
......
from html.parser import HTMLParser
from django.contrib.auth import get_user_model
from django.test import RequestFactory
from django.utils import timezone
from freezegun import freeze_time
from live_settings import live_settings
from strass_app import business_logic
from strass_app.templatetags import strass_tags
from strass_app.templatetags.strass_tags import my_progress_bar, get_timer_before, markdown
from strass_app.tests.test_base_test_case import TooledTestCase
......@@ -110,3 +113,45 @@ class AllTestCase(TooledTestCase):
self.assertIn('<a href', markdown("[toto](https://aa.bb.com)"))
self.assertNotIn('<a href', markdown("[toto](javascript:alert('Hi'))"))
self.assertNotIn('<a href', markdown("[toto](script://a=1;)"))
def test_has_pending_user(self):
# jury_manager = get_user_model().objects.create(
# username="jury_manager",
# first_name="jury",
# last_name="manager",
# email="jury_manager@pasteur.fr",
# )
u = get_user_model().objects.create(
username="user",
first_name="usery",
last_name="user",
email="user@pasteur.fr",
)
# business_logic.set_jury_manager(jury_manager, True)
req = RequestFactory().get('/blabla')
# req.user = jury_manager
self.assertFalse(strass_tags.has_pending_user(req))
business_logic.set_reviewer(u, True, pending_to_become_one=True)
self.assertTrue(strass_tags.has_pending_user(req))
business_logic.set_reviewer(u, True)
self.assertFalse(strass_tags.has_pending_user(req))
business_logic.set_reviewer(u, False)
self.assertFalse(strass_tags.has_pending_user(req))
self.assertFalse(strass_tags.has_pending_user(req))
business_logic.set_juror(u, True, pending_to_become_one=True)
self.assertTrue(strass_tags.has_pending_user(req))
business_logic.set_juror(u, True)
self.assertFalse(strass_tags.has_pending_user(req))
business_logic.set_juror(u, False)
self.assertFalse(strass_tags.has_pending_user(req))
self.assertFalse(strass_tags.has_pending_user(req))
business_logic.set_jury_manager(u, True, pending_to_become_one=True)
self.assertTrue(strass_tags.has_pending_user(req))
business_logic.set_jury_manager(u, True)
self.assertFalse(strass_tags.has_pending_user(req))
business_logic.set_jury_manager(u, False)
self.assertFalse(strass_tags.has_pending_user(req))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment