diff --git a/docs/_build/html/_modules/core/forms/conditional_form.html b/docs/_build/html/_modules/core/forms/conditional_form.html index 3ea99ecbf..835be8446 100644 --- a/docs/_build/html/_modules/core/forms/conditional_form.html +++ b/docs/_build/html/_modules/core/forms/conditional_form.html @@ -152,7 +152,7 @@
from django import forms
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from ..utils import is_empty
diff --git a/docs/_build/html/_modules/core/forms/mixins.html b/docs/_build/html/_modules/core/forms/mixins.html
index 3965e061c..4c7f6b9e4 100644
--- a/docs/_build/html/_modules/core/forms/mixins.html
+++ b/docs/_build/html/_modules/core/forms/mixins.html
@@ -155,7 +155,7 @@ Source code for core.forms.mixins
from django.forms.fields import Field, FileField
from django.forms.models import InlineForeignKeyField, construct_instance
from django.forms.utils import ErrorDict
-from django.utils.translation import ugettext as _
+from django.utils.translation import gettext as _
[docs]class SoftValidationMixin:
diff --git a/docs/_build/html/_modules/core/models.html b/docs/_build/html/_modules/core/models.html
index 812faa697..7a3c554b3 100644
--- a/docs/_build/html/_modules/core/models.html
+++ b/docs/_build/html/_modules/core/models.html
@@ -152,7 +152,7 @@
Source code for core.models
from django.db import models
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from django.utils.encoding import python_2_unicode_compatible
YES = 'Y'
diff --git a/docs/_build/html/_modules/core/utils.html b/docs/_build/html/_modules/core/utils.html
index c854307ba..9ebfb9bea 100644
--- a/docs/_build/html/_modules/core/utils.html
+++ b/docs/_build/html/_modules/core/utils.html
@@ -154,7 +154,7 @@ Source code for core.utils
from django.conf import settings
from django.contrib.auth import get_user_model
from django.db.models import Q
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
import django.utils.six as six
YES_NO = [(True, _('ja')), (False, _('nee'))]
diff --git a/docs/_build/html/_modules/core/validators.html b/docs/_build/html/_modules/core/validators.html
index 6bc54e095..0276b06f9 100644
--- a/docs/_build/html/_modules/core/validators.html
+++ b/docs/_build/html/_modules/core/validators.html
@@ -154,7 +154,7 @@ Source code for core.validators
from django.core.exceptions import ValidationError
from django.core.files.uploadedfile import UploadedFile
from django.core.validators import BaseValidator
-from django.utils.translation import ugettext_lazy, ungettext_lazy
+from django.utils.translation import gettext_lazy, ungettext_lazy
ALLOWED_CONTENT_TYPES = ['application/pdf', 'application/msword',
'application/vnd.openxmlformats-officedocument.wordprocessingml.document']
@@ -173,7 +173,7 @@ Source code for core.validators
[docs]def validate_pdf_or_doc(value):
f = value.file
if isinstance(f, UploadedFile) and f.content_type not in ALLOWED_CONTENT_TYPES:
- raise ValidationError(ugettext_lazy('Alleen .pdf- of .doc(x)-bestanden zijn toegestaan.'))
+ raise ValidationError(gettext_lazy('Alleen .pdf- of .doc(x)-bestanden zijn toegestaan.'))
diff --git a/docs/_build/html/_modules/django/contrib/auth/models.html b/docs/_build/html/_modules/django/contrib/auth/models.html
index 5a7916243..2126d0101 100644
--- a/docs/_build/html/_modules/django/contrib/auth/models.html
+++ b/docs/_build/html/_modules/django/contrib/auth/models.html
@@ -164,7 +164,7 @@ Source code for django.contrib.auth.models
from django.utils import six, timezone
from django.utils.deprecation import CallableFalse, CallableTrue
from django.utils.encoding import python_2_unicode_compatible
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from .validators import ASCIIUsernameValidator, UnicodeUsernameValidator
diff --git a/docs/_build/html/_modules/django/db/models/fields/files.html b/docs/_build/html/_modules/django/db/models/fields/files.html
index 404c3a26a..8366cc4b1 100644
--- a/docs/_build/html/_modules/django/db/models/fields/files.html
+++ b/docs/_build/html/_modules/django/db/models/fields/files.html
@@ -166,7 +166,7 @@ Source code for django.db.models.fields.files
from django.utils import six
from django.utils.deprecation import RemovedInDjango20Warning
from django.utils.encoding import force_str, force_text
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
class FieldFile(File):
diff --git a/docs/_build/html/_modules/faqs/models.html b/docs/_build/html/_modules/faqs/models.html
index a20d69838..faf1757e3 100644
--- a/docs/_build/html/_modules/faqs/models.html
+++ b/docs/_build/html/_modules/faqs/models.html
@@ -152,7 +152,7 @@
Source code for faqs.models
from django.db import models
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from django.utils.encoding import python_2_unicode_compatible
[docs]@python_2_unicode_compatible
diff --git a/docs/_build/html/_modules/feedback/models.html b/docs/_build/html/_modules/feedback/models.html
index abba4eeee..964247471 100644
--- a/docs/_build/html/_modules/feedback/models.html
+++ b/docs/_build/html/_modules/feedback/models.html
@@ -153,7 +153,7 @@
Source code for feedback.models
from django.db import models
from django.conf import settings
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
STATUS_CODES = (
(1, _('Open')),
diff --git a/docs/_build/html/_modules/feedback/views.html b/docs/_build/html/_modules/feedback/views.html
index c2ba3fb39..89f960e85 100644
--- a/docs/_build/html/_modules/feedback/views.html
+++ b/docs/_build/html/_modules/feedback/views.html
@@ -153,7 +153,7 @@
Source code for feedback.views
from django.contrib.messages.views import SuccessMessageMixin
from django.urls import reverse
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from django.views import generic
from braces.views import LoginRequiredMixin
diff --git a/docs/_build/html/_modules/interventions/models.html b/docs/_build/html/_modules/interventions/models.html
index cdf557f27..1bd8a1d0b 100644
--- a/docs/_build/html/_modules/interventions/models.html
+++ b/docs/_build/html/_modules/interventions/models.html
@@ -153,7 +153,7 @@
Source code for interventions.models
from __future__ import unicode_literals
from django.db import models
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from core.models import SettingModel
from studies.models import Study
diff --git a/docs/_build/html/_modules/interventions/utils.html b/docs/_build/html/_modules/interventions/utils.html
index 571c0fd6a..ef1c8b479 100644
--- a/docs/_build/html/_modules/interventions/utils.html
+++ b/docs/_build/html/_modules/interventions/utils.html
@@ -152,7 +152,7 @@
Source code for interventions.utils
from django.urls import reverse
-from django.utils.translation import ugettext as _
+from django.utils.translation import gettext as _
from core.utils import AvailableURL
diff --git a/docs/_build/html/_modules/interventions/views.html b/docs/_build/html/_modules/interventions/views.html
index d9e3a2f01..eb066498e 100644
--- a/docs/_build/html/_modules/interventions/views.html
+++ b/docs/_build/html/_modules/interventions/views.html
@@ -152,7 +152,7 @@
Source code for interventions.views
from django.urls import reverse
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from core.views import CreateView, UpdateView, AllowErrorsOnBackbuttonMixin
from studies.models import Study
diff --git a/docs/_build/html/_modules/observations/models.html b/docs/_build/html/_modules/observations/models.html
index 8a21fbe92..fc01333fa 100644
--- a/docs/_build/html/_modules/observations/models.html
+++ b/docs/_build/html/_modules/observations/models.html
@@ -156,7 +156,7 @@ Source code for observations.models
from django.core.validators import MaxValueValidator
from django.db import models
from django.utils.encoding import python_2_unicode_compatible
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from core.models import SettingModel
from core.validators import validate_pdf_or_doc
diff --git a/docs/_build/html/_modules/observations/utils.html b/docs/_build/html/_modules/observations/utils.html
index 299c1537d..0a4da2c4e 100644
--- a/docs/_build/html/_modules/observations/utils.html
+++ b/docs/_build/html/_modules/observations/utils.html
@@ -152,7 +152,7 @@
Source code for observations.utils
from django.urls import reverse
-from django.utils.translation import ugettext as _
+from django.utils.translation import gettext as _
from core.utils import AvailableURL
diff --git a/docs/_build/html/_modules/observations/views.html b/docs/_build/html/_modules/observations/views.html
index 6d3ab2a78..6df9b6d94 100644
--- a/docs/_build/html/_modules/observations/views.html
+++ b/docs/_build/html/_modules/observations/views.html
@@ -152,7 +152,7 @@
Source code for observations.views
from django.urls import reverse
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from core.views import CreateView, UpdateView, AllowErrorsOnBackbuttonMixin
from fetc import settings
diff --git a/docs/_build/html/_modules/proposals/forms.html b/docs/_build/html/_modules/proposals/forms.html
index 6581e514d..98df63d7c 100644
--- a/docs/_build/html/_modules/proposals/forms.html
+++ b/docs/_build/html/_modules/proposals/forms.html
@@ -158,7 +158,7 @@ Source code for proposals.forms
from django.contrib.auth import get_user_model
from django.db.models import Q
from django.utils.safestring import mark_safe
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from core.forms import ConditionalModelForm, SoftValidationMixin
from core.models import DOUBT, NO, YES, YES_NO_DOUBT
diff --git a/docs/_build/html/_modules/proposals/models.html b/docs/_build/html/_modules/proposals/models.html
index b39325fdd..4305c1f4b 100644
--- a/docs/_build/html/_modules/proposals/models.html
+++ b/docs/_build/html/_modules/proposals/models.html
@@ -159,7 +159,7 @@ Source code for proposals.models
from django.core.validators import MaxValueValidator, MinValueValidator
from django.db import models
from django.utils.encoding import python_2_unicode_compatible
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from core.models import YES, YES_NO_DOUBT
from core.validators import MaxWordsValidator, validate_pdf_or_doc
diff --git a/docs/_build/html/_modules/proposals/utils/proposal_utils.html b/docs/_build/html/_modules/proposals/utils/proposal_utils.html
index ba86b111e..4884affb1 100644
--- a/docs/_build/html/_modules/proposals/utils/proposal_utils.html
+++ b/docs/_build/html/_modules/proposals/utils/proposal_utils.html
@@ -161,7 +161,7 @@ Source code for proposals.utils.proposal_utils
from django.core.mail import send_mail
from django.urls import reverse
from django.template.loader import render_to_string
-from django.utils.translation import activate, get_language, ugettext as _
+from django.utils.translation import activate, get_language, gettext as _
from easy_pdf.rendering import render_to_pdf
diff --git a/docs/_build/html/_modules/proposals/utils/validate_proposal.html b/docs/_build/html/_modules/proposals/utils/validate_proposal.html
index f945429c9..063aa49ae 100644
--- a/docs/_build/html/_modules/proposals/utils/validate_proposal.html
+++ b/docs/_build/html/_modules/proposals/utils/validate_proposal.html
@@ -168,7 +168,7 @@
Source code for proposals.utils.validate_proposal
from ..forms import ProposalForm, WmoForm, StudyStartForm
from ..models import Proposal
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from django.urls import reverse_lazy as reverse
diff --git a/docs/_build/html/_modules/proposals/views/proposal_views.html b/docs/_build/html/_modules/proposals/views/proposal_views.html
index 5185e8cfc..7eeefffdb 100644
--- a/docs/_build/html/_modules/proposals/views/proposal_views.html
+++ b/docs/_build/html/_modules/proposals/views/proposal_views.html
@@ -158,7 +158,7 @@ Source code for proposals.views.proposal_views
from django.conf import settings
from django.db.models import Q
from django.urls import reverse
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from django.views import generic
from easy_pdf.views import PDFTemplateResponseMixin, PDFTemplateView
diff --git a/docs/_build/html/_modules/proposals/views/study_views.html b/docs/_build/html/_modules/proposals/views/study_views.html
index 4d39e2371..b3cd93fa9 100644
--- a/docs/_build/html/_modules/proposals/views/study_views.html
+++ b/docs/_build/html/_modules/proposals/views/study_views.html
@@ -154,7 +154,7 @@
Source code for proposals.views.study_views
# -*- encoding: utf-8 -*-
from django.urls import reverse
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from core.views import AllowErrorsOnBackbuttonMixin, UpdateView, FormSetUpdateView
from studies.models import Documents, Study
diff --git a/docs/_build/html/_modules/proposals/views/wmo_views.html b/docs/_build/html/_modules/proposals/views/wmo_views.html
index fb12b9a8b..7bd3e5a78 100644
--- a/docs/_build/html/_modules/proposals/views/wmo_views.html
+++ b/docs/_build/html/_modules/proposals/views/wmo_views.html
@@ -157,7 +157,7 @@ Source code for proposals.views.wmo_views
from django.http import JsonResponse
from django.views import generic
from django.views.decorators.csrf import csrf_exempt
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from core.models import YES, DOUBT
from core.views import CreateView, UpdateView, AllowErrorsOnBackbuttonMixin
diff --git a/docs/_build/html/_modules/reviews/forms.html b/docs/_build/html/_modules/reviews/forms.html
index 774920cfe..4592a6968 100644
--- a/docs/_build/html/_modules/reviews/forms.html
+++ b/docs/_build/html/_modules/reviews/forms.html
@@ -153,7 +153,7 @@
Source code for reviews.forms
from django import forms
from django.contrib.auth.models import Group
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from django.conf import settings
from core.forms import ConditionalModelForm
from core.utils import YES_NO, get_reviewers_from_group
diff --git a/docs/_build/html/_modules/reviews/mixins.html b/docs/_build/html/_modules/reviews/mixins.html
index 3ed451a0c..e803778fb 100644
--- a/docs/_build/html/_modules/reviews/mixins.html
+++ b/docs/_build/html/_modules/reviews/mixins.html
@@ -156,7 +156,7 @@ Source code for reviews.mixins
from django.utils.functional import cached_property
from django.views.generic.base import ContextMixin
from django.views.generic.detail import SingleObjectMixin
-from django.utils.translation import ugettext as _
+from django.utils.translation import gettext as _
from .models import Decision, Review
from .utils import auto_review
diff --git a/docs/_build/html/_modules/reviews/models.html b/docs/_build/html/_modules/reviews/models.html
index 6fbbf1406..80b00da0e 100644
--- a/docs/_build/html/_modules/reviews/models.html
+++ b/docs/_build/html/_modules/reviews/models.html
@@ -156,7 +156,7 @@ Source code for reviews.models
from django.conf import settings
from django.contrib.auth import get_user_model
from django.db import models
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from django.utils import timezone
from django.utils.encoding import python_2_unicode_compatible
diff --git a/docs/_build/html/_modules/reviews/utils.html b/docs/_build/html/_modules/reviews/utils.html
index e4af93b2e..fe0c5fb0e 100644
--- a/docs/_build/html/_modules/reviews/utils.html
+++ b/docs/_build/html/_modules/reviews/utils.html
@@ -156,7 +156,7 @@ Source code for reviews.utils
from django.core.mail import send_mail
from django.urls import reverse
from django.template.loader import render_to_string
-from django.utils.translation import ugettext as _
+from django.utils.translation import gettext as _
from django.utils import timezone
from core.models import YES, DOUBT
diff --git a/docs/_build/html/_modules/studies/forms.html b/docs/_build/html/_modules/studies/forms.html
index 80d8d54c7..524a2f1cb 100644
--- a/docs/_build/html/_modules/studies/forms.html
+++ b/docs/_build/html/_modules/studies/forms.html
@@ -155,7 +155,7 @@ Source code for studies.forms
from django import forms
from django.utils.safestring import mark_safe
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from core.forms import ConditionalModelForm, SoftValidationMixin
from core.models import DOUBT, YES, YES_NO_DOUBT
diff --git a/docs/_build/html/_modules/studies/models.html b/docs/_build/html/_modules/studies/models.html
index 48a066f0e..e0caf057d 100644
--- a/docs/_build/html/_modules/studies/models.html
+++ b/docs/_build/html/_modules/studies/models.html
@@ -157,7 +157,7 @@ Source code for studies.models
from django.db import models
from django.db.models import Q
from django.utils.safestring import mark_safe
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from django.utils.encoding import python_2_unicode_compatible
from core.models import YES_NO_DOUBT
diff --git a/docs/_build/html/_modules/studies/utils.html b/docs/_build/html/_modules/studies/utils.html
index 78727a70e..a67412f68 100644
--- a/docs/_build/html/_modules/studies/utils.html
+++ b/docs/_build/html/_modules/studies/utils.html
@@ -154,7 +154,7 @@ Source code for studies.utils
from __future__ import division
from django.urls import reverse
-from django.utils.translation import ugettext as _
+from django.utils.translation import gettext as _
from core.utils import AvailableURL
from interventions.utils import intervention_url, copy_intervention_to_study
diff --git a/docs/_build/html/_modules/studies/views/session_views.html b/docs/_build/html/_modules/studies/views/session_views.html
index 36b0b8706..a4bc1b8dc 100644
--- a/docs/_build/html/_modules/studies/views/session_views.html
+++ b/docs/_build/html/_modules/studies/views/session_views.html
@@ -154,7 +154,7 @@ Source code for studies.views.session_views
# -*- encoding: utf-8 -*-
from django.urls import reverse
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from core.views import AllowErrorsOnBackbuttonMixin, UpdateView
from tasks.models import Session
diff --git a/docs/_build/html/_modules/studies/views/study_views.html b/docs/_build/html/_modules/studies/views/study_views.html
index 27c79bd94..2c88a6676 100644
--- a/docs/_build/html/_modules/studies/views/study_views.html
+++ b/docs/_build/html/_modules/studies/views/study_views.html
@@ -158,7 +158,7 @@ Source code for studies.views.study_views
from django.http import JsonResponse
from django.views import generic
from django.views.decorators.csrf import csrf_exempt
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from core.views import AllowErrorsOnBackbuttonMixin, UpdateView
from core.utils import string_to_bool
diff --git a/docs/_build/html/_modules/tasks/forms.html b/docs/_build/html/_modules/tasks/forms.html
index c0ed1cb39..4bb245f84 100644
--- a/docs/_build/html/_modules/tasks/forms.html
+++ b/docs/_build/html/_modules/tasks/forms.html
@@ -155,7 +155,7 @@ Source code for tasks.forms
from django import forms
from django.utils.safestring import mark_safe
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from core.forms import ConditionalModelForm, SoftValidationMixin
from core.utils import YES_NO
diff --git a/docs/_build/html/_modules/tasks/models.html b/docs/_build/html/_modules/tasks/models.html
index cb97b0051..3b63fb414 100644
--- a/docs/_build/html/_modules/tasks/models.html
+++ b/docs/_build/html/_modules/tasks/models.html
@@ -154,7 +154,7 @@ Source code for tasks.models
from __future__ import unicode_literals
from django.db import models
from django.core.validators import MinValueValidator
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from django.utils.encoding import python_2_unicode_compatible
from core.models import SettingModel
diff --git a/docs/_build/html/_modules/tasks/utils.html b/docs/_build/html/_modules/tasks/utils.html
index dd69453b0..ead4f21ee 100644
--- a/docs/_build/html/_modules/tasks/utils.html
+++ b/docs/_build/html/_modules/tasks/utils.html
@@ -154,7 +154,7 @@ Source code for tasks.utils
from __future__ import division
from django.urls import reverse
-from django.utils.translation import ugettext as _
+from django.utils.translation import gettext as _
from core.utils import AvailableURL
diff --git a/docs/_build/html/_modules/tasks/views/session_views.html b/docs/_build/html/_modules/tasks/views/session_views.html
index d7d2bfad6..207d93ba6 100644
--- a/docs/_build/html/_modules/tasks/views/session_views.html
+++ b/docs/_build/html/_modules/tasks/views/session_views.html
@@ -155,7 +155,7 @@ Source code for tasks.views.session_views
from django.urls import reverse
from django.http import HttpResponseRedirect
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from core.views import AllowErrorsOnBackbuttonMixin, UpdateView, DeleteView
from ..forms import TaskStartForm, TaskEndForm
diff --git a/docs/_build/html/_modules/tasks/views/task_views.html b/docs/_build/html/_modules/tasks/views/task_views.html
index a23186ab6..4566f088f 100644
--- a/docs/_build/html/_modules/tasks/views/task_views.html
+++ b/docs/_build/html/_modules/tasks/views/task_views.html
@@ -155,7 +155,7 @@ Source code for tasks.views.task_views
from django.urls import reverse
from django.http import HttpResponseRedirect
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from core.views import AllowErrorsOnBackbuttonMixin, UpdateView, DeleteView
from ..forms import TaskForm
diff --git a/faqs/models.py b/faqs/models.py
index 2e68ddb0e..0b207994c 100644
--- a/faqs/models.py
+++ b/faqs/models.py
@@ -1,5 +1,5 @@
from django.db import models
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
class Faq(models.Model):
diff --git a/faqs/templates/faqs/faq_list.html b/faqs/templates/faqs/faq_list.html
index c86f6d1f8..4fb42f0a8 100644
--- a/faqs/templates/faqs/faq_list.html
+++ b/faqs/templates/faqs/faq_list.html
@@ -1,4 +1,4 @@
-{% extends "base/base.html" %}
+{% extends "base/fetc_base.html" %}
{% load i18n %}
@@ -7,7 +7,7 @@
{% endblock %}
{% block content %}
-
+
{% trans "Frequently Asked Questions" %}
{% for faq in faqs %}
diff --git a/fetc/settings.py b/fetc/settings.py
index b76c91907..6a7104ba8 100644
--- a/fetc/settings.py
+++ b/fetc/settings.py
@@ -14,7 +14,7 @@
from django.core.exceptions import ImproperlyConfigured
from django.urls import reverse_lazy
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
@@ -32,18 +32,28 @@
# Application definition
INSTALLED_APPS = [
+ # Main app
+ "main",
+ # CDH Core libraries
+ "cdh.core",
+ "cdh.vue",
+ "cdh.rest",
+ # Django supplied apps
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
+ # External apps
"menu",
"debug_toolbar",
"django_extensions",
"rest_framework",
- "main",
- "uil.core",
- "uil.vue",
+ "django.contrib.admin",
+ "django_user_agents",
+ "modeltranslation",
+ "impersonate",
+ # Other local apps
"proposals",
"studies",
"tasks",
@@ -51,10 +61,6 @@
"observations",
"reviews",
"faqs",
- "modeltranslation",
- "impersonate",
- "django.contrib.admin",
- "django_user_agents",
]
MIDDLEWARE = [
diff --git a/fetc/urls.py b/fetc/urls.py
index 3e2ef8418..f00ebbb6a 100644
--- a/fetc/urls.py
+++ b/fetc/urls.py
@@ -36,8 +36,8 @@
path("admin/", admin.site.urls),
path("impersonate/", include("impersonate.urls")),
path("i18n/", include("django.conf.urls.i18n")),
- path("uilcore/", include("uil.core.urls")),
- path("vue/", include("uil.vue.urls")),
+ path("cdhcore/", include("cdh.core.urls")),
+ path("vue/", include("cdh.vue.urls")),
]
if "debug_toolbar" in settings.INSTALLED_APPS and settings.DEBUG:
diff --git a/interventions/models.py b/interventions/models.py
index ecb027ce7..c4e55482f 100644
--- a/interventions/models.py
+++ b/interventions/models.py
@@ -1,5 +1,5 @@
from django.db import models
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from main.models import SettingModel
from studies.models import Study
diff --git a/interventions/templates/interventions/intervention_form.html b/interventions/templates/interventions/intervention_form.html
index a28285223..1fcc3cf22 100644
--- a/interventions/templates/interventions/intervention_form.html
+++ b/interventions/templates/interventions/intervention_form.html
@@ -1,4 +1,4 @@
-{% extends "base/base.html" %}
+{% extends "base/fetc_base.html" %}
{% load static %}
{% load i18n %}
@@ -40,7 +40,7 @@
{% endblock %}
{% block content %}
-
+
{% with nav_items=study.proposal.available_urls active=3 %}
{% include 'base/navigation.html' %}
diff --git a/interventions/utils.py b/interventions/utils.py
index de7cf4921..1ddebd2e3 100644
--- a/interventions/utils.py
+++ b/interventions/utils.py
@@ -1,5 +1,5 @@
from django.urls import reverse
-from django.utils.translation import ugettext as _
+from django.utils.translation import gettext as _
from main.utils import AvailableURL
diff --git a/interventions/views.py b/interventions/views.py
index d1b3e79af..0b23ba874 100644
--- a/interventions/views.py
+++ b/interventions/views.py
@@ -1,5 +1,5 @@
from django.urls import reverse
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from main.views import CreateView, UpdateView, AllowErrorsOnBackbuttonMixin
from studies.models import Study
diff --git a/locale/en/LC_MESSAGES/django.po b/locale/en/LC_MESSAGES/django.po
index 4af320ac4..ac9361697 100644
--- a/locale/en/LC_MESSAGES/django.po
+++ b/locale/en/LC_MESSAGES/django.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-04-03 12:31+0200\n"
+"POT-Creation-Date: 2024-04-23 12:50+0200\n"
"PO-Revision-Date: 2024-04-03 12:32+0200\n"
"Last-Translator: Anna Asbury \n"
"Language-Team: \n"
@@ -17,7 +17,7 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 2.4.1\n"
-#: faqs/menus.py:7 main/templates/main/index.html:187
+#: faqs/menus.py:7 main/templates/main/index.html:137
msgid "FETC-GW website"
msgstr "FEtC-H website"
@@ -29,12 +29,12 @@ msgstr "https://fetc-gw.wp.hum.uu.nl/en/"
msgid "Reglement FETC-GW"
msgstr "Regulations FEtC-H"
-#: faqs/menus.py:13 main/templates/main/index.html:190
+#: faqs/menus.py:13
#: proposals/templates/proposals/proposal_start_pre_approved.html:11
msgid "https://fetc-gw.wp.hum.uu.nl/reglement-fetc-gw/"
msgstr "https://fetc-gw.wp.hum.uu.nl/en/regulations-fetc-h/"
-#: faqs/menus.py:17 main/templates/main/index.html:194
+#: faqs/menus.py:17 main/templates/main/index.html:145
#: proposals/templates/proposals/study_consent.html:8
#: proposals/templates/proposals/translated_consent_forms.html:7
#: proposals/utils/pdf_diff_logic.py:878
@@ -63,11 +63,11 @@ msgstr "FAQ"
msgid "Frequently Asked Questions"
msgstr "Frequently Asked Questions"
-#: fetc/settings.py:129
+#: fetc/settings.py:135
msgid "Nederlands"
msgstr "Dutch"
-#: fetc/settings.py:130
+#: fetc/settings.py:136
msgid "Engels"
msgstr "English"
@@ -183,27 +183,14 @@ msgstr "Interventional research"
msgid "Interventie opgeslagen"
msgstr "Intervention saved"
-#: main/forms/conditional_form.py:11 main/forms/conditional_form.py:20
-#: main/forms/conditional_form.py:31 main/forms/conditional_form.py:42
-#: main/forms/conditional_form.py:58 main/forms/mixins.py:81
-#: proposals/forms.py:614 proposals/forms.py:699 proposals/forms.py:720
+#: main/forms/conditional_form.py:12 main/forms/conditional_form.py:21
+#: main/forms/conditional_form.py:32 main/forms/conditional_form.py:43
+#: main/forms/conditional_form.py:59 main/forms/mixins.py:84
+#: proposals/forms.py:629 proposals/forms.py:714 proposals/forms.py:735
#: studies/forms.py:137 tasks/forms.py:104
msgid "Dit veld is verplicht."
msgstr "This field is required."
-#: main/menus.py:6 main/templates/main/index.html:7
-#: main/templates/main/index.html:53 main/templates/main/landing.html:33
-msgid "Startpagina"
-msgstr "Start page"
-
-#: main/menus.py:11
-msgid "Log in"
-msgstr "Log in"
-
-#: main/menus.py:17 main/templates/base/login_header.html:7
-msgid "Log uit"
-msgstr "Log out"
-
#: main/models.py:8 main/utils.py:16 proposals/utils/pdf_diff_logic.py:244
msgid "ja"
msgstr "yes"
@@ -290,9 +277,9 @@ msgstr "Proposed title"
msgid "Fase"
msgstr "Phase"
-#: main/templates/auth/user_detail.html:40 proposals/api/views.py:22
-#: proposals/api/views.py:89 proposals/api/views.py:112
-#: proposals/api/views.py:146
+#: main/templates/auth/user_detail.html:40 proposals/api/views.py:20
+#: proposals/api/views.py:87 proposals/api/views.py:110
+#: proposals/api/views.py:144
#: proposals/templates/proposals/vue_templates/proposal_archive_list.html:102
#: proposals/templates/proposals/vue_templates/proposal_list.html:161
#: reviews/api/views.py:51 reviews/api/views.py:285 reviews/api/views.py:346
@@ -381,53 +368,26 @@ msgstr "Send confirmation letter"
msgid "Bevestigingsbrief verstuurd"
msgstr "Confirmation sent"
-#: main/templates/base/form_buttons.html:9
-msgid "<< Opslaan en vorige stap"
-msgstr "<< Save and go back to previous step"
+#: main/templates/base/fetc_base.html:8
+msgid "FETC-GW"
+msgstr "FEtC-H"
-#: main/templates/base/form_buttons.html:13
-#: main/templates/base/form_buttons.html:16
-#: main/templates/base/form_buttons.html:20
-#: main/templates/base/form_buttons.html:24
-msgid "Terug naar begin aanvraag"
-msgstr "Return to start of application"
+#: main/templates/base/fetc_base.html:26
+msgid "FETC-GW Portal"
+msgstr "FEtC-H Portal"
-#: main/templates/base/form_buttons.html:29
-msgid "Terug naar begin traject"
-msgstr "Back to the beginning of the trajectory"
+#: main/templates/base/fetc_base.html:34
+msgid "Log uit"
+msgstr "Log out"
-#: main/templates/base/form_buttons.html:33
-msgid "Terug naar begin sessie"
-msgstr "Back to the beginning of the session"
+#: main/templates/base/form_buttons.html:8
+msgid "<< Opslaan en vorige stap"
+msgstr "<< Save and go back to previous step"
-#: main/templates/base/form_buttons.html:37
+#: main/templates/base/form_buttons.html:11
msgid "Opslaan en volgende stap >>"
msgstr "Save and go to next step >>"
-#: main/templates/base/login_header.html:6
-msgid "Welkom {}"
-msgstr "Welcome {}"
-
-#: main/templates/base/sidebar.html:29
-msgid "Toon voortgang"
-msgstr "Show progress"
-
-#: main/templates/base/sidebar.html:32
-msgid "Sluiten"
-msgstr "Close"
-
-#: main/templates/base/sidebar.html:33
-msgid "Voortgang"
-msgstr "Progress"
-
-#: main/templates/base/site_header.html:3
-msgid "Portal FETC - Geesteswetenschappen"
-msgstr "Portal FEtC – Humanities"
-
-#: main/templates/base/site_title.html:3
-msgid "FETC-GW"
-msgstr "FEtC-H"
-
#: main/templates/error/400.html:10 main/templates/error/500.html:8
msgid "Server error"
msgstr "Server error"
@@ -557,40 +517,12 @@ msgstr ""
"Try to explain what you were doing and note the page that you were on, if "
"you can."
-#: main/templates/main/index.html:18
-msgid ""
-"Deze portal is bedoeld voor medewerkers (en studenten) van de Faculteit "
-"Geesteswetenschappen."
-msgstr ""
-"This portal is intended for employees (and students) of the Faculty of "
-"Humanities."
-
-#: main/templates/main/index.html:23
-msgid "Volgens onze gegevens werk/studeer je bij de"
-msgstr "According to our information, you work/study at the"
-
-#: main/templates/main/index.html:28
-msgid ""
-"Volgens onze gegevens werk/studeer je bij een andere faculteit of dienst."
-msgstr "According to our data, you work/study at another faculty or service."
-
-#: main/templates/main/index.html:32
-msgid ""
-"Controleer of je inderdaad een aanvraag wilt indienen bij de Facultaire "
-"Ethische Toetsingscommissie van Geesteswetenschappen."
-msgstr ""
-"Please check whether you indeed want to submit an application to the Faculty "
-"Ethics Assessment Committee – Humanities."
-
-#: main/templates/main/index.html:37
-msgid ""
-"Als je vermoedt dat dit incorrect is, neem dan contact op met portalsupport.gw@uu.nl."
-msgstr ""
-"If you suspect this is incorrect, please contact support at portalsupport.gw@uu.nl. "
+#: main/templates/main/index.html:7 main/templates/main/index.html:13
+#: main/templates/main/landing.html:29
+msgid "Startpagina"
+msgstr "Start page"
-#: main/templates/main/index.html:59
+#: main/templates/main/index.html:22
msgid ""
"Formele goedkeuring door één van beide kamers van de FETC-GW (middels een "
"formele goedkeuringsbrief) is vereist voor mensgebonden onderzoek binnen de "
@@ -605,7 +537,7 @@ msgstr ""
"even to recruiting participants. Therefore, always wait for the letter of "
"approval before starting research activities."
-#: main/templates/main/index.html:64
+#: main/templates/main/index.html:31
msgid ""
"NB: Goedgekeurde aanvragen komen in het archief van deze portal te staan, "
"zie het menu hierboven. Dit archief is toegankelijk voor iedereen met een "
@@ -615,24 +547,21 @@ msgstr ""
"studying or working at the Faculty of Humanities with a Solis-ID can access "
"this archive through the menu bar above."
-#: main/templates/main/index.html:69
-msgid ""
-"Heb je een vraag over de werking van de portal, ontdek je een foutje, "
-"missende functionaliteit, of verkeerde vertaling? Neem dan contact op met "
-"portalsupport.gw@uu.nl."
-msgstr ""
-"If you find some text to be confusing, come across a poor translation, or "
-"have any other feedback on the Portal, please don't hesitate to send an "
-"email to portalsupport.gw@uu.nl"
-"a>."
+#: main/templates/main/index.html:45
+msgid "Bekijk al mijn aanvragen"
+msgstr "All my applications"
-#: main/templates/main/index.html:75
+#: main/templates/main/index.html:52
+msgid "Voordat je begint"
+msgstr "Before you begin"
+
+#: main/templates/main/index.html:55
#: proposals/templates/proposals/proposal_start.html:16
#: proposals/templates/proposals/proposal_start_practice.html:16
msgid "Check voor het indienen:"
msgstr "Before submitting an application, please consult:"
-#: main/templates/main/index.html:78
+#: main/templates/main/index.html:58
#: proposals/templates/proposals/proposal_start.html:19
#: proposals/templates/proposals/proposal_start_practice.html:19
msgid ""
@@ -642,15 +571,15 @@ msgstr ""
"The UU-"
"webpage of the FEtC-H for news and upcoming dates."
-#: main/templates/main/index.html:84
+#: main/templates/main/index.html:64
msgid ""
-"Het reglement van de FETC-GW."
+"Het reglement van de Algemene Kamer (AK) of dat van de Linguïstiek Kamer (LK)."
msgstr ""
-"The regulations of the FEtC-H ."
-#: main/templates/main/index.html:90
+#: main/templates/main/index.html:77
msgid ""
"Gebruik de juiste (meest recente) model documents for informed consent. (Latest "
"version: December 2021)"
-#: main/templates/main/index.html:96
-msgid ""
-" Voor advies over data management (plannen): datamanagement.gw@uu.nl. Voor "
-"advies over privacy zaken: privacy.gw@uu."
-"nl. Voor vragen over de procedure: Desiree Capel. Voor vragen over de portal zelf: portalsupport.gw@uu.nl. "
-msgstr ""
-"For advice on data management: datamanagement.gw@uu.nl. For issues concerning privacy: privacy.gw@uu.nl. For "
-"questions on FEtC-H procedure: Desiree "
-"Capel. For questions about the functioning of the portal "
-"itself: portalsupport.gw@uu.nl."
-" "
+#: main/templates/main/index.html:90
+msgid "Bekijk mijn aanvragen"
+msgstr "View my applications"
-#: main/templates/main/index.html:112
-msgid "In deze portal kan je het volgende doen:"
-msgstr "In this portal you can do the following:"
+#: main/templates/main/index.html:91 proposals/menus.py:9
+msgid "Nieuwe aanvraag starten"
+msgstr "Start a new application"
-#: main/templates/main/index.html:120
-msgid "Dien een nieuwe aanvraag in"
-msgstr "Submit a new proposal"
+#: main/templates/main/index.html:93
+msgid "Nieuwe revisie starten"
+msgstr "Create new revision"
-#: main/templates/main/index.html:124
-msgid "die volledig nieuw is in deze portal;"
-msgstr "that is completely new in this portal;"
+#: main/templates/main/index.html:95
+msgid "Nieuw amendement starten"
+msgstr "Create new amendment"
-#: main/templates/main/index.html:127
-msgid "op basis van een kopie van een oude aanvraag;"
-msgstr "from a copy of an old proposal;"
+#: main/templates/main/index.html:97 proposals/menus.py:112
+#: proposals/views/proposal_views.py:185
+msgid "Archief"
+msgstr "Archive"
-#: main/templates/main/index.html:130
-msgid "voor (al dan niet goedgekeurde) subsidieaanvragen;"
-msgstr "to supplement a grant application"
+#: main/templates/main/index.html:102
+msgid "Ondersteuning"
+msgstr "Support"
-#: main/templates/main/index.html:133
-msgid "die al goedgekeurd is door een andere ethische toetsingscomissie."
-msgstr "that has been approved by another ethics committee."
+#: main/templates/main/index.html:104
+msgid ""
+"FETC-GW secretaris
Desiree Capel (fetc.gw@uu.nl)"
+msgstr ""
+"FEtC-H secretary
Desiree Capel (fetc.gw@uu.nl)"
-#: main/templates/main/index.html:138
-msgid "Een aanvraag reviseren"
-msgstr "Revise a proposal"
+#: main/templates/main/index.html:111
+msgid "Data Management advies
datamanagement.gw@uu.nl"
+msgstr "Data Management advice
datamanagement.gw@uu.nl"
-#: main/templates/main/index.html:142
-msgid "als een revisie, gebaseerd op opmerkingen van de FETC-GW;"
-msgstr "as a revision, based on comments of the FEtC-H;"
+#: main/templates/main/index.html:118
+msgid "Privacy kwesties/vragen
privacy.gw@uu.nl"
+msgstr "Privacy issues/questions
privacy.gw@uu.nl"
-#: main/templates/main/index.html:145
-msgid "als amendement, wanneer de aanvraag al goedgekeurd is door de FETC-GW."
-msgstr ""
-"as an amendment, after your proposal has already been approved by the FEtC-H."
+#: main/templates/main/index.html:125
+msgid "Technical support
portalsupport.gw@uu.nl"
+msgstr "Technical support
portalsupport.gw@uu.nl"
-#: main/templates/main/index.html:152
-msgid "Bekijk"
-msgstr "View"
+#: main/templates/main/index.html:133
+msgid "Resources"
+msgstr "Resources"
-#: main/templates/main/index.html:155
-msgid "mijn conceptaanvragen;"
-msgstr "my draft applications;"
+#: main/templates/main/index.html:141
+msgid "Reglement van de FETC-GW"
+msgstr "Regulations of the FEtC-H"
-#: main/templates/main/index.html:158
-msgid "mijn oefenaanvragen;"
-msgstr "my practice applications;"
+#: main/templates/main/index.html:148
+msgid "Veelgestelde vragen m.b.t. dit portal"
+msgstr "Frequently asked questions relating to this portal"
-#: main/templates/main/index.html:161
-msgid "mijn ingediende aanvragen;"
-msgstr "my submitted applications;"
+#: main/templates/main/index.html:153
+msgid "Feedback"
+msgstr "Feedback"
-#: main/templates/main/index.html:164
-msgid "mijn afgehandelde aanvragen;"
-msgstr "my processed applications;"
+#: main/templates/main/index.html:155
+msgid ""
+"Heb je een vraag over de werking van de portal, ontdek je een foutje, "
+"missende functionaliteit, of verkeerde vertaling? Neem dan contact op met portaldev.gw@uu.nl."
+msgstr ""
+"If you find some text to be confusing, come across a poor translation, or "
+"have any other feedback on the Portal, please don't hesitate to send an "
+"email to portalsupport.gw@uu.nl"
+"a>."
-#: main/templates/main/index.html:167
-msgid "mijn aanvragen als eindverantwoordelijke;"
-msgstr "my supervised applications;"
+#: main/templates/main/index_parts/faculty_warning.html:7
+msgid ""
+"Deze portal is bedoeld voor medewerkers (en studenten) van de Faculteit "
+"Geesteswetenschappen."
+msgstr ""
+"This portal is intended for employees (and students) of the Faculty of "
+"Humanities."
-#: main/templates/main/index.html:170
-msgid "al mijn aanvragen."
-msgstr "all my applications"
+#: main/templates/main/index_parts/faculty_warning.html:12
+msgid "Volgens onze gegevens werk/studeer je bij de"
+msgstr "According to our information, you work/study at the"
-#: main/templates/main/index.html:173
-msgid "FETC-GW archief"
-msgstr "FEtC-H archive"
+#: main/templates/main/index_parts/faculty_warning.html:17
+msgid ""
+"Volgens onze gegevens werk/studeer je bij een andere faculteit of dienst."
+msgstr "According to our data, you work/study at another faculty or service."
-#: main/templates/main/index.html:176
-msgid "Alle goedgekeurde aanvragen bekijken van de Algemene Kamer"
-msgstr "View all processed and approved applications of the General Chamber"
+#: main/templates/main/index_parts/faculty_warning.html:21
+msgid ""
+"Controleer of je inderdaad een aanvraag wilt indienen bij de Facultaire "
+"Ethische Toetsingscommissie van Geesteswetenschappen."
+msgstr ""
+"Please check whether you indeed want to submit an application to the Faculty "
+"Ethics Assessment Committee – Humanities."
-#: main/templates/main/index.html:179
-msgid "Alle goedgekeurde aanvragen bekijken van de Linguïstiek Kamer"
+#: main/templates/main/index_parts/faculty_warning.html:26
+msgid ""
+"Als je vermoedt dat dit incorrect is, neem dan contact op met portalsupport.gw@uu.nl."
msgstr ""
-"View all processed and approved applications of the Linguistics Chamber"
+"If you suspect this is incorrect, please contact support at portalsupport.gw@uu.nl. "
-#: main/templates/main/index.html:190
-msgid "Reglement van de FETC-GW"
-msgstr "Regulations of the FEtC-H"
+#: main/templates/main/index_parts/proposal_box.html:8
+#: proposals/api/views.py:22 proposals/api/views.py:75
+#: proposals/api/views.py:88 proposals/api/views.py:115
+#: proposals/api/views.py:131
+#: proposals/templates/proposals/vue_templates/proposal_archive_list.html:71
+#: proposals/templates/proposals/vue_templates/proposal_list.html:116
+msgid "Laatst bijgewerkt"
+msgstr "Last edited"
-#: main/templates/main/index.html:197
-msgid "Veelgestelde vragen m.b.t. dit portal"
-msgstr "Frequently asked questions relating to this portal"
+#: main/templates/main/index_parts/proposal_box.html:10
+#: main/templates/main/index_parts/proposal_box.html:12
+msgid "Ingediend op"
+msgstr "Submitted on"
+
+#: main/templates/main/index_parts/proposal_box.html:21
+msgid "Verder"
+msgstr "Continue"
-#: main/templates/main/index.html:204
-msgid "Bannerfoto door Kim O'leary"
-msgstr "Cover image by Kim O'leary"
+#: main/templates/main/index_parts/proposal_box.html:24
+msgid "Beoordeel"
+msgstr "Review"
#: main/templates/main/landing.html:50
msgid ""
@@ -802,9 +749,8 @@ msgstr "Javascript needs to be enabled to see the email address"
msgid "Technische ondersteuning"
msgstr "Technical support"
-#: main/templates/main/landing.html:77
-#: main/templates/registration/login.html:14
-#: main/templates/registration/login.html:37
+#: main/templates/main/landing.html:77 main/templates/registration/login.html:8
+#: main/templates/registration/login.html:33
msgid "Inloggen"
msgstr "Log in"
@@ -816,7 +762,7 @@ msgstr ""
"You need a Solis-ID to log in. If you do not have a Solis ID, please contact "
"the secretary of the FEtC-H."
-#: main/templates/main/landing.html:87 main/templates/main/landing.html:96
+#: main/templates/main/landing.html:86 main/templates/main/landing.html:94
msgid "Log in met je Solis-ID"
msgstr "Log in with your Solis-ID"
@@ -835,20 +781,20 @@ msgid ""
msgstr ""
"Click here to return to the start page."
-#: main/templates/registration/login.html:20
+#: main/templates/registration/login.html:16
msgid ""
"Gebruikersnaam of wachtwoord incorrect. Probeer het alstublieft opnieuw."
msgstr "Username or password incorrect. Please try again."
-#: main/templates/registration/login.html:22
+#: main/templates/registration/login.html:18
msgid "Je kan hier inloggen met je Solis-ID en wachtwoord."
msgstr "You can log in here with your Solis-ID and password."
-#: main/templates/registration/login.html:29
+#: main/templates/registration/login.html:25
msgid "Gebruikersnaam"
msgstr "Username"
-#: main/templates/registration/login.html:35
+#: main/templates/registration/login.html:31
msgid "Wachtwoord"
msgstr "Password"
@@ -1051,17 +997,17 @@ msgstr ""
"On this page you can edit the forms related to the proposal "
"%(title)s(reference number %(ref_number)s), trajectory %(order)s."
-#: observations/templates/observations/observation_update_attachments.html:43
+#: observations/templates/observations/observation_update_attachments.html:42
#: proposals/templates/proposals/proposal_confirmation.html:36
#: proposals/templates/proposals/proposal_diff.html:55
-#: proposals/templates/proposals/proposal_update_attachments.html:30
-#: proposals/templates/proposals/proposal_update_date_start.html:33
-#: reviews/templates/reviews/change_chamber_form.html:23
+#: proposals/templates/proposals/proposal_update_attachments.html:29
+#: proposals/templates/proposals/proposal_update_date_start.html:32
+#: reviews/templates/reviews/change_chamber_form.html:20
#: reviews/templates/reviews/decision_form.html:99
#: reviews/templates/reviews/review_assign_form.html:46
#: reviews/templates/reviews/review_close_form.html:40
#: reviews/templates/reviews/review_discontinue_form.html:70
-#: studies/templates/studies/study_update_attachments.html:30
+#: studies/templates/studies/study_update_attachments.html:29
msgid "Terug naar de vorige pagina"
msgstr "Back to the previous page"
@@ -1074,24 +1020,16 @@ msgstr "Observational research"
msgid "Observatie opgeslagen"
msgstr "Observation saved"
-#: proposals/api/views.py:23 proposals/api/views.py:116
-#: proposals/api/views.py:147
+#: proposals/api/views.py:21 proposals/api/views.py:114
+#: proposals/api/views.py:145
msgid "Datum afgerond"
msgstr "Date reviewed"
-#: proposals/api/views.py:24 proposals/api/views.py:77
-#: proposals/api/views.py:90 proposals/api/views.py:117
-#: proposals/api/views.py:133
-#: proposals/templates/proposals/vue_templates/proposal_archive_list.html:71
-#: proposals/templates/proposals/vue_templates/proposal_list.html:116
-msgid "Laatst bijgewerkt"
-msgstr "Last edited"
-
-#: proposals/api/views.py:114
+#: proposals/api/views.py:112
msgid "Datum ingediend bij eindverantwoordelijke"
msgstr "Date sent to supervisor"
-#: proposals/forms.py:58
+#: proposals/forms.py:67
msgid ""
"Zijn er nog andere onderzoekers bij deze aanvraag betrokken die "
"niet geaffilieerd zijn aan een van de onderzoeksinstituten "
@@ -1100,19 +1038,19 @@ msgstr ""
"Are there any other researchers involved outside the above-"
"mentioned institutes? "
-#: proposals/forms.py:79 proposals/validators.py:22
+#: proposals/forms.py:89 proposals/validators.py:22
msgid "Er bestaat al een aanvraag met deze titel."
msgstr "There is an existing application with this title."
-#: proposals/forms.py:144
+#: proposals/forms.py:158
msgid "Selecteer..."
msgstr "Select..."
-#: proposals/forms.py:153
+#: proposals/forms.py:167
msgid "Docent"
msgstr "Professor"
-#: proposals/forms.py:155
+#: proposals/forms.py:169
msgid ""
"Vul hier de docent van de cursus in waarbinnen je deze portal moet "
"doorlopen. De docent kan na afloop de aanvraag inkijken in de portal. De "
@@ -1123,23 +1061,23 @@ msgstr ""
"This application will not be published in the semipublic archive of the FEtC-"
"H."
-#: proposals/forms.py:207
+#: proposals/forms.py:221
msgid "Je dient een promotor/begeleider op te geven."
msgstr "You are required to specify a promotor/supervisor."
-#: proposals/forms.py:213
+#: proposals/forms.py:227
msgid "Je kunt niet jezelf als promotor/begeleider opgeven."
msgstr "You cannot submit yourself as the promotor/supervisor."
-#: proposals/forms.py:227
+#: proposals/forms.py:241
msgid "Je hebt jezelf niet als onderzoekers geselecteerd."
msgstr "You have not selected yourself."
-#: proposals/forms.py:232
+#: proposals/forms.py:246
msgid "Je hebt geen andere onderzoekers geselecteerd."
msgstr "You have not selected any other researchers."
-#: proposals/forms.py:243
+#: proposals/forms.py:257
msgid ""
"Dit veld is verplicht, maar je kunt later terugkomen om "
"hem verder in te vullen."
@@ -1147,7 +1085,7 @@ msgstr ""
"This field is required, but you may choose to come back to this page later "
"to fill it in."
-#: proposals/forms.py:254
+#: proposals/forms.py:268
msgid ""
"Indien je geen toestemming hebt van een andere ethische commissie, dien je "
"het normale formulier in te vullen. Ga terug naar de startpagina, en "
@@ -1160,23 +1098,23 @@ msgstr ""
"page, and select \"Submit a new application that is completely new in this "
"portal\" or \"from a copy of an old application.\""
-#: proposals/forms.py:286
+#: proposals/forms.py:300
msgid "Ik maak een oefenaanvraag aan"
msgstr "I am creating a practice application"
-#: proposals/forms.py:302 proposals/models.py:586
+#: proposals/forms.py:317 proposals/models.py:586
msgid "Te kopiëren aanvraag"
msgstr "Application to be copied"
-#: proposals/forms.py:304 proposals/models.py:588
+#: proposals/forms.py:319 proposals/models.py:588
msgid "Dit veld toont enkel aanvragen waar je zelf een medeuitvoerende bent."
msgstr "This field shows only applications in which you are involved."
-#: proposals/forms.py:346
+#: proposals/forms.py:361
msgid "Te reviseren aanvraag"
msgstr "Application to be revised"
-#: proposals/forms.py:348
+#: proposals/forms.py:363
msgid ""
"Dit veld toont enkel ingediende, (nog) niet goedgekeurde aanvragen waar jij "
"een medeuitvoerende bent."
@@ -1184,70 +1122,70 @@ msgstr ""
"This field only shows submitted applications that have not been approved "
"(yet) in which you are involved."
-#: proposals/forms.py:379
+#: proposals/forms.py:394
msgid "Te amenderen aanvraag"
msgstr "Application to be amended"
-#: proposals/forms.py:381
+#: proposals/forms.py:396
msgid ""
"Dit veld toont enkel goedgekeurde aanvragen waar je zelf een medeuitvoerende "
"bent."
msgstr "This field shows only approved applications in which you are involved."
-#: proposals/forms.py:439 proposals/forms.py:598 proposals/forms.py:630
-#: proposals/forms.py:752
+#: proposals/forms.py:454 proposals/forms.py:613 proposals/forms.py:645
+#: proposals/forms.py:767
msgid "Dit veld is verplicht om verder te gaan."
msgstr "This field is required to continue."
-#: proposals/forms.py:449
+#: proposals/forms.py:464
msgid "Je dient een instelling op te geven."
msgstr "You are required to specify an institution."
-#: proposals/forms.py:515
+#: proposals/forms.py:530
msgid "In dit geval is een beslissing van een METC vereist"
msgstr "In this case, a decision by a METC is required"
-#: proposals/forms.py:524
+#: proposals/forms.py:539
msgid "Naam traject 1"
msgstr "Title of trajectory 1"
-#: proposals/forms.py:527
+#: proposals/forms.py:542
msgid "Naam traject 2"
msgstr "Title of trajectory 2"
-#: proposals/forms.py:530
+#: proposals/forms.py:545
msgid "Naam traject 3"
msgstr "Title of trajectory 3"
-#: proposals/forms.py:533
+#: proposals/forms.py:548
msgid "Naam traject 4"
msgstr "Title of trajectory 4"
-#: proposals/forms.py:536
+#: proposals/forms.py:551
msgid "Naam traject 5"
msgstr "Title of trajectory 5"
-#: proposals/forms.py:539
+#: proposals/forms.py:554
msgid "Naam traject 6"
msgstr "Title of trajectory 6"
-#: proposals/forms.py:542
+#: proposals/forms.py:557
msgid "Naam traject 7"
msgstr "Title of trajectory 7"
-#: proposals/forms.py:545
+#: proposals/forms.py:560
msgid "Naam traject 8"
msgstr "Title of trajectory 8"
-#: proposals/forms.py:548
+#: proposals/forms.py:563
msgid "Naam traject 9"
msgstr "Title of trajectory 9"
-#: proposals/forms.py:551
+#: proposals/forms.py:566
msgid "Naam traject 10"
msgstr "Title of trajectory 10"
-#: proposals/forms.py:606
+#: proposals/forms.py:621
msgid ""
"Als niet dezelfde trajecten worden doorlopen, moeten er minstens twee "
"verschillende trajecten zijn."
@@ -1255,19 +1193,19 @@ msgstr ""
"If different trajectories are used, at least two different trajectories "
"should be filled in."
-#: proposals/forms.py:641
+#: proposals/forms.py:656
msgid "Nieuwe beoogde startdatum"
msgstr "New intended start date"
-#: proposals/forms.py:708
+#: proposals/forms.py:723
msgid "Toestemmingsverklaring voor traject {} nog niet toegevoegd."
msgstr "Declaration of consent for trajectory {} not yet added."
-#: proposals/forms.py:715
+#: proposals/forms.py:730
msgid "Informatiebrief voor traject {} nog niet toegevoegd."
msgstr "Information letter for trajectory {} not yet added."
-#: proposals/forms.py:729
+#: proposals/forms.py:744
msgid ""
"De embargo-periode kan maximaal 2 jaar zijn. Kies een datum binnen 2 jaar "
"van vandaag."
@@ -1275,14 +1213,10 @@ msgstr ""
"The embargo-period can last a maximum of 2 years. Pick a date within 2 years "
"from today."
-#: proposals/forms.py:761
+#: proposals/forms.py:776
msgid "Vul in in welke talen de formulieren worden vertaald."
msgstr "Please fill in the languages"
-#: proposals/menus.py:9
-msgid "Nieuwe aanvraag starten"
-msgstr "Start a new application"
-
#: proposals/menus.py:13
msgid "Nieuwe aanvraag starten op basis van een kopie van een oude aanvraag"
msgstr "Start a new application based on a copy of an old application"
@@ -1355,10 +1289,6 @@ msgstr "View all approved applications of the Linguistics Chamber"
msgid "Site-export"
msgstr "Site-export"
-#: proposals/menus.py:112 proposals/views/proposal_views.py:185
-msgid "Archief"
-msgstr "Archive"
-
#: proposals/mixins.py:21
#, python-format
msgid "Aanvraag %(title)s bewerkt"
@@ -1838,7 +1768,7 @@ msgstr "Has the METC already come to a decision?"
msgid "Upload hier de beslissing van het METC (in .pdf of .doc(x)-formaat)"
msgstr "Please upload the decision of METC (in .pdf or .doc(x)-format) here"
-#: proposals/models.py:883
+#: proposals/models.py:886
#, python-brace-format
msgid "WMO {title}, status {status}"
msgstr "WMO {title}, status {status}"
@@ -1900,14 +1830,14 @@ msgstr "Delete application"
msgid "Weet je zeker dat je de aanvraag %(title)s wilt verwijderen?"
msgstr "Are you sure you want to delete the application %(title)s?"
-#: proposals/templates/proposals/proposal_confirm_delete.html:20
+#: proposals/templates/proposals/proposal_confirm_delete.html:22
#: proposals/templates/proposals/vue_templates/proposal_list.html:66
#: tasks/templates/tasks/session_confirm_delete.html:20
#: tasks/templates/tasks/task_confirm_delete.html:20
msgid "Verwijderen"
msgstr "Delete"
-#: proposals/templates/proposals/proposal_confirm_delete.html:21
+#: proposals/templates/proposals/proposal_confirm_delete.html:23
#: proposals/templates/proposals/proposal_copy.html:93
#: tasks/templates/tasks/session_confirm_delete.html:21
#: tasks/templates/tasks/task_confirm_delete.html:21
@@ -2102,22 +2032,25 @@ msgstr ""
"funding, provided by Utrecht University."
#: proposals/templates/proposals/proposal_data_management.html:46
-msgid "Nuttige informatie:"
-msgstr "Useful information:"
+msgid "Nuttige workshops:"
+msgstr "Recommended workshops"
#: proposals/templates/proposals/proposal_data_management.html:48
msgid ""
-"Voor vragen over privacy, zoals: \"Wat zijn persoonlijke gegevens?\" of "
-"\"Wanneer mag ik mijn onderzoek anoniem noemen?\", raden we je aan het Data "
-"Privacy Handboek te raadplegen."
-msgstr "For all your questions regarding privacy, e.g.: \"What are personal "
-"data?\" or \"When may I call my research anonymous?\", consult the Data "
-"Privacy Handbook."
+"Als je dit nog niet gedaan hebt, wordt er sterk aangeraden om de volgende "
+"workshop te volgen:"
+msgstr "If you have not already done so, it is highly recommended you attend: "
#: proposals/templates/proposals/proposal_data_management.html:53
msgid ""
+" de workshop Quick start to Research Data Management "
+msgstr ""
+"the workshop Quick start to Research Data Management "
+
+#: proposals/templates/proposals/proposal_data_management.html:61
+msgid ""
"Voor advies op het gebied van data management planning kun je contact "
"opnemen met de datamanager GW, Frans de Liagre Böhl via datamanagement.gw@uu.nl."
@@ -2127,11 +2060,11 @@ msgstr ""
"target=\"_blank\">datamanagement.gw@uu.nl, who is the data manager of "
"the Faculty of Humanities."
-#: proposals/templates/proposals/proposal_data_management.html:57
+#: proposals/templates/proposals/proposal_data_management.html:65
msgid "Privacy: AVG en GDPR"
msgstr "Privacy: AVG and GDPR"
-#: proposals/templates/proposals/proposal_data_management.html:59
+#: proposals/templates/proposals/proposal_data_management.html:67
msgid ""
"Wanneer je persoonsgebonden data verzamelt, zorg je er voor dat je je houdt "
"aan de Algemene Verordening Gegevensbescherming, of AVG. Deze wet is de "
@@ -2144,7 +2077,7 @@ msgstr ""
"regulation is in line with European GDPR privacy legislation."
-#: proposals/templates/proposals/proposal_data_management.html:65
+#: proposals/templates/proposals/proposal_data_management.html:73
msgid ""
"De autoriteit persoonsgegevens heeft de workshop Handling personal data in research "
+"Voor vragen over privacy, zoals: \"Wat zijn persoonlijke gegevens?\" of "
+"\"Wanneer mag ik mijn onderzoek anoniem noemen?\", raden we je aan het Data "
+"Privacy Handboek te raadplegen."
msgstr ""
-"the workshop Handling personal data in research "
+"For all your questions regarding privacy, e.g.: \"What are personal data?\" "
+"or \"When may I call my research anonymous?\", consult the Data Privacy Handbook."
-#: proposals/templates/proposals/proposal_data_management.html:86
+#: proposals/templates/proposals/proposal_data_management.html:87
msgid ""
"Voor advies op het gebied van privacy en de AVG kun je contact opnemen met "
"de privacy officer van GW via privacy."
@@ -2202,7 +2132,7 @@ msgstr ""
"to the original application."
#: proposals/templates/proposals/proposal_form.html:7
-#: proposals/templates/proposals/proposal_form.html:78
+#: proposals/templates/proposals/proposal_form.html:94
#: proposals/templates/proposals/proposal_form_pre_approved.html:7
#: proposals/templates/proposals/proposal_form_pre_approved.html:83
#: proposals/utils/pdf_diff_logic.py:428 proposals/utils/proposal_utils.py:47
@@ -2213,20 +2143,19 @@ msgstr ""
msgid "Algemene informatie over de aanvraag"
msgstr "General information about the application"
-#: proposals/templates/proposals/proposal_form.html:58
+#: proposals/templates/proposals/proposal_form.html:29
#: proposals/templates/proposals/proposal_form_pre_approved.html:74
#: proposals/templates/proposals/proposal_submit.html:35
msgid "Aantal woorden:"
msgstr "Number of words:"
-#: proposals/templates/proposals/proposal_form.html:75
-#: proposals/templates/proposals/proposal_submit.html:163
+#: proposals/templates/proposals/proposal_form.html:41
msgid ""
-"Je bewerkt op het moment een oefenaanvraag. Deze kan niet ter beoordeling "
-"door de FETC-GW worden ingediend."
+"Als de beoogde startdatum binnen twee weken van het indienen van de aanvraag "
+"ligt, kan de FETC geen officiële goedkeuring meer geven."
msgstr ""
-"You are currently editing a practice application. These can not be submitted "
-"to the FETC-H for review."
+"If the intended start date lies within two weeks of submission, the FETC-H "
+"will not be able to provide official approval for this proposal."
#: proposals/templates/proposals/proposal_form.html:80
msgid ""
@@ -2238,13 +2167,14 @@ msgstr ""
"supervision. Please note that this form should be filled in as if you were "
"that student/PhD candidate. "
-#: proposals/templates/proposals/proposal_form.html:110
+#: proposals/templates/proposals/proposal_form.html:88
+#: proposals/templates/proposals/proposal_submit.html:163
msgid ""
-"Als de beoogde startdatum binnen twee weken van het indienen van de aanvraag "
-"ligt, kan de FETC geen officiële goedkeuring meer geven."
+"Je bewerkt op het moment een oefenaanvraag. Deze kan niet ter beoordeling "
+"door de FETC-GW worden ingediend."
msgstr ""
-"If the intended start date lies within two weeks of submission, the FETC-H "
-"will not be able to provide official approval for this proposal."
+"You are currently editing a practice application. These can not be submitted "
+"to the FETC-H for review."
#: proposals/templates/proposals/proposal_form_pre_approved.html:85
msgid ""
@@ -3039,12 +2969,12 @@ msgid "Revisie/amendement van"
msgstr "Revision/amendment of"
#: proposals/templates/proposals/wmo_application.html:7
-#: proposals/templates/proposals/wmo_application.html:26
+#: proposals/templates/proposals/wmo_application.html:24
#: proposals/utils/pdf_diff_logic.py:522
msgid "Aanmelding bij de METC"
msgstr "Registration with the METC"
-#: proposals/templates/proposals/wmo_application.html:34
+#: proposals/templates/proposals/wmo_application.html:27
msgid ""
"Zolang je aanvraag nog niet is beoordeeld door de METC, kan je niet verder "
"in het aanmeldingsproces."
@@ -3053,16 +2983,16 @@ msgstr ""
"the application process."
#: proposals/templates/proposals/wmo_check.html:7
-#: proposals/templates/proposals/wmo_check.html:27
+#: proposals/templates/proposals/wmo_check.html:23
msgid "WMO-check"
msgstr "WMO check"
-#: proposals/templates/proposals/wmo_check.html:37
+#: proposals/templates/proposals/wmo_check.html:30
msgid "Opnieuw beginnen"
msgstr "Start again"
#: proposals/templates/proposals/wmo_form.html:7
-#: proposals/templates/proposals/wmo_form.html:30
+#: proposals/templates/proposals/wmo_form.html:28
#: proposals/utils/pdf_diff_logic.py:497
msgid ""
"Ethische toetsing nodig door een Medische Ethische Toetsingscommissie (METC)?"
@@ -3333,11 +3263,11 @@ msgstr "long route (4-weeks)"
msgid "Direct terug naar aanvrager (Nog niet in behandeling)"
msgstr "Return directly to applicant (not yet under review)"
-#: reviews/forms.py:34 reviews/menus.py:67 reviews/mixins.py:173
+#: reviews/forms.py:34 reviews/menus.py:67 reviews/mixins.py:174
msgid "Algemene Kamer"
msgstr "General Chamber"
-#: reviews/forms.py:35 reviews/menus.py:77 reviews/mixins.py:176
+#: reviews/forms.py:35 reviews/menus.py:77 reviews/mixins.py:177
msgid "Linguïstiek Kamer"
msgstr "Linguistics Chamber"
@@ -3504,7 +3434,7 @@ msgstr ""
"Click to make your decision "
"(as a supervisor)."
-#: reviews/templates/reviews/action_explaination.html:53
+#: reviews/templates/reviews/action_explaination.html:55
msgid "Uitleg secretaris"
msgstr "Explanation for secretary"
@@ -3579,9 +3509,9 @@ msgstr "Reasons"
msgid "Beoordelende kamer wijzigen"
msgstr "Change reviewing chamber"
-#: reviews/templates/reviews/change_chamber_form.html:21
-#: reviews/templates/reviews/review_assign_form.html:49
-#: reviews/templates/reviews/review_discontinue_form.html:73
+#: reviews/templates/reviews/change_chamber_form.html:19
+#: reviews/templates/reviews/review_assign_form.html:47
+#: reviews/templates/reviews/review_discontinue_form.html:71
msgid "OK"
msgstr "OK"
@@ -5222,4 +5152,4 @@ msgstr "Task edited"
#: tasks/views/task_views.py:56
msgid "Taak verwijderd"
-msgstr "Task deleted"
\ No newline at end of file
+msgstr "Task deleted"
diff --git a/main/forms/conditional_form.py b/main/forms/conditional_form.py
index 4794df4bc..9772877cd 100644
--- a/main/forms/conditional_form.py
+++ b/main/forms/conditional_form.py
@@ -1,10 +1,11 @@
+from cdh.core.forms import TemplatedModelForm
from django import forms
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from ..utils import is_empty
-class ConditionalModelForm(forms.ModelForm):
+class ConditionalModelForm(TemplatedModelForm):
def check_empty(self, cleaned_data, f1, error_message=""):
is_required = False
if not error_message:
diff --git a/main/forms/mixins.py b/main/forms/mixins.py
index 7c5575e15..d170cefb5 100644
--- a/main/forms/mixins.py
+++ b/main/forms/mixins.py
@@ -2,7 +2,7 @@
from django.forms.fields import Field, FileField
from django.forms.models import InlineForeignKeyField, construct_instance
from django.forms.utils import ErrorDict
-from django.utils.translation import ugettext as _
+from django.utils.translation import gettext as _
class SoftValidationMixin:
@@ -11,6 +11,9 @@ class SoftValidationMixin:
validator errors.
"""
+ # Disable the default TemplatedForm behavior of showing valid fields, it will be even more confusing
+ show_valid_fields = False
+
_soft_validation_fields = []
def __init__(self, *args, **kwargs):
diff --git a/main/menus.py b/main/menus.py
index ebf35c80c..cd3032b5f 100644
--- a/main/menus.py
+++ b/main/menus.py
@@ -1,18 +1,6 @@
from django.urls import reverse
from django.utils.translation import gettext_lazy as _
-from django.conf import settings
from menu import Menu, MenuItem
-Menu.add_item("home", MenuItem(_("Startpagina"), reverse("main:home"), exact_url=True))
-
-Menu.add_item(
- "footer",
- MenuItem(
- _("Log in"), settings.LOGIN_URL, check=lambda x: not x.user.is_authenticated
- ),
-)
-
-Menu.add_item(
- "footer",
- MenuItem(_("Log uit"), reverse("logout"), check=lambda x: x.user.is_authenticated),
-)
+# TODO: decide if we want this
+# Menu.add_item("home", MenuItem(_("Startpagina"), reverse("main:home"), exact_url=True))
diff --git a/main/models.py b/main/models.py
index bf94d82b0..7195cec6f 100644
--- a/main/models.py
+++ b/main/models.py
@@ -1,7 +1,7 @@
from django.contrib.auth import get_user_model
from django.contrib.auth.models import User
from django.db import models
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
class YesNoDoubt(models.TextChoices):
diff --git a/main/static/main/images/coverimage-summer_Kim_Oleary.jpg b/main/static/main/images/coverimage-autumn.jpg
similarity index 100%
rename from main/static/main/images/coverimage-summer_Kim_Oleary.jpg
rename to main/static/main/images/coverimage-autumn.jpg
diff --git a/main/static/main/images/coverimage-spring.jpg b/main/static/main/images/coverimage-spring.jpg
new file mode 100644
index 000000000..bbb44c226
Binary files /dev/null and b/main/static/main/images/coverimage-spring.jpg differ
diff --git a/main/static/main/images/coverimage-summer.jpg b/main/static/main/images/coverimage-summer.jpg
new file mode 100644
index 000000000..88945c0ec
Binary files /dev/null and b/main/static/main/images/coverimage-summer.jpg differ
diff --git a/main/static/main/images/coverimage.jpg b/main/static/main/images/coverimage.jpg
deleted file mode 100644
index fe1eeb5a5..000000000
Binary files a/main/static/main/images/coverimage.jpg and /dev/null differ
diff --git a/main/static/main/style.css b/main/static/main/style.css
index 0925d92d7..c3a5bd127 100644
--- a/main/static/main/style.css
+++ b/main/static/main/style.css
@@ -1,304 +1,4 @@
-#header-img {
- float: right;
-}
-
-#content {
- margin: .5em;
- padding: 1em;
- background: none repeat scroll 0% 0% rgb(255, 255, 255);
-}
-
-.pure-menu-custom {
- box-shadow: 0 .25em .5em rgba(0, 0, 0, 0.4);
- margin-bottom: 2.5em;
-}
-
-#title {
- color: gray;
-}
-
-.task_list {
- background: rgb(250, 250, 250);
- border: 1px solid #eee;
- padding: 0em 1em 1em 1em;
-}
-
-.startpage-ul {
- list-style: circle;
-}
-
-.startpage-ul li {
- margin-top: 3px;
-}
-
-.startpage-ul a {
- text-underline-offset: .1em;
-}
-
-form label {
- display: inline-block;
-}
-
-.button-grid {
- display: grid;
- grid-auto-flow: column;
- column-gap: 15px;
- text-align: center;
-}
-
-.button-grid > .button {
- line-height: 1.5em;
- padding-top: 1rem;
- padding-bottom: 1rem;
- padding-right: 10px;
- padding-left: 10px;
-}
-
-.form-buttons a, .form-buttons input {
- margin-top: 5px;
-}
-
-
-
-@media (min-width: 768px)
-{
- .form-buttons .continue-button {
- float: right;
- }
-}
-
-/* Displaying the differences between Proposals */
-.proposals-diff {
- table-layout: fixed;
- width: 100%;
- text-align: left;
-}
-
-.proposals-diff-question {
- width: 50%;
-}
-
-.proposals-diff-answer {
- width: 25%;
-}
-
-.proposals-diff td.diff {
- background-color: orange;
-}
-
-.proposals-diff th, .proposals-diff td {
- padding: 10px;
-}
-
-/* Form specifics */
-input[name=title] {
- width: 20em;
-}
-
-.form-errors {
- color: red;
-}
-
-form ul {
- list-style-type: none;
- padding: 0;
- margin: 0;
-}
-
-form th {
- font-weight: normal;
- width: 45%;
- text-align: left;
-}
-
-form tr {
- background: transparent !important;
- border-bottom: 2px #eee solid;
-}
-
-form tr:last-child {
- border-bottom: none;
-}
-
-form tr th, form tr td {
- padding: 10px 0;
-}
-
-
-form tr td {
- padding-left: 20px;
-}
-
-@media (max-width: 870px) {
- form tr td {
- padding-left: 0;
- }
-}
-
-/** Select all titles added by add_title, except if it's in the first row of the table **/
-form table tr:not(:first-child) > th > strong {
- display: inline-block;
- margin-top: 20px;
-}
-
-.errorlist {
- color: red;
-}
-
-form table {
- width: 100%;
- margin-bottom: 2em;
-}
-
-/* No bullet for list items in tables */
-td li {
- list-style-type: none;
-}
-
-a.icon-link {
- text-decoration: none;
-}
-
-.exportTable td, .exportTable th {
- padding: 2px
-}
-
-.compare ins {
- background: lightgreen;
- text-decoration: none;
-}
-.compare del {
- background: lightcoral;
- text-decoration: none;
-}
-.document-compare {
- margin-top: 10px;
- padding-top: 10px;
- border-top: 1px solid #ddd;
-}
-
-/** Navigation bar **/
-
-.navigation-bar > ul {
- list-style: none;
- display: flex;
- width: 100%;
- padding: 0;
- margin-top: 40px;
- margin-bottom: 30px;
-}
-
-.navigation-bar > ul > li {
- flex: 1;
- width: auto;
- text-align: center;
- margin-top: -33px;
-}
-
-.navigation-bar a {
- text-decoration: none;
-}
-
-.navigation-content {
- border-top: 2px solid #666;
-}
-
-.navigation-content.inactive {
- border-color: #999;
- color: #999;
-}
-
-.navigation-content.active {
- border-color: #ffcd00;
- color: #000;
-}
-
-.navigation-bubble {
- border: 2px solid #666;
- border-radius: 50%;
- color: #666;
- width: 40px;
- height: 40px;
- padding-top: 5px;
- background: #fff;
- margin-top: -21px;
- margin-left: calc(50% - 21px);
- z-index: 10;
- text-align: center;
-}
-
-.inactive .navigation-bubble {
- border-color: #999;
- color: #999
-}
-
-.active .navigation-bubble {
- border-color: #ffcd00;
-}
-
-.navigation-text {
- text-decoration: none;
- margin-bottom: -15px;
-}
-
-.navigation-text .dropdown-toggle {
- cursor: pointer;
-}
-
-.dropdown-submenu {
- position: relative;
-}
-
-.dropdown-submenu > .dropdown-menu {
- top: 0;
- left: 100%;
- margin-top: -6px;
- margin-left: -1px;
- -webkit-border-radius: 0 6px 6px 6px;
- -moz-border-radius: 0 6px 6px;
- border-radius: 0 6px 6px 6px;
-}
-
-.dropdown-submenu:hover > .dropdown-menu {
- display: block;
-}
-
-.dropdown-submenu > a:after {
- display: block;
- content: " ";
- float: right;
- width: 0;
- height: 0;
- border-color: transparent;
- border-style: solid;
- border-width: 5px 0 5px 5px;
- border-left-color: #ccc;
- margin-top: 5px;
- margin-right: -10px;
-}
-
-.dropdown-submenu .dropdown-toggle::after {
- border-left: .3em solid;
- border-top: .3em solid transparent;
- border-right: 0;
- border-bottom: .3em solid transparent;
- vertical-align: inherit;
- float: right;
- margin-top: 0.5em;
-}
-
-.dropdown-submenu:hover > a:after {
- border-left-color: #fff;
-}
-
-.dropdown-submenu.pull-left {
- float: none;
-}
-
-.dropdown-submenu.pull-left > .dropdown-menu {
- left: -100%;
- margin-left: 10px;
- -webkit-border-radius: 6px 0 6px 6px;
- -moz-border-radius: 6px 0 6px 6px;
- border-radius: 6px 0 6px 6px;
+.uu-root-container {
+ --bs-nav-link-font-size: .9rem;
+ --bs-uu-header-font-size: .9rem;
}
\ No newline at end of file
diff --git a/main/static/main/style.css.bak b/main/static/main/style.css.bak
new file mode 100644
index 000000000..0925d92d7
--- /dev/null
+++ b/main/static/main/style.css.bak
@@ -0,0 +1,304 @@
+#header-img {
+ float: right;
+}
+
+#content {
+ margin: .5em;
+ padding: 1em;
+ background: none repeat scroll 0% 0% rgb(255, 255, 255);
+}
+
+.pure-menu-custom {
+ box-shadow: 0 .25em .5em rgba(0, 0, 0, 0.4);
+ margin-bottom: 2.5em;
+}
+
+#title {
+ color: gray;
+}
+
+.task_list {
+ background: rgb(250, 250, 250);
+ border: 1px solid #eee;
+ padding: 0em 1em 1em 1em;
+}
+
+.startpage-ul {
+ list-style: circle;
+}
+
+.startpage-ul li {
+ margin-top: 3px;
+}
+
+.startpage-ul a {
+ text-underline-offset: .1em;
+}
+
+form label {
+ display: inline-block;
+}
+
+.button-grid {
+ display: grid;
+ grid-auto-flow: column;
+ column-gap: 15px;
+ text-align: center;
+}
+
+.button-grid > .button {
+ line-height: 1.5em;
+ padding-top: 1rem;
+ padding-bottom: 1rem;
+ padding-right: 10px;
+ padding-left: 10px;
+}
+
+.form-buttons a, .form-buttons input {
+ margin-top: 5px;
+}
+
+
+
+@media (min-width: 768px)
+{
+ .form-buttons .continue-button {
+ float: right;
+ }
+}
+
+/* Displaying the differences between Proposals */
+.proposals-diff {
+ table-layout: fixed;
+ width: 100%;
+ text-align: left;
+}
+
+.proposals-diff-question {
+ width: 50%;
+}
+
+.proposals-diff-answer {
+ width: 25%;
+}
+
+.proposals-diff td.diff {
+ background-color: orange;
+}
+
+.proposals-diff th, .proposals-diff td {
+ padding: 10px;
+}
+
+/* Form specifics */
+input[name=title] {
+ width: 20em;
+}
+
+.form-errors {
+ color: red;
+}
+
+form ul {
+ list-style-type: none;
+ padding: 0;
+ margin: 0;
+}
+
+form th {
+ font-weight: normal;
+ width: 45%;
+ text-align: left;
+}
+
+form tr {
+ background: transparent !important;
+ border-bottom: 2px #eee solid;
+}
+
+form tr:last-child {
+ border-bottom: none;
+}
+
+form tr th, form tr td {
+ padding: 10px 0;
+}
+
+
+form tr td {
+ padding-left: 20px;
+}
+
+@media (max-width: 870px) {
+ form tr td {
+ padding-left: 0;
+ }
+}
+
+/** Select all titles added by add_title, except if it's in the first row of the table **/
+form table tr:not(:first-child) > th > strong {
+ display: inline-block;
+ margin-top: 20px;
+}
+
+.errorlist {
+ color: red;
+}
+
+form table {
+ width: 100%;
+ margin-bottom: 2em;
+}
+
+/* No bullet for list items in tables */
+td li {
+ list-style-type: none;
+}
+
+a.icon-link {
+ text-decoration: none;
+}
+
+.exportTable td, .exportTable th {
+ padding: 2px
+}
+
+.compare ins {
+ background: lightgreen;
+ text-decoration: none;
+}
+.compare del {
+ background: lightcoral;
+ text-decoration: none;
+}
+.document-compare {
+ margin-top: 10px;
+ padding-top: 10px;
+ border-top: 1px solid #ddd;
+}
+
+/** Navigation bar **/
+
+.navigation-bar > ul {
+ list-style: none;
+ display: flex;
+ width: 100%;
+ padding: 0;
+ margin-top: 40px;
+ margin-bottom: 30px;
+}
+
+.navigation-bar > ul > li {
+ flex: 1;
+ width: auto;
+ text-align: center;
+ margin-top: -33px;
+}
+
+.navigation-bar a {
+ text-decoration: none;
+}
+
+.navigation-content {
+ border-top: 2px solid #666;
+}
+
+.navigation-content.inactive {
+ border-color: #999;
+ color: #999;
+}
+
+.navigation-content.active {
+ border-color: #ffcd00;
+ color: #000;
+}
+
+.navigation-bubble {
+ border: 2px solid #666;
+ border-radius: 50%;
+ color: #666;
+ width: 40px;
+ height: 40px;
+ padding-top: 5px;
+ background: #fff;
+ margin-top: -21px;
+ margin-left: calc(50% - 21px);
+ z-index: 10;
+ text-align: center;
+}
+
+.inactive .navigation-bubble {
+ border-color: #999;
+ color: #999
+}
+
+.active .navigation-bubble {
+ border-color: #ffcd00;
+}
+
+.navigation-text {
+ text-decoration: none;
+ margin-bottom: -15px;
+}
+
+.navigation-text .dropdown-toggle {
+ cursor: pointer;
+}
+
+.dropdown-submenu {
+ position: relative;
+}
+
+.dropdown-submenu > .dropdown-menu {
+ top: 0;
+ left: 100%;
+ margin-top: -6px;
+ margin-left: -1px;
+ -webkit-border-radius: 0 6px 6px 6px;
+ -moz-border-radius: 0 6px 6px;
+ border-radius: 0 6px 6px 6px;
+}
+
+.dropdown-submenu:hover > .dropdown-menu {
+ display: block;
+}
+
+.dropdown-submenu > a:after {
+ display: block;
+ content: " ";
+ float: right;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+ border-width: 5px 0 5px 5px;
+ border-left-color: #ccc;
+ margin-top: 5px;
+ margin-right: -10px;
+}
+
+.dropdown-submenu .dropdown-toggle::after {
+ border-left: .3em solid;
+ border-top: .3em solid transparent;
+ border-right: 0;
+ border-bottom: .3em solid transparent;
+ vertical-align: inherit;
+ float: right;
+ margin-top: 0.5em;
+}
+
+.dropdown-submenu:hover > a:after {
+ border-left-color: #fff;
+}
+
+.dropdown-submenu.pull-left {
+ float: none;
+}
+
+.dropdown-submenu.pull-left > .dropdown-menu {
+ left: -100%;
+ margin-left: 10px;
+ -webkit-border-radius: 6px 0 6px 6px;
+ -moz-border-radius: 6px 0 6px 6px;
+ border-radius: 6px 0 6px 6px;
+}
\ No newline at end of file
diff --git a/main/templates/auth/user_detail.html b/main/templates/auth/user_detail.html
index 6da2e6410..02fc507f7 100644
--- a/main/templates/auth/user_detail.html
+++ b/main/templates/auth/user_detail.html
@@ -1,4 +1,4 @@
-{% extends "base/base.html" %}
+{% extends "base/fetc_base.html" %}
{% load fetc_filters %}
{% load get_field_name %}
@@ -9,7 +9,7 @@
{% block header_title %}{{ user_object.get_full_name }} - {{ block.super }}{% endblock %}
{% block content %}
-
+
{{ user_object.get_full_name }}
diff --git a/main/templates/base/fetc_base.html b/main/templates/base/fetc_base.html
new file mode 100644
index 000000000..038b80133
--- /dev/null
+++ b/main/templates/base/fetc_base.html
@@ -0,0 +1,39 @@
+{% extends "base/tool_base.html" %}
+
+{% load i18n %}
+{% load static %}
+
+{# This is what is appended to #}
+{% block header_title %}
+ {% trans "FETC-GW" %}
+{% endblock %}
+
+{# Any side-wide stuff that needs to placed in #}
+{% block html_head %}
+
+
+
+ {% include "base/form_styling.html" %}
+{% endblock %}
+
+{% block uu-header-pre-menu %}
+
+ {% trans 'FETC-GW Portal' %}
+
+{% endblock %}
+
+{% block uu-header-post-menu %}
+ {% if request.user.is_authenticated %}
+
+ {% endif %}
+ {% include 'base/tool_language_box.html' %}
+{% endblock %}
diff --git a/main/templates/base/fetc_form_base.html b/main/templates/base/fetc_form_base.html
new file mode 100644
index 000000000..07e2893b6
--- /dev/null
+++ b/main/templates/base/fetc_form_base.html
@@ -0,0 +1,60 @@
+{% extends 'base/fetc_base.html' %}
+
+{% block content %}
+
+ {# A block one can use to insert content before the stepper/form container #}
+ {% block pre-form-container-content %}{% endblock %}
+
+ {# todo: responsive design #}
+
+ {% block stepper %}
+ {% include "base/stepper.html" %}
+ {% endblock %}
+
+
+
+
+
+ {# A block one can use to insert content after the stepper/form container #}
+ {% block post-form-container-content %}{% endblock %}
+
+
+{% endblock %}
diff --git a/main/templates/base/form_buttons.html b/main/templates/base/form_buttons.html
index e7cd1ed23..1ae0be030 100644
--- a/main/templates/base/form_buttons.html
+++ b/main/templates/base/form_buttons.html
@@ -1,44 +1,17 @@
{% load i18n %}
-
-
- {% trans "Terug naar de vorige pagina" %}
+ {% trans "Terug naar de vorige pagina" %}
diff --git a/observations/utils.py b/observations/utils.py
index 509c8f95e..b3cc24a4e 100644
--- a/observations/utils.py
+++ b/observations/utils.py
@@ -1,5 +1,5 @@
from django.urls import reverse
-from django.utils.translation import ugettext as _
+from django.utils.translation import gettext as _
from main.utils import AvailableURL
diff --git a/observations/views.py b/observations/views.py
index 0121ff727..a7f854e1d 100644
--- a/observations/views.py
+++ b/observations/views.py
@@ -1,5 +1,5 @@
from django.urls import reverse
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from main.views import CreateView, UpdateView, AllowErrorsOnBackbuttonMixin
from fetc import settings
diff --git a/proposals/api/serializers.py b/proposals/api/serializers.py
index 6be309a3a..291283fe1 100644
--- a/proposals/api/serializers.py
+++ b/proposals/api/serializers.py
@@ -3,7 +3,7 @@
from main.serializers import UserSerializer
from proposals.models import Proposal
from reviews.api.serializers import InlineReviewSerializer, InlineDecisionSerializer
-from uil.core.rest.serializers import ModelDisplaySerializer
+from cdh.rest.server.serializers import ModelDisplaySerializer
class ProposalInlineSerializer(ModelDisplaySerializer):
diff --git a/proposals/api/views.py b/proposals/api/views.py
index 47693495e..f2c25d6c7 100644
--- a/proposals/api/views.py
+++ b/proposals/api/views.py
@@ -1,12 +1,10 @@
from braces.views import LoginRequiredMixin
from django.db.models import Q
-from django.utils.decorators import method_decorator
-from django.utils.translation import ugettext_lazy as _
-from django.views.decorators.cache import cache_page
+from django.utils.translation import gettext_lazy as _
from rest_framework.authentication import SessionAuthentication
from reviews.mixins import CommitteeMixin
-from uil.vue.rest import FancyListApiView
+from cdh.vue.rest import FancyListApiView
from main.utils import is_secretary
from reviews.models import Review
diff --git a/proposals/forms.py b/proposals/forms.py
index 9adf50bbb..b296aa8a1 100644
--- a/proposals/forms.py
+++ b/proposals/forms.py
@@ -5,13 +5,12 @@
from django.contrib.auth import get_user_model
from django.db.models import Q
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from django.utils.functional import lazy
-from django.utils.safestring import mark_safe
+from django.utils.safestring import mark_safe, SafeString
from django.utils import timezone
-from datetime import timedelta
-mark_safe_lazy = lazy(mark_safe, str)
+mark_safe_lazy = lazy(mark_safe, SafeString)
from main.forms import ConditionalModelForm, SoftValidationMixin
from main.models import YesNoDoubt
@@ -20,9 +19,19 @@
from .models import Proposal, Relation, Wmo
from .utils import check_local_facilities
from .validators import UniqueTitleValidator
-from .widgets import SelectMultipleUser, SelectUser
-from cdh.core.forms import DateField
+from cdh.core.forms import (
+ DateField,
+ BootstrapRadioSelect,
+ BootstrapCheckboxSelectMultiple,
+ BootstrapSelect,
+ SearchableSelectWidget,
+ DateInput,
+ SplitDateTimeWidget,
+ BootstrapSplitDateTimeWidget,
+ TemplatedForm,
+ TemplatedModelForm,
+)
class ProposalForm(UserKwargModelFormMixin, SoftValidationMixin, ConditionalModelForm):
@@ -63,16 +72,17 @@ class Meta:
),
}
widgets = {
- "is_pre_approved": forms.RadioSelect(choices=YES_NO),
- "institution": forms.RadioSelect(),
- "relation": forms.RadioSelect(),
- "student_context": forms.RadioSelect(),
- "other_applicants": forms.RadioSelect(choices=YES_NO),
- "other_stakeholders": forms.RadioSelect(choices=YES_NO),
+ "is_pre_approved": BootstrapRadioSelect(choices=YES_NO),
+ "institution": BootstrapRadioSelect(),
+ "relation": BootstrapRadioSelect(),
+ "student_context": BootstrapRadioSelect(),
+ "other_applicants": BootstrapRadioSelect(choices=YES_NO),
+ "other_stakeholders": BootstrapRadioSelect(choices=YES_NO),
+ "date_start": DateInput(),
"summary": forms.Textarea(attrs={"cols": 50}),
- "funding": forms.CheckboxSelectMultiple(),
- "applicants": SelectMultipleUser(),
- "supervisor": forms.Select(),
+ "funding": BootstrapCheckboxSelectMultiple(),
+ "applicants": SearchableSelectWidget(),
+ "supervisor": SearchableSelectWidget(),
}
error_messages = {
"title": {
@@ -121,6 +131,10 @@ def __init__(self, *args, **kwargs):
self.fields["institution"].empty_label = None
self.fields["student_context"].empty_label = None
+ # Needed to set the widget into multiple mode
+ # TODO: write a DSC widget that has this enabled by default
+ self.fields["applicants"].widget.allow_multiple_selected = True
+
# Only revisions or amendments are allowed to have a title that's not
# unique.
if not self.instance or not self.instance.is_revision:
@@ -281,15 +295,15 @@ def clean(self):
)
-class ProposalStartPracticeForm(forms.Form):
+class ProposalStartPracticeForm(TemplatedForm):
practice_reason = forms.ChoiceField(
label=_("Ik maak een oefenaanvraag aan"),
choices=Proposal.PracticeReasons.choices,
- widget=forms.RadioSelect(),
+ widget=BootstrapRadioSelect(),
)
-class BaseProposalCopyForm(UserKwargModelFormMixin, forms.ModelForm):
+class BaseProposalCopyForm(UserKwargModelFormMixin, TemplatedModelForm):
class Meta:
model = Proposal
fields = ["parent", "is_revision"]
@@ -297,6 +311,7 @@ class Meta:
"is_revision": forms.HiddenInput(),
}
+ # TODO: figure out if we need to change widgets here
parent = ParentChoiceModelField(
queryset=Proposal.objects.all(),
label=_("Te kopiëren aanvraag"),
@@ -403,7 +418,7 @@ def _get_parent_queryset(self):
)
-class ProposalConfirmationForm(forms.ModelForm):
+class ProposalConfirmationForm(TemplatedModelForm):
class Meta:
model = Proposal
fields = ["date_confirmed", "confirmation_comments"]
@@ -413,7 +428,7 @@ class WmoForm(SoftValidationMixin, ConditionalModelForm):
class Meta:
model = Wmo
fields = ["metc", "metc_details", "metc_institution", "is_medical"]
- widgets = {"metc": forms.RadioSelect(), "is_medical": forms.RadioSelect()}
+ widgets = {"metc": BootstrapRadioSelect(), "is_medical": BootstrapRadioSelect()}
_soft_validation_fields = ["metc_details", "metc_institution", "is_medical"]
@@ -456,7 +471,7 @@ def clean(self):
)
-class WmoCheckForm(forms.ModelForm):
+class WmoCheckForm(TemplatedModelForm):
class Meta:
model = Wmo
fields = [
@@ -464,8 +479,8 @@ class Meta:
"is_medical",
]
widgets = {
- "metc": forms.RadioSelect(),
- "is_medical": forms.RadioSelect(),
+ "metc": BootstrapRadioSelect(),
+ "is_medical": BootstrapRadioSelect(),
}
def __init__(self, *args, **kwargs):
@@ -486,8 +501,8 @@ class Meta:
"metc_decision_pdf",
]
widgets = {
- "metc_application": forms.RadioSelect(choices=YES_NO),
- "metc_decision": forms.RadioSelect(choices=YES_NO),
+ "metc_application": BootstrapRadioSelect(choices=YES_NO),
+ "metc_decision": BootstrapRadioSelect(choices=YES_NO),
}
_soft_validation_fields = [
diff --git a/proposals/mixins.py b/proposals/mixins.py
index a3c2d0b15..6a7462dc0 100644
--- a/proposals/mixins.py
+++ b/proposals/mixins.py
@@ -3,7 +3,7 @@
from braces.views import UserFormKwargsMixin
from xhtml2pdf import pisa
from django.urls import reverse
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from django.core.exceptions import ImproperlyConfigured
from django.views.generic.base import TemplateResponseMixin
diff --git a/proposals/models.py b/proposals/models.py
index d73facb49..81ff7709b 100644
--- a/proposals/models.py
+++ b/proposals/models.py
@@ -7,12 +7,12 @@
from django.core.validators import MaxValueValidator, MinValueValidator
from django.db import models
from django.utils import timezone
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from django.utils.functional import lazy
-from django.utils.safestring import mark_safe
+from django.utils.safestring import mark_safe, SafeString
-mark_safe_lazy = lazy(mark_safe, str)
+mark_safe_lazy = lazy(mark_safe, SafeString)
from main.models import YesNoDoubt
from main.validators import MaxWordsValidator, validate_pdf_or_doc
@@ -861,10 +861,13 @@ class WMOStatuses(models.IntegerChoices):
on_delete=models.CASCADE,
)
- def save(self, *args, **kwargs):
+ def save(self, *args, update_fields=None, **kwargs):
"""Sets the correct status on save of a WMO"""
self.update_status()
- super(Wmo, self).save(*args, **kwargs)
+ # If update_fields is supplied, we need to add status to it (or it will be ignored)
+ if update_fields is not None and "name" in update_fields:
+ update_fields = {"status"}.union(update_fields)
+ super(Wmo, self).save(*args, update_fields=update_fields, **kwargs)
def update_status(self):
if (
diff --git a/proposals/templates/proposals/compare_documents.html b/proposals/templates/proposals/compare_documents.html
index 146114de3..41075deac 100644
--- a/proposals/templates/proposals/compare_documents.html
+++ b/proposals/templates/proposals/compare_documents.html
@@ -44,7 +44,7 @@
{% endblock %}
{% block content %}
-
+
{% trans 'Vergelijk documenten' %}
@@ -68,11 +68,11 @@
-
-
+
+
-
+
{% trans "Oud" %}:
@@ -86,7 +86,7 @@
-
+
diff --git a/proposals/templates/proposals/proposal_confirm_delete.html b/proposals/templates/proposals/proposal_confirm_delete.html
index 43b9246ae..16b1fd2fd 100644
--- a/proposals/templates/proposals/proposal_confirm_delete.html
+++ b/proposals/templates/proposals/proposal_confirm_delete.html
@@ -1,4 +1,4 @@
-{% extends "base/base.html" %}
+{% extends "base/fetc_base.html" %}
{% load i18n %}
@@ -7,7 +7,7 @@
{% endblock %}
{% block content %}
-
+
{% trans "Aanvraag verwijderen" %}
@@ -17,8 +17,10 @@
{% trans "Aanvraag verwijderen" %}
diff --git a/proposals/templates/proposals/proposal_confirmation.html b/proposals/templates/proposals/proposal_confirmation.html
index 7637fd475..9357ac150 100644
--- a/proposals/templates/proposals/proposal_confirmation.html
+++ b/proposals/templates/proposals/proposal_confirmation.html
@@ -1,4 +1,4 @@
-{% extends "base/base.html" %}
+{% extends "base/fetc_base.html" %}
{% load static %}
{% load i18n %}
@@ -20,7 +20,7 @@
{% endblock %}
{% block content %}
-
+
{% trans "Bevestigingsbrief versturen" %}
@@ -33,8 +33,8 @@
{% trans "Bevestigingsbrief versturen" %}
{{ form.as_table }}
- {% trans "Terug naar de vorige pagina" %}
- {% trans "Terug naar de vorige pagina" %}
+
diff --git a/proposals/templates/proposals/proposal_copy.html b/proposals/templates/proposals/proposal_copy.html
index f4c92e10d..a2d586e92 100644
--- a/proposals/templates/proposals/proposal_copy.html
+++ b/proposals/templates/proposals/proposal_copy.html
@@ -1,4 +1,4 @@
-{% extends "base/base.html" %}
+{% extends "base/fetc_base.html" %}
{% load static %}
{% load i18n %}
@@ -15,7 +15,7 @@
{% endblock %}
{% block content %}
-
+
{% if is_revision %}
@@ -89,9 +89,9 @@
{{ form.as_table }}
-
diff --git a/proposals/templates/proposals/proposal_data_management.html b/proposals/templates/proposals/proposal_data_management.html
index 65cd7e51c..bd66acbf6 100644
--- a/proposals/templates/proposals/proposal_data_management.html
+++ b/proposals/templates/proposals/proposal_data_management.html
@@ -1,4 +1,4 @@
-{% extends "base/base.html" %}
+{% extends "base/fetc_base.html" %}
{% load static %}
{% load i18n %}
@@ -8,7 +8,7 @@
{% endblock %}
{% block content %}
-
+
{% with nav_items=proposal.available_urls active=5 %}
{% include 'base/navigation.html' %}
diff --git a/proposals/templates/proposals/proposal_diff.html b/proposals/templates/proposals/proposal_diff.html
index 739fb6d7b..e75e44098 100644
--- a/proposals/templates/proposals/proposal_diff.html
+++ b/proposals/templates/proposals/proposal_diff.html
@@ -1,9 +1,9 @@
-{% extends "base/base.html" %}
+{% extends "base/fetc_base.html" %}
{% load i18n %}
{% load proposal_filters %}
{% load static %}
-{% load uil_filters %}
+{% load cdh_filters %}
{% load get_field_name %}
{% load diff_tags %}
@@ -32,7 +32,7 @@
{% endblock %}
{% block content %}
-
+
{% trans "Overzicht van wijzigingen bij aanmelding " %}
@@ -43,7 +43,7 @@
-
+
@@ -51,8 +51,8 @@
{% for section in sections %}
{% include section %}
{% endfor %}
-
-
+
+
diff --git a/proposals/templates/proposals/proposal_export_list.html b/proposals/templates/proposals/proposal_export_list.html
index f6c6efd83..8576afee0 100644
--- a/proposals/templates/proposals/proposal_export_list.html
+++ b/proposals/templates/proposals/proposal_export_list.html
@@ -1,4 +1,4 @@
-{% extends "base/base.html" %}
+{% extends "base/fetc_base.html" %}
{% load static %}
{% load i18n %}
@@ -6,7 +6,7 @@
{% block header_title %}Goedgekeurde aanvragen - {{ block.super }}{% endblock %}
{% block content %}
-
+
Approved proposals
diff --git a/proposals/templates/proposals/proposal_form.html b/proposals/templates/proposals/proposal_form.html
index 02b196253..832807a86 100644
--- a/proposals/templates/proposals/proposal_form.html
+++ b/proposals/templates/proposals/proposal_form.html
@@ -1,4 +1,4 @@
-{% extends "base/base.html" %}
+{% extends "base/fetc_form_base.html" %}
{% load static %}
{% load i18n %}
@@ -8,6 +8,7 @@
{% endblock %}
{% block html_head %}
+ {{ block.super }}
@@ -22,125 +23,73 @@
depends_on_value('other_stakeholders', 'True', 'stakeholders');
check_field_required('funding', 'needs_details', 'funding_details', 'proposals');
check_field_required('funding', 'needs_name', 'funding_name', 'proposals');
+ });
+ $(function () {
+ // adds running wordcounter for the summary and self_assessment text fields
+ let translated_string = " {% trans 'Aantal woorden:' %} "
+ wordCounter("summary", translated_string)
+ wordCounter("self_assessment", translated_string)
+ });
- // Add datepicker for date_start, set locale to current language
- $.datepicker.setDefaults($.datepicker.regional["{{ LANGUAGE_CODE }}"]);
+ $(function () {
+ /* Find date start input */
+ let date_start_input = $("#id_date_start")
- var date_format = '{{ LANGUAGE_CODE }}' === 'nl' ? 'dd-mm-yy' : 'yy-mm-dd';
- $("#id_date_start").datepicker({
- dateFormat: date_format,
- })
+ /* Insert warning element */
+ date_start_input.after(`
+
+ {% trans "Als de beoogde startdatum binnen twee weken van het indienen van de aanvraag ligt, kan de FETC geen officiële goedkeuring meer geven."%}
+
+ `)
- // AJAX applicants
- $('select#id_applicants').select2({
- ajax: {
- url: '{% url 'main:user_search' %}',
- dataType: 'json',
- data: function (params) {
- return {
- q: params.term || '*',
- page: params.page || 1
- }
- },
- delay: 1500,
- error: function (err) {
- console.log(err)
- },
- cache: true
- }
- });
-
- // AJAX supervisors
- $('select#id_supervisor').select2();
- });
- $(function() {
- // adds running wordcounter for the summary and self_assessment text fields
- let translated_string = " {% trans 'Aantal woorden:' %} "
- wordCounter("summary", translated_string)
- wordCounter("self_assessment", translated_string)
- });
-
-{% endblock %}
-
-{% block content %}
-
-
- {% if not create %}
- {% with nav_items=proposal.available_urls active=1 %}
- {% include 'base/navigation.html' %}
- {% endwith %}
- {% endif %}
- {% if is_practice %}
-
- {% trans "Je bewerkt op het moment een oefenaanvraag. Deze kan niet ter beoordeling door de FETC-GW worden ingediend." %}
-
- {% endif %}
- {% trans "Algemene informatie over de aanvraag" %}
- {% if not create and is_supervisor %}
- {% blocktrans trimmed %}
- Je past nu een aanvraag aan van een student/PhD kandidaat onder jouw supervisie. Let er op dat je het
- formulier
- invult alsof jij die student/PhD kandidaat bent.
- {% endblocktrans %}
-
-
- {% endif %}
-
-
-
-
-
-
+{% endblock %}
- /* Give the update function a warmup run */
- updateWarning();
+{% block pre-form-container-content %}
+ {% if not create and is_supervisor %}
+
+ {% blocktrans trimmed %}
+ Je past nu een aanvraag aan van een student/PhD kandidaat onder jouw supervisie. Let er op dat je
+ het formulier invult alsof jij die student/PhD kandidaat bent.
+ {% endblocktrans %}
+
+ {% endif %}
+ {% if is_practice %}
+
+ {% trans "Je bewerkt op het moment een oefenaanvraag. Deze kan niet ter beoordeling door de FETC-GW worden ingediend." %}
+
+ {% endif %}
+{% endblock %}
-
+{% block pre-form-text %}
+ {% trans "Algemene informatie over de aanvraag" %}
{% endblock %}
diff --git a/proposals/templates/proposals/proposal_form_pre_approved.html b/proposals/templates/proposals/proposal_form_pre_approved.html
index 396a86f6b..6ba05324f 100644
--- a/proposals/templates/proposals/proposal_form_pre_approved.html
+++ b/proposals/templates/proposals/proposal_form_pre_approved.html
@@ -1,4 +1,4 @@
-{% extends "base/base.html" %}
+{% extends "base/fetc_base.html" %}
{% load static %}
{% load i18n %}
@@ -78,7 +78,7 @@
{% endblock %}
{% block content %}
-
+
{% trans "Algemene informatie over de aanvraag" %}
{% if not create and is_supervisor %}
diff --git a/proposals/templates/proposals/proposal_list.html b/proposals/templates/proposals/proposal_list.html
index 0b97279d1..98a833357 100644
--- a/proposals/templates/proposals/proposal_list.html
+++ b/proposals/templates/proposals/proposal_list.html
@@ -1,4 +1,4 @@
-{% extends "base/base.html" %}
+{% extends "base/fetc_base.html" %}
{% load vue_tags %}
{% load static %}
@@ -9,7 +9,7 @@
{% block html_head %}
{# This template loads in either the dev or prod Vue library, depending on settings.DEBUG #}
- {% include 'uil.vue/vueloader.html' %}
+ {% include 'cdh.vue/vueloader.html' %}
{# Load in the base component FancyList #}
{% load_vue_component 'FancyList' %}
{% include 'proposals/vue_templates/proposal_list.html' %}
@@ -22,7 +22,7 @@
{% endblock %}
{% block content %}
-
+
{{ title }}
{% static "proposals/images/page_white_go.png" as img_next %}
diff --git a/proposals/templates/proposals/proposal_pdf.html b/proposals/templates/proposals/proposal_pdf.html
index 423850555..735c27518 100644
--- a/proposals/templates/proposals/proposal_pdf.html
+++ b/proposals/templates/proposals/proposal_pdf.html
@@ -4,7 +4,7 @@
{% load fetc_filters %}
{% load proposal_filters %}
{% load get_field_name %}
-{% load uil_filters %}
+{% load cdh_filters %}
{% block extra_style %}