diff --git a/partners/migrations/0034_auto_20171003_2109.py b/partners/migrations/0034_auto_20171003_2109.py new file mode 100644 index 0000000000000000000000000000000000000000..706955dfa76a33492164a1cbe974084c797e12e2 --- /dev/null +++ b/partners/migrations/0034_auto_20171003_2109.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.4 on 2017-10-03 19:09 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('partners', '0033_auto_20171003_2058'), + ] + + operations = [ + migrations.AlterField( + model_name='petition', + name='signatories', + field=models.ManyToManyField(blank=True, related_name='petitions', to='scipost.Contributor'), + ), + ] diff --git a/partners/models.py b/partners/models.py index e17708d907d3265d8b83767358d47a0e9d080e7b..442ea826182750a34d23e9ab95d5a575dbe56c09 100644 --- a/partners/models.py +++ b/partners/models.py @@ -44,7 +44,9 @@ class Petition(models.Model): slug = models.SlugField() headline = models.CharField(max_length=256) statement = models.TextField() - signatories = models.ManyToManyField('scipost.Contributor', related_name='petitions') + signatories = models.ManyToManyField('scipost.Contributor', + related_name='petitions', + blank=True) diff --git a/partners/templates/partners/petition.html b/partners/templates/partners/petition.html index fe00c9e01421d85894d4c045348ef2b094c29731..04dc987409fcd4271ccfcf336e7c474bc9128ace 100644 --- a/partners/templates/partners/petition.html +++ b/partners/templates/partners/petition.html @@ -12,29 +12,39 @@ <div class="row"> <div class="col-12"> - <h1 class="highlight">SciPost Supporting Partners</h1> - <h2>{{ petition.headline }}</h2> - {{ petition.statement }} - {% if request.user not in petition.signatories %} - <h3><a href="{% url 'partners:sign_petition' slug=petition.slug contributor_id=contributor.id %}">Sign this petition</a></h3> + <div class="col-md-10 col-lg-7"> + <h1 class="highlight">{{ petition.headline }}</h1> + <p>{{ petition.statement }}</p> + {% if request.user.is_authenticated %} + {% if not is_signed %} + <h3><a href="{% url 'partners:sign_petition' slug=petition.slug %}">Click here to sign this petition</a></h3> {% else %} - <h3>Thanks for signing this petition.</h3> + <h3>Thank you for signing this petition!</h3> {% endif %} + {% else %} + <h3>You must be logged in to sign this petition</h3> + {% endif %} + </div> </div> </div> <div class="row"> <div class="col-12"> - <h2>Signatories</h2> - <table class="table"> - {% for signatory in petition.signatories %} - <tr> - <td>{{ signatory.last_name }}</td> - <td>{{ signatory.first_name }}</td> - <td>{{ signatory.institution }}</td> - </tr> - {% endfor %} - </table> + <div class="col-md-10"> + <h2>Signatories</h2> + <table class="table"> + {% for signatory in petition.signatories.all %} + <tr> + <td>{{ signatory.user.last_name }}</td> + <td>{{ signatory.user.first_name }}</td> + <td>{{ signatory.affiliation }}</td> + <td>{{ signatory.country_of_employment }}</td> + </tr> + {% empty %} + <tr><td>No signatories found</td></tr> + {% endfor %} + </table> + </div> </div> </div> @@ -58,3 +68,6 @@ </div> </div> {% endif %} + + +{% endblock content %} diff --git a/partners/templates/partners/petition_email.html b/partners/templates/partners/petition_email.html index a91a32ab08fe5315d2d4e254b335cea8228d917c..2b4a5571a644d10d9e004121f0fedc2fc1f16442 100644 --- a/partners/templates/partners/petition_email.html +++ b/partners/templates/partners/petition_email.html @@ -1,14 +1,16 @@ Dear ...%0D%0A %0D%0A -I am writing to draw your attention to SciPost, a publishing initiative that is currently helping to transform the academic publishing industry.%0D%0A +[PLEASE WRITE A PERSONALIZED MESSAGE]%0D%0A +%0D%0A +Here under, you will find basic information about SciPost and how you can support it.%0D%0A +%0D%0A +Sincerely,%0D%0A +[YOUR SIGNATURE]%0D%0A +%0D%0A +%0D%0A %0D%0A SciPost (https://scipost.org) is a top-quality next-generation Open Access publication portal managed by professional scientists. Its principles, ideals and implementation can be found at https://scipost.org/about and https://scipost.org/FAQ.%0D%0A %0D%0A SciPost follows a different funding model than most traditional publishers. It operates on an entirely not-for-profit basis, and charges neither subscription fees nor article processing charges; instead, its activities are financed through a cost-slashing consortial model.%0D%0A %0D%0A By making a small financial commitment, the institutions and organizations that benefit from SciPost’s activities can become Supporting Partners. This enables SciPost to perform all of its publication-related activities, maintain its online portal and implement its long-term development plan. Details of the consortial funding scheme and how to join can be found at https://scipost.org/partners or by emailing partners@scipost.org.%0D%0A -%0D%0A -My work as an active professional scientist greatly benefits from SciPost's activities, and I recommend that you give this initiative your concrete backing by becoming one of its Supporting Partners.%0D%0A -%0D%0A -Many thanks for your consideration,%0D%0A -[your signature] diff --git a/partners/urls.py b/partners/urls.py index 073f5fdb7cfe49e3f3eb7c33b1961c12c9808ac5..a1771a0ea50786ad75905a7f8a665dd89e0de0b5 100644 --- a/partners/urls.py +++ b/partners/urls.py @@ -4,7 +4,8 @@ from . import views urlpatterns = [ url(r'^$', views.supporting_partners, name='partners'), - url(r'^$', views.petition, name='petition'), + url(r'^petition/(?P<slug>[-\w]+)/sign$', views.sign_petition, name='sign_petition'), + url(r'^petition/(?P<slug>[-\w]+)$', views.petition, name='petition'), url(r'^dashboard$', views.dashboard, name='dashboard'), url(r'^membership_request$', views.membership_request, name='membership_request'), url(r'^process_contact_requests$', views.process_contact_requests, name='process_contact_requests'), diff --git a/partners/views.py b/partners/views.py index 4f963202d53c30557d839593ad3f265444e041cf..23d9de0fc9d8ae62d66215a6d56d057d1b63ded8 100644 --- a/partners/views.py +++ b/partners/views.py @@ -41,11 +41,23 @@ def supporting_partners(request): def petition(request, slug): petition = get_object_or_404(Petition, slug=slug) + is_signed = False + if request.user.is_authenticated(): + is_signed = petition.signatories.filter(user=request.user).count() > 0 context = { - 'petition', petition + 'petition': petition, + 'is_signed': is_signed } return render(request, 'partners/petition.html', context) +@login_required +def sign_petition(request, slug): + petition = get_object_or_404(Petition, slug=slug) + petition.signatories.add(request.user.contributor) + petition.save() + messages.success(request, ('<h3>Many thanks for signing!</h3>')) + return redirect(reverse('partners:petition', kwargs={'slug': slug})) + @login_required @permission_required('scipost.can_read_partner_page', return_403=True) diff --git a/scipost/static/scipost/SPB/SciPost_Supporting_Partners_Board_Prospectus.pdf b/scipost/static/scipost/SPB/SciPost_Supporting_Partners_Board_Prospectus.pdf index fda1b2d26f95987463dd35c19f108a11a713a93b..a601150698bfcb5a3d4070d6176752e451f3c1fe 100644 Binary files a/scipost/static/scipost/SPB/SciPost_Supporting_Partners_Board_Prospectus.pdf and b/scipost/static/scipost/SPB/SciPost_Supporting_Partners_Board_Prospectus.pdf differ