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('');
+
// 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('');