From d484c7db3319b845a24b23a917dffa32702e5cdd Mon Sep 17 00:00:00 2001 From: "J.-S. Caux" <J.S.Caux@uva.nl> Date: Wed, 23 Mar 2016 08:28:24 +0100 Subject: [PATCH] Add contributor_info page --- SciPost_v1/urls.py | 1 + comments/models.py | 3 +- .../templates/scipost/contributor_info.html | 81 +++++++++++++++++++ scipost/templates/scipost/personal_page.html | 6 ++ scipost/urls.py | 3 + scipost/views.py | 17 ++++ 6 files changed, 110 insertions(+), 1 deletion(-) create mode 100644 scipost/templates/scipost/contributor_info.html diff --git a/SciPost_v1/urls.py b/SciPost_v1/urls.py index ed881effc..fdddfa098 100644 --- a/SciPost_v1/urls.py +++ b/SciPost_v1/urls.py @@ -19,6 +19,7 @@ from django.contrib import admin urlpatterns = [ url(r'^admin/', include(admin.site.urls)), url(r'^', include('scipost.urls', namespace="scipost")), + url(r'^contributor/', include('scipost.urls', namespace="scipost")), url(r'^commentaries/', include('commentaries.urls', namespace="commentaries")), url(r'^commentary/', include('commentaries.urls', namespace="commentaries")), url(r'^comments/', include('comments.urls', namespace="comments")), diff --git a/comments/models.py b/comments/models.py index 7dadc1e39..b19b63187 100644 --- a/comments/models.py +++ b/comments/models.py @@ -89,7 +89,8 @@ class Comment(models.Model): output = '<div class="commentid">\n' output += '<h3><a id="comment_id' + str(self.id) + '">' + str(self.id) + '</a>' if not self.anonymous: - output += ' by ' + self.author.user.first_name + ' ' + self.author.user.last_name + output += (' by <a href="/contributor/' + str(self.author.id) + '">' + + self.author.user.first_name + ' ' + self.author.user.last_name + '</a>') output += '</h3>' if self.in_reply_to: output += '<h4>in reply to ' + str(self.in_reply_to.id) + '</h4>\n' diff --git a/scipost/templates/scipost/contributor_info.html b/scipost/templates/scipost/contributor_info.html new file mode 100644 index 000000000..f0dcdae39 --- /dev/null +++ b/scipost/templates/scipost/contributor_info.html @@ -0,0 +1,81 @@ +{% extends 'scipost/base.html' %} + +{% block pagetitle %}: personal page{% endblock pagetitle %} + +{% block headsup %} + +<script> + $(document).ready(function(){ + $("#mycommentsbutton").click(function(){ + $("#mycommentslist").toggle(); + }); + $("#myauthorrepliesbutton").click(function(){ + $("#myauthorreplieslist").toggle(); + }); + }); +</script> + +{% endblock headsup %} + +{% block bodysup %} + +<section> + <div class="flex-greybox"> + <h1>Contributor info</h1> + </div> + <div class="row"> + <div class="col-6"> + {{ contributor.as_table|safe }} + </div> + </div> +</section> + +<section> + <hr class="hr12"> + <div class="flex-greybox"> + <h1>SciPost Submissions</h1> + </div> +</section> + +<section> + <hr class="hr12"> + <div class="flex-greybox"> + <h1>SciPost Commentaries</h1> + </div> +</section> + +{% if contributor_comments %} +<section> + <hr class="hr12"> + <div class="flex-greybox"> + <h1>Comments</h1> + <button id="mycommentsbutton">View/hide comments</button> + </div> + <div id="mycommentslist"> + <ul> + {% for comment in contributor_comments %} + {{ comment.header_as_li|safe }} + {% endfor %} + </ul> + </div> +</section> +{% endif %} + +{% if own_authorreplies %} +<section> + <hr class="hr12"> + <div class="flex-greybox"> + <h1>Your Author Replies</h1> + <button id="myauthorrepliesbutton">View/hide author replies</button> + </div> + <div id="myauthorreplieslist"> + <ul> + {% for reply in contributor_authorreplies %} + {{ own_reply.header_as_li|safe }} + {% endfor %} + </ul> + </div> +</section> +{% endif %} + +{% endblock bodysup %} diff --git a/scipost/templates/scipost/personal_page.html b/scipost/templates/scipost/personal_page.html index 8b1f5f161..02405addb 100644 --- a/scipost/templates/scipost/personal_page.html +++ b/scipost/templates/scipost/personal_page.html @@ -90,6 +90,12 @@ <div class="flex-greybox"> <h1>SciPost Submissions</h1> </div> + {% if submission_authorships_to_claim %} + <ul> + {% for sub in submission_authorships_to_claim %} + {{ submission.header_as_li|safe %} + {% endfor %} + {% endif %} <ul> <li><a href="{% url 'submissions:submit_manuscript' %}">Submit an arXiv preprint to a SciPost Journal</a></li> </ul> diff --git a/scipost/urls.py b/scipost/urls.py index 1ff41c0d1..835a76537 100644 --- a/scipost/urls.py +++ b/scipost/urls.py @@ -37,4 +37,7 @@ urlpatterns = [ url(r'^reset_password/$', views.reset_password, name='reset_password'), url(r'^update_personal_data$', views.update_personal_data, name='update_personal_data'), url(r'^update_personal_data_ack$', TemplateView.as_view(template_name='scipost/update_personal_data_ack.html'), name='update_personal_data_ack'), + + # Contributor info + url(r'^(?P<contributor_id>[0-9]+)$', views.contributor_info, name="contributor_info"), ] diff --git a/scipost/views.py b/scipost/views.py index 650304762..8983e98fc 100644 --- a/scipost/views.py +++ b/scipost/views.py @@ -231,6 +231,8 @@ def personal_page(request): nr_author_replies_to_vet = AuthorReply.objects.filter(status=0).count() nr_reports_to_vet = Report.objects.filter(status=0).count() nr_thesislink_requests_to_vet = ThesisLink.objects.filter(vetted=False).count() + # Verify if there exist objects authored by this contributor, whose authorship hasn't been claimed yet + submission_authorships_to_claim = Submission.objects.filter(author_list__contains=contributor.user.last_name) own_comments = Comment.objects.filter(author=contributor).order_by('-date_submitted') own_authorreplies = AuthorReply.objects.filter(author=contributor).order_by('-date_submitted') context = {'contributor': contributor, 'nr_reg_to_vet': nr_reg_to_vet, @@ -241,6 +243,7 @@ def personal_page(request): 'nr_reports_to_vet': nr_reports_to_vet, 'nr_submissions_to_process': nr_submissions_to_process, 'nr_thesislink_requests_to_vet': nr_thesislink_requests_to_vet, + 'submission_authorships_to_claim': submission_authorships_to_claim, 'own_comments': own_comments, 'own_authorreplies': own_authorreplies} return render(request, 'scipost/personal_page.html', context) else: @@ -308,3 +311,17 @@ def update_personal_data(request): return render(request, 'scipost/login.html', {'form': form}) +def contributor_info(request, contributor_id): + if request.user.is_authenticated(): + contributor = Contributor.objects.get(pk=contributor_id) + contributor_comments = Comment.objects.filter(author=contributor, status__gte=1).order_by('-date_submitted') + contributor_authorreplies = AuthorReply.objects.filter(author=contributor, status__gte=1).order_by('-date_submitted') + context = {'contributor': contributor, + 'contributor_comments': contributor_comments, + 'contributor_authorreplies': contributor_authorreplies} + return render(request, 'scipost/contributor_info.html', context) + else: + form = AuthenticationForm() + context = {'form': form} + return render(request, 'scipost/login.html', context) + -- GitLab