SciPost Code Repository

Skip to content
Snippets Groups Projects
Commit e9b4609d authored by Jean-Sébastien Caux's avatar Jean-Sébastien Caux
Browse files

Improve logic and display

parent e0b54672
No related branches found
No related tags found
No related merge requests found
...@@ -17,11 +17,11 @@ def ontology_processor(request): ...@@ -17,11 +17,11 @@ def ontology_processor(request):
} }
initial = {} initial = {}
if request.session.get('session_acad_field_slug', None): if request.session.get('session_acad_field_slug', None):
context['session_acad_field'] = AcademicField.objects.get( try:
slug=request.session.get('session_acad_field_slug')) context['session_acad_field'] = AcademicField.objects.get(
initial['acad_field'] = context['session_acad_field'] slug=request.session.get('session_acad_field_slug'))
if request.session.get('session_specialty_slug', None): initial['acad_field_slug'] = request.session.get('session_acad_field_slug')
context['session_specialty'] = Specialty.objects.get( except AcademicField.DoesNotExist:
slug=request.session.get('session_specialty_slug')) context['session_acad_field'] = None
context['session_acad_field_form'] = SessionAcademicFieldForm(initial=initial) context['session_acad_field_form'] = SessionAcademicFieldForm(initial=initial)
return context return context
...@@ -10,13 +10,39 @@ from crispy_bootstrap5.bootstrap5 import FloatingField ...@@ -10,13 +10,39 @@ from crispy_bootstrap5.bootstrap5 import FloatingField
from dal import autocomplete from dal import autocomplete
from .constants import TOPIC_RELATIONS_ASYM from .constants import TOPIC_RELATIONS_ASYM
from .models import AcademicField, Tag, Topic from .models import Branch, AcademicField, Tag, Topic
def academic_field_slug_choices():
choices = (
('All', (
('all', 'All'),
)),
)
for branch in Branch.objects.all():
if branch.name == 'Multidisciplinary':
continue
subchoices = ()
for acad_field in branch.academic_fields.all():
subchoices += (
(acad_field.slug, acad_field.name),
)
choices += (
(branch.name, subchoices),
)
return choices
class SessionAcademicFieldForm(forms.Form): class SessionAcademicFieldForm(forms.Form):
acad_field = forms.ModelChoiceField( # acad_field = forms.ModelChoiceField(
queryset=AcademicField.objects.all(), # queryset=AcademicField.objects.all(),
label='Academic Field' # label='Academic Field',
# empty_label=None
# choices=academic_field_choices()
# )
acad_field_slug = forms.ChoiceField(
label='Academic Field',
choices=academic_field_slug_choices()
) )
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
...@@ -25,7 +51,7 @@ class SessionAcademicFieldForm(forms.Form): ...@@ -25,7 +51,7 @@ class SessionAcademicFieldForm(forms.Form):
self.helper.disable_csrf = True self.helper.disable_csrf = True
self.helper.show_errors = True self.helper.show_errors = True
self.helper.layout = Layout( self.helper.layout = Layout(
Div(FloatingField('acad_field')) Div(FloatingField('acad_field_slug'))
) )
......
...@@ -30,10 +30,15 @@ def set_session_acad_field(request): ...@@ -30,10 +30,15 @@ def set_session_acad_field(request):
"""Set the Academic Field to be viewed in the current user session.""" """Set the Academic Field to be viewed in the current user session."""
form = SessionAcademicFieldForm(request.GET or None) form = SessionAcademicFieldForm(request.GET or None)
if form.is_valid(): if form.is_valid():
request.session['session_acad_field_slug'] = form.cleaned_data['acad_field'].slug request.session['session_acad_field_slug'] = form.cleaned_data['acad_field_slug']
form = SessionAcademicFieldForm(initial={ try:
'acad_field': AcademicField.objects.get(slug=request.session['session_acad_field_slug']) initial = {
}) 'acad_field_slug': AcademicField.objects.get(
slug=request.session['session_acad_field_slug']).slug
}
except AcademicField.DoesNotExist:
initial = {}
form = SessionAcademicFieldForm(initial=initial)
response = render( response = render(
request, request,
'ontology/session_acad_field_form.html', 'ontology/session_acad_field_form.html',
......
...@@ -287,10 +287,10 @@ header .nav-item { ...@@ -287,10 +287,10 @@ header .nav-item {
#session_acad_field_form { #session_acad_field_form {
div #div_id_acad_field { div #div_id_acad_field_slug {
margin: 0rem !important; margin: 0rem !important;
#id_acad_field { #id_acad_field_slug {
border: 2px solid $scipost-lightblue; border: 2px solid $scipost-lightblue;
border-radius: 2px; border-radius: 2px;
background-color: $scipost-darkblue; background-color: $scipost-darkblue;
......
{% load journals_extras %}
<ul class="list-group list-group-flush px-3 mb-3"> <ul class="list-group list-group-flush px-3 mb-3">
{% for publication in publications %} {% for publication in publications %}
<li class="list-group-item py-2"> <li class="list-group-item py-2">
...@@ -9,3 +11,20 @@ ...@@ -9,3 +11,20 @@
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>
{% if not session_acad_field.journals.active|length > 0 %}
<div class="card m-2">
<div class="card-header text-center">
<h2 class="p-2 text-white bg-danger">We are not yet active in<br>{{ session_acad_field }}</h2>
</div>
<div class="card-body">
<h3>Interested in helping us set things up?</h3>
<p>
<a href="mailto:admin@{{ request.get_host }}">Email us</a>
your suggestions for Editorial Fellows.
</p>
</div>
</div>
{% else %}
<p class="mb-3 px-3"><a href="{% url 'journals:publications' %}">View all Publications</a></p>
{% endif %}
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
{% load render_bundle from webpack_loader %} {% load render_bundle from webpack_loader %}
{% load static %} {% load static %}
{% block headsup %} {% block headsup %}
{{ block.super }} {{ block.super }}
<style> <style>
...@@ -25,6 +26,7 @@ ...@@ -25,6 +26,7 @@
{% block pagetitle %}Homepage{% endblock pagetitle %} {% block pagetitle %}Homepage{% endblock pagetitle %}
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-4"> <div class="col-md-4">
<!-- Latest publications --> <!-- Latest publications -->
...@@ -37,7 +39,6 @@ ...@@ -37,7 +39,6 @@
hx-trigger="load, session-acad-field-set from:body" hx-trigger="load, session-acad-field-set from:body"
> >
</div> </div>
<p class="mb-3 px-3"><a href="{% url 'journals:publications' %}">View all Publications</a></p>
</div><!-- End latest publications --> </div><!-- End latest publications -->
</div> </div>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment