diff --git a/partners/forms.py b/partners/forms.py index d44fdf8dbd2a5c3a12ba25535140c70bf53efd78..82958e6d33d9012a3b0ccaed96a520d0eaec431f 100644 --- a/partners/forms.py +++ b/partners/forms.py @@ -14,6 +14,8 @@ from django_countries import countries from django_countries.widgets import CountrySelectWidget from django_countries.fields import LazyTypedChoiceField +from ajax_select.fields import AutoCompleteSelectField + from .constants import PARTNER_KINDS, PROSPECTIVE_PARTNER_PROCESSED, CONTACT_TYPES,\ PARTNER_STATUS_UPDATE, REQUEST_PROCESSED, REQUEST_DECLINED, CONTACT_GENERAL from .models import Partner, ProspectivePartner, ProspectiveContact, ProspectivePartnerEvent,\ @@ -149,6 +151,7 @@ class PartnerForm(forms.ModelForm): model = Partner fields = ( 'institution', + 'organization', 'status', 'main_contact' ) diff --git a/partners/migrations/0007_partner_organization.py b/partners/migrations/0007_partner_organization.py new file mode 100644 index 0000000000000000000000000000000000000000..173e7d95e4cff8114b58377e600d437b68febb46 --- /dev/null +++ b/partners/migrations/0007_partner_organization.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.4 on 2018-07-10 07:23 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('partners', '0006_auto_20180708_2123'), + ] + + operations = [ + migrations.AddField( + model_name='partner', + name='organization', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='partners.Organization'), + ), + ] diff --git a/partners/models.py b/partners/models.py index 1754be423dca05414f356bdd803476b79e737fec..c51f57f5e77560c6733ca387c1f18adbed2c2789 100644 --- a/partners/models.py +++ b/partners/models.py @@ -293,6 +293,8 @@ class Partner(models.Model): """ institution = models.ForeignKey('partners.Institution', on_delete=models.CASCADE, blank=True, null=True) + organization = models.ForeignKey('partners.Organization', on_delete=models.CASCADE, + blank=True, null=True) status = models.CharField(max_length=16, choices=PARTNER_STATUS, default=PARTNER_INITIATED) main_contact = models.ForeignKey('partners.Contact', on_delete=models.SET_NULL, blank=True, null=True, related_name='partner_main_contact') diff --git a/partners/templates/partners/_organization_card.html b/partners/templates/partners/_organization_card.html index 4f65730d1b7f4c48d35ffff6d9da799190527cc8..bd3306641f9a030f4d21511e8820ce0fee17e91f 100644 --- a/partners/templates/partners/_organization_card.html +++ b/partners/templates/partners/_organization_card.html @@ -71,6 +71,33 @@ <div class="tab-pane pt-4" id="partnership-{{ org.id }}" role="tabpanel" aria-labelledby="partnership-{{ org.id }}-tab"> <h3>Partnership history:</h3> + {% if org.partner.agreements %} + {% if org.partner.agreements.now_active %} + <p>This organization is currently a SciPost Supporting Partner.</p> + {% else %} + <p>This organization is currently <span class="text-danger">not</span> a SciPost Supporting Partner.</p> + {% endif %} + <table class="table"> + <thead> + <th>Status</th> + <th>Duration</th> + <th>Start date</th> + <th>Contribution/year</th> + </thead> + <tbody> + {% for agreement in org.partner.agreements %} + <tr> + <td>{{ agreement.get_status_display }}</td> + <td>{{ agreement.get_duration_display }}</td> + <td>{{ agreement.start_date }}</td> + <td>{{ agreement.offered_yearly_contribution }}€</td> + </tr> + {% endfor %} + </tbody> + </table> + {% else %} + <p>This organization has not yet become a SciPost Supporting Partner.</p> + {% endif %} </div> <div class="tab-pane pt-4" id="manage-{{ org.id }}" role="tabpanel" aria-labelledby="manage-{{ org.id }}-tab"> diff --git a/partners/templates/partners/_partner_card.html b/partners/templates/partners/_partner_card.html index 718c522dbde599e9eaab4bb39c22aa33c96b9e50..c04961e6755bfb5dcae126347a7dba9a9d6e1008 100644 --- a/partners/templates/partners/_partner_card.html +++ b/partners/templates/partners/_partner_card.html @@ -26,7 +26,9 @@ <div class="col-md-3"> <h3>Actions</h3> <ul> - <li><a href="{% url 'partners:partner_edit' partner.id %}">Edit Partner</a></li> + <li><a href="{% url 'partners:partner_edit' partner.id %}">Edit Partner</a> + {% if not partner.organization %}<span class="text-danger">please specify the Organization{% endif %} +</li> <li><a href="{% url 'partners:institution_edit' partner.institution.id %}">Edit Institution</a></li> <li><a href="{% url 'partners:partner_add_contact' partner.id %}">Add Contact</a></li> <li><a href="{{partner.get_absolute_url}}">View events ({{partner.events.count}})</a></li> diff --git a/partners/views.py b/partners/views.py index 0643c0ccd7825bb3676c5be7398e11e2f4c593f6..11b5e3769d650b42da1d9a494c3168feb7cb9a29 100644 --- a/partners/views.py +++ b/partners/views.py @@ -34,7 +34,8 @@ from .forms import ProspectivePartnerForm, ProspectiveContactForm,\ PartnerForm, ContactForm, ContactFormset, ContactModelFormset,\ NewContactForm, InstitutionForm, ActivationForm, PartnerEventForm,\ MembershipAgreementForm, RequestContactForm, RequestContactFormSet,\ - ProcessRequestContactForm, PartnersAttachmentFormSet, PartnersAttachmentForm + ProcessRequestContactForm, PartnersAttachmentFormSet, PartnersAttachmentForm,\ + PartnerSpecifyOrganizationForm from journals.models import Publication