From f160ba01bf51cc1b3e7078b5c14823ac8134cb71 Mon Sep 17 00:00:00 2001 From: "J.-S. Caux" <J.S.Caux@uva.nl> Date: Tue, 10 Jul 2018 10:17:53 +0200 Subject: [PATCH] Add Organization field to Partner --- partners/forms.py | 3 +++ .../migrations/0007_partner_organization.py | 21 +++++++++++++++ partners/models.py | 2 ++ .../partners/_organization_card.html | 27 +++++++++++++++++++ .../templates/partners/_partner_card.html | 4 ++- partners/views.py | 3 ++- 6 files changed, 58 insertions(+), 2 deletions(-) create mode 100644 partners/migrations/0007_partner_organization.py diff --git a/partners/forms.py b/partners/forms.py index d44fdf8db..82958e6d3 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 000000000..173e7d95e --- /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 1754be423..c51f57f5e 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 4f65730d1..bd3306641 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 718c522db..c04961e67 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 0643c0ccd..11b5e3769 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 -- GitLab