Skip to content

Commit

Permalink
Source reference selection form in the main form (#4014)
Browse files Browse the repository at this point in the history
* Add source reference form to main form

* Add source reference form in the sass form
  • Loading branch information
dimasciput committed Jun 25, 2024
1 parent 815ddba commit 0d4d75a
Show file tree
Hide file tree
Showing 15 changed files with 119 additions and 109 deletions.
6 changes: 5 additions & 1 deletion bims/static/js/non_requirejs/collection_form.js
Original file line number Diff line number Diff line change
Expand Up @@ -391,10 +391,14 @@ $(function () {
$input.unbind();
}
});
if (!$('#selected-source-reference').val()) {
isError = true;
alertMessage = 'You must select a source reference <br/>';
}
if ($('.observed:checkbox:checked').length === 0) {
if (!chemicalCollectionRecordCount) {
isError = true;
alertMessage = 'You must at least add one collection data';
alertMessage += 'You must at least add one collection data';
}
} else {
let alertDiv = $('.alert-danger');
Expand Down
4 changes: 2 additions & 2 deletions bims/static/js/non_requirejs/dashboard_buttons.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@ function dashboardClose(e, storageKey = '') {
} catch (e) {
window.location.href = '/map/';
}
} else if (previousUrl.indexOf('source-reference-form') > -1) {
window.history.go(-7);
} else if (previousUrl.indexOf('/abiotic/?') > -1) {
window.history.go(-6);
} else {
window.history.back();
}
Expand Down
8 changes: 6 additions & 2 deletions bims/templates/collections_form_page.html
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@
const chemicalCollectionRecordCount = null;
</script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
<script src="{% static "js/libs/jquery/jquery-3.3.1.min.js" %}"></script>
<script src="{% static "js/libs/jquery-ui-1.12.1/jquery-ui.min.js" %}"></script>

{% endblock %}

{% block body_content %}
Expand Down Expand Up @@ -330,6 +334,8 @@ <h2>Add {{ taxon_group_name }} data for site {% if location_site_code %}{{ locat
{% include 'collections_form_layouts/algae_biomass.html' %}
{% endif %}

{% include 'source_references/source_reference_select.html' %}

<div class="form-group rowa">
<div class="add-taxon-container">
<button id="add-taxon" type="button" class="btn btn-info">
Expand Down Expand Up @@ -580,8 +586,6 @@ <h5 class="modal-title">Add New Taxon</h5>
{% block foot %}

<!-- Plugin JavaScript -->
<script src="{% static "js/libs/jquery/jquery-3.3.1.min.js" %}"></script>
<script src="{% static "js/libs/jquery-ui-1.12.1/jquery-ui.min.js" %}"></script>
<script src="{% static "js/libs/openlayers-4.6.4/ol.js" %}"></script>
<script src="{% static "js/libs/bootstrap-4.0.0/js/bootstrap.min.js" %}"></script>
<script src="{% static 'js/utils/effect.js' %}"></script>
Expand Down
3 changes: 3 additions & 0 deletions bims/templates/map_page/side-panel-templates.html
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,9 @@
</div>
</div>
<% }); %>
<div>

</div>
<% if (is_sass_enabled && ecosystem_type && ecosystem_type == 'River') { %>
<div class="row" style="padding: 10px;">
<div class="col-sm-<% if (!add_data) { %>12<% } else { %>6<% } %>" style="padding-right: 0">
Expand Down
12 changes: 6 additions & 6 deletions bims/templates/site_visit/site_visit_detail.html
Original file line number Diff line number Diff line change
Expand Up @@ -239,13 +239,13 @@ <h2>Detail {{ taxon_group.name }} data for site {% if object.site.site_code %}{{
<div class="col-sm-10">
<div class="source-reference-wrapper">
{% if source_reference %}
<div style="font-weight: bold">{{ source_reference.reference_type }}</div>
{% if source_reference.reference_type == 'Published report or thesis' or source_reference.reference_type == 'Peer-reviewed scientific article' %}
<div>{{ source_reference.authors }} |
{{ source_reference.year }} |
{{ source_reference.title }}</div>
<div style="font-weight: bold">{{ source_reference.0.reference_type }}</div>
{% if source_reference.0.reference_type == 'Published report or thesis' or source_reference.0.reference_type == 'Peer-reviewed scientific article' %}
<div>{{ source_reference.0.authors }} |
{{ source_reference.0.year }} |
{{ source_reference.0.title }}</div>
{% else %}
<div>{{ source_reference }}</div>
<div>{{ source_reference.0 }}</div>
{% endif %}
{% endif %}
</div>
Expand Down
49 changes: 27 additions & 22 deletions bims/templates/site_visit/site_visit_update.html
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,11 @@
const chemicalCollectionRecordCount = '{{ object.chemical_collection_record.all.count }}';
</script>


<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
<script src="{% static "js/libs/jquery/jquery-3.3.1.min.js" %}"></script>
<script src="{% static "js/libs/jquery-ui-1.12.1/jquery-ui.min.js" %}"></script>

{% endblock %}

{% block body_content %}
Expand Down Expand Up @@ -187,26 +192,26 @@ <h2>Update {{ taxon_group.name }} data for site {% if object.site.site_code %}{{
</small>
</div>
</div>
<div class="form-group row">
<label for="data-source" class="col-sm-2">Source Reference</label>
<div class="col-sm-10">
<div class="source-reference-wrapper">
{% if source_reference %}
<div style="font-weight: bold">{{ source_reference.reference_type }}</div>
{% if source_reference.reference_type == 'Published report or thesis' or source_reference.reference_type == 'Peer-reviewed scientific article' %}
<div>{{ source_reference.authors }} |
{{ source_reference.year }} |
{{ source_reference.title }}</div>
{% else %}
<div>{{ source_reference }}</div>
{% endif %}
{% endif %}
</div>
<div><small class="text-muted">To update this value, click the
next button to go to the Source Reference form</small>
</div>
</div>
</div>
{# <div class="form-group row">#}
{# <label for="data-source" class="col-sm-2">Source Reference</label>#}
{# <div class="col-sm-10">#}
{# <div class="source-reference-wrapper">#}
{# {% if source_reference %}#}
{# <div style="font-weight: bold">{{ source_reference.reference_type }}</div>#}
{# {% if source_reference.reference_type == 'Published report or thesis' or source_reference.reference_type == 'Peer-reviewed scientific article' %}#}
{# <div>{{ source_reference.authors }} |#}
{# {{ source_reference.year }} |#}
{# {{ source_reference.title }}</div>#}
{# {% else %}#}
{# <div>{{ source_reference }}</div>#}
{# {% endif %}#}
{# {% endif %}#}
{# </div>#}
{# <div><small class="text-muted">To update this value, click the#}
{# next button to go to the Source Reference form</small>#}
{# </div>#}
{# </div>#}
{# </div>#}
{% if object.site.ecosystem_type == 'Wetland' %}
<div class="form-group row">
<label for="date"
Expand Down Expand Up @@ -362,6 +367,8 @@ <h2>Update {{ taxon_group.name }} data for site {% if object.site.site_code %}{{
{% include 'collections_form_layouts/algae_biomass.html' %}
{% endif %}

{% include 'source_references/source_reference_select.html' %}

<div class="form-group rowa">
<div class="add-taxon-container">
<button id="add-taxon" type="button" class="btn btn-info">
Expand Down Expand Up @@ -665,8 +672,6 @@ <h5 class="modal-title">Add New Taxon</h5>
</script>

<!-- Plugin JavaScript -->
<script src="{% static "js/libs/jquery/jquery-3.3.1.min.js" %}"></script>
<script src="{% static "js/libs/jquery-ui-1.12.1/jquery-ui.min.js" %}"></script>
<script src="{% static "js/libs/openlayers-4.6.4/ol.js" %}"></script>
<script src="{% static "js/libs/bootstrap-4.0.0/js/bootstrap.min.js" %}"></script>
<script src="{% static 'js/utils/effect.js' %}"></script>
Expand Down
14 changes: 8 additions & 6 deletions bims/templates/source_references/source_reference_select.html
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,6 @@
<textarea class="form-control" id="selected-source-reference" name="source_reference_title" disabled>{% if source_reference %}({{ source_reference.0.reference_type }}) - {{ source_reference.0 }}{% endif %}</textarea>
<input type="hidden" id="selected-source-reference-id" name="source_reference" {% if source_reference %}value="{{ source_reference.0.id }}"{% endif %}>
</div>
{% if source_reference %}
<button class="btn btn-primary" style="font-size: 13px; margin-top: 10px;" id="clear-source-reference">Clear</button>
{% endif %}
</div>
</div>

Expand Down Expand Up @@ -150,7 +147,13 @@ <h5 class="card-title"><%= data.link_template %></h5>

$('.add-source-reference').click(function () {
const urlParams = new URLSearchParams(window.location.search);
window.location.href = '/add-source-reference/?next=' + window.location.pathname + '?siteId=' + urlParams.get('siteId');
let nextUrl = window.location.pathname + '?siteId=' + urlParams.get('siteId');
if (urlParams.get('module')) {
nextUrl += '&' + urlParams.get('module');
}
let encodedNextUrl = encodeURIComponent(nextUrl);

window.location.href = '/add-source-reference/?next=' + encodedNextUrl;
})

function getSourceReferenceList() {
Expand Down Expand Up @@ -218,8 +221,7 @@ <h5 class="card-title"><%= data.link_template %></h5>

$('#clear-source-reference').click(function (e) {
e.preventDefault();
$('#selected-source-reference').val('');
$('#selected-source-reference-id').val('');
alert('test');
})

$(document).ready(function () {
Expand Down
15 changes: 3 additions & 12 deletions bims/views/collections_form.py
Original file line number Diff line number Diff line change
Expand Up @@ -600,6 +600,7 @@ def extra_post(self, post):
def post(self, request, *args, **kwargs):
post_data = request.POST.dict()
post_data['source_site'] = Site.objects.get_current().id
post_data['source_reference_id'] = request.POST.get('source_reference')
survey = add_survey_occurrences(
self, post_data, request.FILES.get('site-image', None))

Expand All @@ -617,17 +618,7 @@ def post(self, request, *args, **kwargs):
id=self.request.user.id
)
)
source_reference_url = (
'{base_url}?session={session}&'
'identifier={identifier}&next={next}'.format(
base_url=reverse('source-reference-form'),
session=session_uuid,
identifier=self.session_identifier,
next=next_url
)
)

redirect_url = source_reference_url
redirect_url = next_url

# Create a survey
if (
Expand All @@ -637,7 +628,7 @@ def post(self, request, *args, **kwargs):
redirect_url = '{base_url}?survey={survey_id}&next={next}'.format(
base_url=reverse('abiotic-form'),
survey_id=self.survey.id,
next=source_reference_url
next=next_url
)

self.extra_post(request.POST)
Expand Down
12 changes: 7 additions & 5 deletions bims/views/site_visit/base.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
import json

from django.views.generic import View
from django.db.models import Q
from django.db.models.functions import Length

from bims.models import SourceReference
from bims.models.biotope import Biotope
from bims.models.sampling_method import SamplingMethod
from bims.models.biological_collection_record import BiologicalCollectionRecord
Expand Down Expand Up @@ -165,12 +169,10 @@ def record_type(self):

def source_reference(self):
"""Get existing source reference"""
source_reference_records = self.collection_records.exclude(
return SourceReference.objects.filter(
id__in=self.collection_records.exclude(
source_reference__isnull=True
)
if source_reference_records.exists():
return source_reference_records[0].source_reference
return None
).values_list('source_reference', flat=True))

def get_context_data(self, **kwargs):
context = super(SiteVisitBaseView, self).get_context_data(**kwargs)
Expand Down
25 changes: 14 additions & 11 deletions bims/views/site_visit/update.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
from django.contrib.auth import get_user_model
from preferences import preferences

from bims.models import SourceReference
from bims.models.taxonomy import Taxonomy
from django.views.generic.edit import UpdateView
from django.urls import reverse
Expand Down Expand Up @@ -106,12 +107,18 @@ def form_valid(self, form):
abundance_type = form.data.get('abundance_type', None)
end_embargo_date = form.data.get('end_embargo_date', None)
wetland_indicator_status = form.data.get('wetland_indicator_status', None)
source_reference = form.data.get('source_reference', None)
owner = None
collector_user = None
record_type_str = self._form_data(
form, 'record_type', ''
)

if source_reference:
source_reference = SourceReference.objects.get(
id=source_reference
)

if end_embargo_date:
end_embargo_date = parse(
timestr=end_embargo_date, dayfirst=True)
Expand Down Expand Up @@ -205,7 +212,8 @@ def form_valid(self, form):
wetland_indicator_status=wetland_indicator_status,
record_type=record_type,
sampling_effort_link=sampling_effort_measure,
end_embargo_date=end_embargo_date
end_embargo_date=end_embargo_date,
source_reference=source_reference
)

# Remove deleted collection records
Expand Down Expand Up @@ -267,7 +275,8 @@ def form_valid(self, form):
record_type=record_type,
hydroperiod=hydroperiod,
wetland_indicator_status=wetland_indicator_status,
end_embargo_date=end_embargo_date
end_embargo_date=end_embargo_date,
source_reference=source_reference,
)
)
if status:
Expand Down Expand Up @@ -392,21 +401,15 @@ def get_success_url(self):
'location_site': self.object.site,
'form': 'site-visit-form'
})
source_reference_url = reverse('source-reference-form') + (
'?session={session}&identifier={identifier}&next={next}'.format(
session=session_uuid,
next='/site-visit/detail/{}/'.format(self.object.id),
identifier=self.session_identifier
)
)
redirect_url = source_reference_url
next_url = '/site-visit/detail/{}/'.format(self.object.id)
redirect_url = next_url
if (
'river' in self.object.site.ecosystem_type.lower() or
preferences.SiteSetting.default_data_source == 'fbis'
):
redirect_url = '{base_url}?survey={survey_id}&next={next}'.format(
base_url=reverse('abiotic-form'),
survey_id=self.object.id,
next=source_reference_url
next=next_url
)
return redirect_url
7 changes: 6 additions & 1 deletion bims/views/source_reference.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
from rest_framework.response import Response
from rest_framework.generics import ListAPIView
from rest_framework.pagination import PageNumberPagination
from urllib.parse import unquote


from bims.utils.user import get_user_from_name
Expand Down Expand Up @@ -700,7 +701,11 @@ def get_context_data(self, **kwargs):
context['params'] = {
'reference_type': json.dumps(reference_type)
}.items()
context['past_url'] = self.request.GET.get('next')
encoded_next_url = self.request.GET.get('next', '')
next_url = ''
if encoded_next_url:
next_url = unquote(encoded_next_url)
context['past_url'] = next_url
return context

def form_valid(self, form):
Expand Down
7 changes: 7 additions & 0 deletions sass/static/js/sass_form.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,13 @@ $('#submit').click(function () {
scrollTop: 0}, 500);
return false;
}
if (!$('#selected-source-reference').val()) {
$frontendAlert.html('You must select a source reference').show();
$('html, body').animate({
scrollTop: 0}, 500);
$('#cancel-submit').click();
return false;
}
submitButton.addClass('disabled');
let submitMessage = submitButton.data('message');
if (submitMessage) {
Expand Down
12 changes: 6 additions & 6 deletions sass/templates/form_only_read_page.html
Original file line number Diff line number Diff line change
Expand Up @@ -131,13 +131,13 @@ <h2>
<div class="col-sm-10">
<div class="source-reference-wrapper">
{% if source_reference %}
<div style="font-weight: bold">{{ source_reference.reference_type }}</div>
{% if source_reference.reference_type == 'Published report or thesis' or source_reference.reference_type == 'Peer-reviewed scientific article' %}
<div>{{ source_reference.authors }} |
{{ source_reference.year }} |
{{ source_reference.title }}</div>
<div style="font-weight: bold">{{ source_reference.0.reference_type }}</div>
{% if source_reference.reference_type == 'Published report or thesis' or source_reference.0.reference_type == 'Peer-reviewed scientific article' %}
<div>{{ source_reference.0.authors }} |
{{ source_reference.0.year }} |
{{ source_reference.0.title }}</div>
{% else %}
<div>{{ source_reference }}</div>
<div>{{ source_reference.0 }}</div>
{% endif %}
{% endif %}
</div>
Expand Down
Loading

0 comments on commit 0d4d75a

Please sign in to comment.