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):
}
initial = {}
if request.session.get('session_acad_field_slug', None):
context['session_acad_field'] = AcademicField.objects.get(
slug=request.session.get('session_acad_field_slug'))
initial['acad_field'] = context['session_acad_field']
if request.session.get('session_specialty_slug', None):
context['session_specialty'] = Specialty.objects.get(
slug=request.session.get('session_specialty_slug'))
try:
context['session_acad_field'] = AcademicField.objects.get(
slug=request.session.get('session_acad_field_slug'))
initial['acad_field_slug'] = request.session.get('session_acad_field_slug')
except AcademicField.DoesNotExist:
context['session_acad_field'] = None
context['session_acad_field_form'] = SessionAcademicFieldForm(initial=initial)
return context
......@@ -10,13 +10,39 @@ from crispy_bootstrap5.bootstrap5 import FloatingField
from dal import autocomplete
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):
acad_field = forms.ModelChoiceField(
queryset=AcademicField.objects.all(),
label='Academic Field'
# acad_field = forms.ModelChoiceField(
# queryset=AcademicField.objects.all(),
# 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):
......@@ -25,7 +51,7 @@ class SessionAcademicFieldForm(forms.Form):
self.helper.disable_csrf = True
self.helper.show_errors = True
self.helper.layout = Layout(
Div(FloatingField('acad_field'))
Div(FloatingField('acad_field_slug'))
)
......
......@@ -30,10 +30,15 @@ def set_session_acad_field(request):
"""Set the Academic Field to be viewed in the current user session."""
form = SessionAcademicFieldForm(request.GET or None)
if form.is_valid():
request.session['session_acad_field_slug'] = form.cleaned_data['acad_field'].slug
form = SessionAcademicFieldForm(initial={
'acad_field': AcademicField.objects.get(slug=request.session['session_acad_field_slug'])
})
request.session['session_acad_field_slug'] = form.cleaned_data['acad_field_slug']
try:
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(
request,
'ontology/session_acad_field_form.html',
......
......@@ -287,10 +287,10 @@ header .nav-item {
#session_acad_field_form {
div #div_id_acad_field {
div #div_id_acad_field_slug {
margin: 0rem !important;
#id_acad_field {
#id_acad_field_slug {
border: 2px solid $scipost-lightblue;
border-radius: 2px;
background-color: $scipost-darkblue;
......
{% load journals_extras %}
<ul class="list-group list-group-flush px-3 mb-3">
{% for publication in publications %}
<li class="list-group-item py-2">
......@@ -9,3 +11,20 @@
</li>
{% endfor %}
</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 @@
{% load render_bundle from webpack_loader %}
{% load static %}
{% block headsup %}
{{ block.super }}
<style>
......@@ -25,6 +26,7 @@
{% block pagetitle %}Homepage{% endblock pagetitle %}
{% block content %}
<div class="row">
<div class="col-md-4">
<!-- Latest publications -->
......@@ -37,7 +39,6 @@
hx-trigger="load, session-acad-field-set from:body"
>
</div>
<p class="mb-3 px-3"><a href="{% url 'journals:publications' %}">View all Publications</a></p>
</div><!-- End latest publications -->
</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