diff --git a/partners/forms.py b/partners/forms.py index c0cc8855b067f6a1615608fd14c110c3f4c03597..09d849ca6c3aee2d2c674fcbaba72677c57c7f08 100644 --- a/partners/forms.py +++ b/partners/forms.py @@ -35,16 +35,19 @@ class MembershipAgreementForm(forms.ModelForm): } def save(self, current_user, commit=True): - agreement = super().save(commit) - if commit and agreement.partner and not self.instance.id: - # Create PartnerEvent if Agreement is new - event = PartnerEvent( - partner=agreement.partner, - event=PARTNER_STATUS_UPDATE, - comments='Membership Agreement added with start date %s' % agreement.start_date, - noted_by=current_user - ) - event.save() + agreement = super().save(commit=False) + if commit: + if agreement.partner and not self.instance.id: + # Create PartnerEvent if Agreement is new + event = PartnerEvent( + partner=agreement.partner, + event=PARTNER_STATUS_UPDATE, + comments='Membership Agreement added with start date %s' % agreement.start_date, + noted_by=current_user + ) + event.save() + # Save agreement afterwards to be able to detect edit/add difference + agreement.save() return agreement diff --git a/partners/migrations/0020_auto_20170624_2013.py b/partners/migrations/0020_auto_20170624_2013.py new file mode 100644 index 0000000000000000000000000000000000000000..5a69c81a3a25fa09f78f1d1a67e3b2f2ac903a83 --- /dev/null +++ b/partners/migrations/0020_auto_20170624_2013.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.3 on 2017-06-24 18:13 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('partners', '0019_auto_20170624_2003'), + ] + + operations = [ + migrations.AlterField( + model_name='partner', + name='main_contact', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='partner_main_contact', to='partners.Contact'), + ), + ] diff --git a/partners/models.py b/partners/models.py index 8b75ce2743cbf9b4b28c724602af4703f6020bef..89cd1660dbe99b2f726fd3e32012581373436ef3 100644 --- a/partners/models.py +++ b/partners/models.py @@ -185,9 +185,8 @@ class Partner(models.Model): institution = models.ForeignKey('partners.Institution', 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.CASCADE, - blank=True, null=True, - related_name='partner_main_contact') + main_contact = models.ForeignKey('partners.Contact', on_delete=models.SET_NULL, + blank=True, null=True, related_name='partner_main_contact') def __str__(self): if self.institution: