diff --git a/.gcloudignore b/.gcloudignore index 5944fd05..b69d3d16 100644 --- a/.gcloudignore +++ b/.gcloudignore @@ -35,6 +35,13 @@ # Ignored by the build system /setup.cfg +# IDE configs +.idea +.vscode + +# Virtual env +/venv/ + # Other /rest_api/fixtures/ /static/CACHE/ diff --git a/catalog/static/catalog/pgs.scss b/catalog/static/catalog/pgs.scss index accdf7e8..8ce26f90 100644 --- a/catalog/static/catalog/pgs.scss +++ b/catalog/static/catalog/pgs.scss @@ -1257,6 +1257,11 @@ td > ul { font-size: 14px; padding: 3px 8px; } +.btn-pgs-2-small { + @extend .btn-pgs-2; + font-size:14px !important; + padding: 3px 8px; +} .btn-pgs-like { i { diff --git a/catalog/templates/catalog/pgp.html b/catalog/templates/catalog/pgp.html index aa1d3060..de7dac25 100644 --- a/catalog/templates/catalog/pgp.html +++ b/catalog/templates/catalog/pgp.html @@ -21,6 +21,9 @@

PGS Publication: {% endif %} {{ publication.id }}

+ {% if is_pgs_curation_site %} + Open in Curation Tracker + {% endif %} diff --git a/curation_tracker/admin.py b/curation_tracker/admin.py index b43aff13..4803da1e 100644 --- a/curation_tracker/admin.py +++ b/curation_tracker/admin.py @@ -1,26 +1,24 @@ -from django.contrib import admin -from django.utils.html import format_html +import datetime as dt +import sys +from typing import List + from django import forms -from django.urls import path -from django.shortcuts import render -from django.http import HttpResponseRedirect -from django.db import models, transaction -from django.utils import timezone -from django.core.exceptions import ValidationError +from django.contrib import admin, messages from django.contrib.admin import DateFieldListFilter -# Register your models here. -from .models import * -from catalog.models import Publication -from curation_tracker.litsuggest import litsuggest_fileupload_to_annotation_imports, annotation_to_dict, dict_to_annotation_import, annotation_import_to_dict, CurationPublicationAnnotationImport -from pgs_web import constants from django.contrib.auth.decorators import login_required, permission_required +from django.core.exceptions import ValidationError +from django.db import transaction +from django.http import HttpResponseRedirect, JsonResponse +from django.shortcuts import render +from django.urls import path from django.utils.decorators import method_decorator -from django.http import JsonResponse +from django.utils.html import format_html -from typing import List -import re -import datetime as dt -import sys +from catalog.models import Publication +from curation_tracker.litsuggest import litsuggest_fileupload_to_annotation_imports, annotation_to_dict, \ + dict_to_annotation_import, annotation_import_to_dict, CurationPublicationAnnotationImport +# Register your models here. +from .models import * admin.site.site_header = "PGS Catalog - Curation Tracker" admin.site.site_title = "PGS Catalog - Curation Tracker" @@ -493,7 +491,8 @@ def get_urls(self): path('import-litsuggest/', login_required(self.import_litsuggest, login_url='/admin/login/')), path('import-litsuggest/confirm_preview', login_required(self.confirm_litsuggest_preview, login_url='/admin/login/')), path('import-litsuggest/confirm_formset', login_required(self.confirm_litsuggest_formset, login_url='/admin/login/')), - path('/contact-author/', login_required(self.contact_author, login_url='/admin/login/')) + path('/contact-author/', login_required(self.contact_author, login_url='/admin/login/')), + path('by_pgp_id/', login_required(self.by_pgp_id, login_url='/admin/login/')) ] return my_urls + urls @@ -748,6 +747,16 @@ def confirm_litsuggest_formset(self,request): del request.session['triage_info'] return HttpResponseRedirect('/admin/curation_tracker/curationpublicationannotation') + + @method_decorator(permission_required('curation_tracker.change_curationpublicationannotation', raise_exception=True)) + def by_pgp_id(self, request, pgp_id): + try: + annotation = CurationPublicationAnnotation.objects.get(pgp_id=pgp_id) + num = annotation.num + return HttpResponseRedirect('/admin/curation_tracker/curationpublicationannotation/' + str(num)) + except CurationPublicationAnnotation.DoesNotExist: + messages.error(request, "No annotation associated with '{}'".format(pgp_id)) + return HttpResponseRedirect('/admin/curation_tracker/curationpublicationannotation') display_pgp_id.short_description = 'PGP ID' display_study_name.short_description = 'Study Name' diff --git a/curation_tracker/static/curation_tracker/pgs_edit_curation_annotation_addon.js b/curation_tracker/static/curation_tracker/pgs_edit_curation_annotation_addon.js index a936dd78..024ac202 100644 --- a/curation_tracker/static/curation_tracker/pgs_edit_curation_annotation_addon.js +++ b/curation_tracker/static/curation_tracker/pgs_edit_curation_annotation_addon.js @@ -9,6 +9,21 @@ function setError(error){ } } +function goToPGP(new_window){ + setError(''); + var pgp_id = $('#id_pgp_id').val(); + if(pgp_id){ + var url = '/publication/'+pgp_id; + if(new_window){ + window.open(url); + } else { + window.location = url; + } + } else { + alert('Please provide a PGP ID first'); + } +} + function goToPublication(){ setError(''); var doi = $('#id_doi').val(); @@ -122,6 +137,12 @@ function requestAuthorData(){ } $(document).ready(function(){ + // Adding 'go to PGS Catalog publication' button after the PGP id field + var pgp_id_div = $('div.form-row.field-pgp_id > div'); + pgp_id_div.addClass('flex-container'); + pgp_id_div.find(">:first-child").addClass('fieldBox'); + pgp_id_div.append('
Go to PGS Catalog publication
'); + // Adding 'go to publication' and 'Autofill' buttons after the DOI and PMID form fields $('div.form-row.field-doi.field-PMID > div.flex-container').append('
Go to publication
    ');