diff --git a/MySU/settings/production.py b/MySU/settings/production.py index 8072485f8428f7fcfcb1f7a93362aa64cfa800fb..e0fb42e819f507f205e8d6eedb34697132f6b68c 100644 --- a/MySU/settings/production.py +++ b/MySU/settings/production.py @@ -14,7 +14,7 @@ SECURE_HSTS_PRELOAD = True ALLOWED_HOSTS = ['api.sun.utwente.nl', 'sun.utwente.nl', 'my.su.utwente.nl'] -SITE_URL = 'https://api.sun.utwente.nl' +SITE_URL = 'https://my.su.utwente.nl/api' CORS_ORIGIN_ALLOW_ALL = True CORS_ALLOW_CREDENTIALS = True diff --git a/apps/MySU/admin/__init__.py b/apps/MySU/admin/__init__.py index d6d05467cbf7b6b7364b4c3ded18794aa06d230d..cc631f7fa57a15ddf2cc994365f1341829f5c856 100644 --- a/apps/MySU/admin/__init__.py +++ b/apps/MySU/admin/__init__.py @@ -4,6 +4,7 @@ from .association import AssociationAdmin from .association_membership import AssociationMembershipAdmin from .association_specific_data import AssociationSpecificDataAdmin from .association_specific_data_fields import AssociationSpecificDataFieldsAdmin +from .banner import Banner from .group_membership import GroupMembershipAdmin from .group_object_permission import GroupObjectPermissionAdmin from .institution import InstitutionAdmin diff --git a/apps/MySU/admin/banner.py b/apps/MySU/admin/banner.py new file mode 100755 index 0000000000000000000000000000000000000000..9165599c5ddd0fd679058cce71118ce70ed6acac --- /dev/null +++ b/apps/MySU/admin/banner.py @@ -0,0 +1,12 @@ +from django.contrib import admin + +from apps.MySU.models import Banner + + +@admin.register(Banner) +class BannerAdmin(admin.ModelAdmin): + list_display = ( + 'from_date', + 'till_date', + 'message' + ) diff --git a/apps/MySU/admin/profile.py b/apps/MySU/admin/profile.py index 3df000d26996e137e198aaf18c07186d385df452..35819bf12fbbd6ea274b36f71898b68916ecaf7d 100644 --- a/apps/MySU/admin/profile.py +++ b/apps/MySU/admin/profile.py @@ -360,6 +360,5 @@ class ProfileAdmin(ImportExportModelAdmin, SimpleHistoryAdmin): ) list_filter = ( - 'is_osiris', - 'profilename' + 'profilename', ) diff --git a/apps/MySU/fixtures/preset/association_memberships.json b/apps/MySU/fixtures/preset/association_memberships.json index 588e06f0b9f9d0b845a7b258150a2faec2f91f00..28bbd0f78b199916f254a94606ef634671e8bb2d 100644 --- a/apps/MySU/fixtures/preset/association_memberships.json +++ b/apps/MySU/fixtures/preset/association_memberships.json @@ -10,6 +10,7 @@ "type": 1, "date_left": null, "date_joined": "2015-08-24", + "last_modified": "2015-08-24", "status": "Accepted", "current": true } @@ -26,6 +27,7 @@ "type": 1, "date_left": null, "date_joined": "2015-04-26", + "last_modified": "2015-04-26", "status": "Accepted", "current": true } @@ -41,6 +43,7 @@ "type": 1, "date_left": null, "date_joined": "2014-04-06", + "last_modified": "2015-08-24", "status": "Accepted", "current": true } @@ -56,6 +59,7 @@ "type": 2, "date_left": null, "date_joined": "2015-01-16", + "last_modified": "2016-01-14", "status": "Accepted", "current": true } @@ -71,6 +75,7 @@ "type": 2, "date_left": null, "date_joined": "2019-04-19", + "last_modified": "2020-08-24", "status": "Accepted", "current": true } @@ -86,6 +91,7 @@ "type": 3, "date_left": null, "date_joined": "2014-02-27", + "last_modified": "2017-12-07", "status": "Claimed", "current": true } @@ -101,6 +107,7 @@ "type": 2, "date_left": null, "date_joined": "2016-05-11", + "last_modified": "2017-08-24", "status": "Claimed", "current": true } @@ -116,6 +123,7 @@ "type": 3, "date_left": null, "date_joined": "2016-01-04", + "last_modified": "2016-08-24", "status": "Pending", "current": false } @@ -131,6 +139,7 @@ "type": 1, "date_left": null, "date_joined": "2016-01-04", + "last_modified": "2016-02-09", "status": "Claimed" } } diff --git a/apps/MySU/fixtures/preset/association_specific_data.json b/apps/MySU/fixtures/preset/association_specific_data.json index d41ec6ae67d9225b784afaf20c8cc00b18bc9548..a8fcb27902d75fc3c6bb807de4cbbfe2797c4ab9 100644 --- a/apps/MySU/fixtures/preset/association_specific_data.json +++ b/apps/MySU/fixtures/preset/association_specific_data.json @@ -4,6 +4,7 @@ "pk": 1, "fields": { "slug": "1db97210-f323-4fe2-bfc6-10d1c048cb67", + "last_modified": "2020-08-24", "association": 1, "membership": 2, "data_field": 1, @@ -15,6 +16,7 @@ "pk": 2, "fields": { "slug": "2090a295-6cdd-44b5-b774-3418670d739e", + "last_modified": "2020-08-24", "association": 1, "membership": 2, "data_field": 2, @@ -26,6 +28,7 @@ "pk": 3, "fields": { "slug": "a6ecf7e1-e986-4595-9b3d-860041a1c98f", + "last_modified": "2020-08-24", "association": 1, "membership": 2, "data_field": 3, @@ -37,6 +40,7 @@ "pk": 4, "fields": { "slug": "8d90d484-1d76-495a-a167-465352671c19", + "last_modified": "2020-08-24", "association": 2, "membership": 5, "data_field": 4, @@ -48,6 +52,7 @@ "pk": 5, "fields": { "slug": "04672188-e7e9-43d4-9b2c-6acb6241c19b", + "last_modified": "2020-08-24", "association": 2, "membership": 5, "data_field": 5, @@ -59,6 +64,7 @@ "pk": 6, "fields": { "slug": "1fcd6c07-075f-4613-8bf8-16d4ec38fabf", + "last_modified": "2020-08-24", "association": 3, "membership": 8, "data_field": 6, diff --git a/apps/MySU/fixtures/preset/board_association_memberships.json b/apps/MySU/fixtures/preset/board_association_memberships.json index c06b2ace3bff3aefe95645ecf625e2d5fe08b71c..93ab748af0e0427c82c03ff3f30a3451cbde929d 100644 --- a/apps/MySU/fixtures/preset/board_association_memberships.json +++ b/apps/MySU/fixtures/preset/board_association_memberships.json @@ -9,7 +9,8 @@ "association": 1, "type": 1, "date_left": null, - "date_joined": "2017-05-06" + "date_joined": "2017-05-06", + "last_modified": "2020-08-24" } }, { @@ -22,7 +23,8 @@ "association": 1, "type": 1, "date_left": null, - "date_joined": "2016-05-19" + "date_joined": "2016-05-19", + "last_modified": "2020-08-24" } }, { @@ -35,7 +37,8 @@ "association": 2, "type": 1, "date_left": null, - "date_joined": "2018-10-08" + "date_joined": "2018-10-08", + "last_modified": "2020-08-24" } }, { @@ -48,7 +51,8 @@ "association": 2, "type": 1, "date_left": null, - "date_joined": "2017-06-07" + "date_joined": "2017-06-07", + "last_modified": "2020-08-24" } }, { @@ -61,7 +65,8 @@ "association": 2, "type": 1, "date_left": null, - "date_joined": "2014-08-30" + "date_joined": "2014-08-30", + "last_modified": "2020-08-24" } }, { @@ -74,7 +79,8 @@ "association": 3, "type": 1, "date_left": null, - "date_joined": "2012-10-28" + "date_joined": "2012-10-28", + "last_modified": "2020-08-24" } }, { @@ -87,7 +93,8 @@ "association": 3, "type": 1, "date_left": null, - "date_joined": "2019-08-29" + "date_joined": "2019-08-29", + "last_modified": "2020-08-24" } }, { @@ -100,7 +107,8 @@ "association": 3, "type": 1, "date_left": null, - "date_joined": "2015-04-09" + "date_joined": "2015-04-09", + "last_modified": "2020-08-24" } } ] diff --git a/apps/MySU/fixtures/preset/board_profiles.json b/apps/MySU/fixtures/preset/board_profiles.json index 99d2a20fa3055390bd8b4c43b7a75a4ed6d28905..236f782ebc5f4ef68a24e9fc2d8363fe46070bbf 100644 --- a/apps/MySU/fixtures/preset/board_profiles.json +++ b/apps/MySU/fixtures/preset/board_profiles.json @@ -4,6 +4,7 @@ "pk": 10003, "fields": { "profilename": "Noord-Holland 3", + "last_modified": "2020-08-24", "address": "Nikkisteeg 093", "zip_code": "2969BS", "city": "Oudkarspel", @@ -25,6 +26,7 @@ "pk": 10004, "fields": { "profilename": "Gelderland 4", + "last_modified": "2020-08-24", "address": "Isabelhof 6", "zip_code": "9149LN", "city": "Earnew\u00e2ld", @@ -46,6 +48,7 @@ "pk": 10006, "fields": { "profilename": "Noord-Brabant 6", + "last_modified": "2020-08-24", "address": "Guusboulevard 587", "zip_code": "4155 BJ", "city": "De Punt", @@ -67,6 +70,7 @@ "pk": 10007, "fields": { "profilename": "Noord-Holland 7", + "last_modified": "2020-08-24", "address": "Vaj\u00e8nweg 938", "zip_code": "2059BU", "city": "Vogelwaarde", @@ -88,6 +92,7 @@ "pk": 10008, "fields": { "profilename": "Limburg 8", + "last_modified": "2020-08-24", "address": "Naudpad 4", "zip_code": "4777 UX", "city": "Westbroek", @@ -109,6 +114,7 @@ "pk": 10009, "fields": { "profilename": "Friesland 9", + "last_modified": "2020-08-24", "address": "Annemijnsingel 09", "zip_code": "7241IW", "city": "Merselo", @@ -130,6 +136,7 @@ "pk": 10010, "fields": { "profilename": "Gelderland 10", + "last_modified": "2020-08-24", "address": "Sepboulevard 2", "zip_code": "1164 FH", "city": "Zuidlaarderveen", @@ -151,6 +158,7 @@ "pk": 10011, "fields": { "profilename": "Flevoland 11", + "last_modified": "2020-08-24", "address": "Rubenhof 12", "zip_code": "5330 BA", "city": "Luyksgestel", diff --git a/apps/MySU/fixtures/preset/profile.json b/apps/MySU/fixtures/preset/profile.json index bd62c9270ef7f210639c9d457b639ca7f70dadc7..2e4d2566aa6ff49cadbaefe5dca8c8aa2b0dc870 100644 --- a/apps/MySU/fixtures/preset/profile.json +++ b/apps/MySU/fixtures/preset/profile.json @@ -4,6 +4,7 @@ "pk": 1, "fields": { "profilename": "Anonymised", + "last_modified": "2020-08-24", "address": "Anonymised", "zip_code": "Anonymised", "city": "Anonymised", @@ -25,6 +26,7 @@ "pk": 2, "fields": { "profilename": "Admin Profile", + "last_modified": "2020-08-24", "address": "Daniquestraat 33", "zip_code": "9623PO", "city": "Ven-Zelderheide", @@ -46,6 +48,7 @@ "pk": 3, "fields": { "profilename": "Board Profile", + "last_modified": "2020-08-24", "address": "Fienweg 212", "zip_code": "4658 GW", "city": "Winssen", @@ -67,6 +70,7 @@ "pk": 4, "fields": { "profilename": "Ordinary User Profile", + "last_modified": "2020-08-24", "address": "Dylanosingel 22", "zip_code": "4505 YB", "city": "Vlodrop", @@ -89,6 +93,7 @@ "pk": 5, "fields": { "profilename": "Ordinary User Profile 2", + "last_modified": "2020-08-24", "address": "Dylanosingel 22", "zip_code": "4505 YB", "city": "Vlodrop", diff --git a/apps/MySU/migrations/0048_auto_20221021_0812.py b/apps/MySU/migrations/0048_auto_20221021_0812.py new file mode 100644 index 0000000000000000000000000000000000000000..44354d71edad71c3adfe3710a4f0d4ea0ef73348 --- /dev/null +++ b/apps/MySU/migrations/0048_auto_20221021_0812.py @@ -0,0 +1,22 @@ +# Generated by Django 3.2.5 on 2022-10-21 08:12 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('MySU', '0047_associationmembership_rejected_email_send'), + ] + + operations = [ + migrations.RemoveField( + model_name='profile', + name='is_osiris', + ), + migrations.AddField( + model_name='profile', + name='read_and_agreed_to_privacy_policy', + field=models.BooleanField(default=False), + ), + ] diff --git a/apps/MySU/migrations/0049_auto_20230117_1949.py b/apps/MySU/migrations/0049_auto_20230117_1949.py new file mode 100644 index 0000000000000000000000000000000000000000..ecda651d4dadc3e7addea7dab550c853b87dfd70 --- /dev/null +++ b/apps/MySU/migrations/0049_auto_20230117_1949.py @@ -0,0 +1,34 @@ +# Generated by Django 3.2.5 on 2023-01-17 19:49 + +import datetime +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('MySU', '0048_auto_20221021_0812'), + ] + + operations = [ + migrations.AddField( + model_name='associationmembership', + name='data_fields_last_modified', + field=models.DateTimeField(default=datetime.date.today, editable=False), + ), + migrations.AddField( + model_name='associationmembership', + name='last_modified', + field=models.DateTimeField(auto_now=True), + ), + migrations.AddField( + model_name='associationspecificdata', + name='last_modified', + field=models.DateTimeField(auto_now=True), + ), + migrations.AddField( + model_name='profile', + name='last_modified', + field=models.DateTimeField(auto_now=True), + ), + ] diff --git a/apps/MySU/migrations/0050_banner.py b/apps/MySU/migrations/0050_banner.py new file mode 100644 index 0000000000000000000000000000000000000000..cebea27c2039a1c82cdd10e607cfd74db05d31d1 --- /dev/null +++ b/apps/MySU/migrations/0050_banner.py @@ -0,0 +1,29 @@ +# Generated by Django 3.2.5 on 2023-05-17 09:17 + +from django.db import migrations, models +import uuid + + +class Migration(migrations.Migration): + + dependencies = [ + ('MySU', '0049_auto_20230117_1949'), + ] + + operations = [ + migrations.CreateModel( + name='Banner', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('slug', models.SlugField(default=uuid.uuid4, editable=False)), + ('from_date', models.DateTimeField()), + ('till_date', models.DateTimeField()), + ('message', models.CharField(max_length=150)), + ], + options={ + 'verbose_name': 'Banner', + 'verbose_name_plural': 'Banners', + 'ordering': ['till_date'], + }, + ), + ] diff --git a/apps/MySU/models/__init__.py b/apps/MySU/models/__init__.py index 93868d4e259f3c9c07a51ed3c9aa338681d3ca91..177f90dddeb7480e3c8b648fc202e093c04d3811 100644 --- a/apps/MySU/models/__init__.py +++ b/apps/MySU/models/__init__.py @@ -4,6 +4,7 @@ from .profile import Profile from .user import User from .association import Association from .association import Society +from .banner import Banner from .membertype import MemberType from .association_membership import AssociationMembership from .association_specific_data_fields import AssociationSpecificDataFields diff --git a/apps/MySU/models/association_membership.py b/apps/MySU/models/association_membership.py index 1eb8bcd8ad387d0ecfb3646673b86c84c941ccea..4dce50d3757b365e18eba3c40fe13a503f91699e 100644 --- a/apps/MySU/models/association_membership.py +++ b/apps/MySU/models/association_membership.py @@ -141,6 +141,7 @@ class AssociationMembership(ComputedFieldsModel): DEBT_COLLECTION = "Debt collection", "Debt collection" slug = models.UUIDField(default=uuid.uuid4, editable=False) + last_modified = models.DateTimeField(auto_now=True) status = models.CharField(max_length=20, choices=Status.choices, default=Status.PENDING) pay_by = models.CharField(max_length=20, choices=PayBy.choices, default=PayBy.DEBT_COLLECTION) date_joined = models.DateField(default=datetime.date.today) @@ -169,6 +170,10 @@ class AssociationMembership(ComputedFieldsModel): def current(self): return self.status in [self.Status.ACCEPTED, self.Status.DISPUTED, self.Status.CLAIMED] + @computed(models.DateTimeField(default=datetime.date.today), depends=[['specific_data', ['last_modified']]]) + def data_fields_last_modified(self): + return max([data_field.last_modified for data_field in self.specific_data.all()], default=datetime.datetime.min) + objects = AssociationMembershipManager() class Meta: diff --git a/apps/MySU/models/association_specific_data.py b/apps/MySU/models/association_specific_data.py index ec9538ac884f1d6cca9dfa591556f904db865f0a..c1b933b035ea071348a6f7ecd880495319670273 100644 --- a/apps/MySU/models/association_specific_data.py +++ b/apps/MySU/models/association_specific_data.py @@ -24,6 +24,7 @@ class AssociationSpecificData(models.Model): 'Drivers licence'. """ slug = models.SlugField(default=uuid.uuid4, editable=False) + last_modified = models.DateTimeField(auto_now=True) value = models.TextField(blank=True) association = models.ForeignKey(Association, related_name="specific_data", on_delete=models.CASCADE) diff --git a/apps/MySU/models/banner.py b/apps/MySU/models/banner.py new file mode 100755 index 0000000000000000000000000000000000000000..f6ca40426e90f53933b019aa732e5e854b983f4d --- /dev/null +++ b/apps/MySU/models/banner.py @@ -0,0 +1,29 @@ +import uuid + +from django.db import models + + +class BannerQuerySet(models.QuerySet): + pass + + +class BannerManager(models.Manager): + def get_queryset(self): + return BannerQuerySet(self.model, using=self._db) + + +class Banner(models.Model): + slug = models.SlugField(default=uuid.uuid4, editable=False) + from_date = models.DateTimeField() + till_date = models.DateTimeField() + message = models.CharField(max_length=150) + + objects = BannerManager() + + class Meta: + ordering = ["till_date"] + verbose_name = "Banner" + verbose_name_plural = "Banners" + + def __str__(self): + return str(self.message) diff --git a/apps/MySU/models/profile.py b/apps/MySU/models/profile.py index e56e69723ea8568ce4c42319e4c16ea22deff4ad..c3ba8dabc76fb52f8891376f1018e5bd9beb81a0 100644 --- a/apps/MySU/models/profile.py +++ b/apps/MySU/models/profile.py @@ -40,6 +40,7 @@ class Profile(ContactInfo): OTHER = "Other", "Other" slug = models.SlugField(default=uuid.uuid4, editable=False) + last_modified = models.DateTimeField(auto_now=True) profilename = models.CharField(max_length=100, blank=True, default="Created by you") photo = models.ImageField(upload_to='profile/photo/', blank=True, null=True) student_number = models.CharField(max_length=100, blank=True, null=True) @@ -50,8 +51,8 @@ class Profile(ContactInfo): dutch_speaking = models.BooleanField(default=True) gender = models.CharField(max_length=20, choices=Gender.choices, default=Gender.OTHER) date_of_birth = models.DateField(null=True, blank=True) - is_osiris = models.BooleanField(default=False) phase = models.CharField(max_length=20, choices=Phase.choices, default=Phase.BACHELOR) + read_and_agreed_to_privacy_policy = models.BooleanField(default=False) bank_account = models.ForeignKey('financial.BankAccount', related_name='profiles', on_delete=models.PROTECT, null=True, blank=True) user = models.ForeignKey('User', related_name='profiles', on_delete=models.PROTECT, null=True, blank=True) diff --git a/apps/MySU/serializers/association_membership.py b/apps/MySU/serializers/association_membership.py index 6c501002e769cc3506c8cf12d9fd051241e816bf..9fb45aaf85a639b2a71868a5f26169717007255c 100644 --- a/apps/MySU/serializers/association_membership.py +++ b/apps/MySU/serializers/association_membership.py @@ -37,7 +37,8 @@ class AssociationMembershipSerializerBase(FlexFieldsModelSerializer, serializers model = AssociationMembership fields = ('url', 'slug', 'profile', 'association', 'date_joined', 'date_left', 'current', 'new_type', 'pay_by', 'debt_collection_mandate_id', 'debt_collection_mandate_given', 'debt_collection_mandate_signature_date', - 'status', 'type', 'visible_after_date_left', 'specific_data', 'financial_obligations_satisfied') + 'status', 'type', 'visible_after_date_left', 'specific_data', 'financial_obligations_satisfied', + 'data_fields_last_modified', 'last_modified') extra_kwargs = { 'url': {'lookup_field': 'slug'}, 'profile': {'lookup_field': 'slug'}, diff --git a/apps/MySU/serializers/mass_import.py b/apps/MySU/serializers/mass_import.py index 18afa787e0be70049ea5b4e22c32a31bc80df3e5..2e318d555664f14a25b95ca6323a7b9eb8fade3d 100644 --- a/apps/MySU/serializers/mass_import.py +++ b/apps/MySU/serializers/mass_import.py @@ -20,7 +20,7 @@ class ProfileImportSerializer(mixins.CreateOnlyNestedSerializerMixin, BaseSerial class Meta: model = Profile - exclude = ('is_osiris', 'photo', 'user') + exclude = ('photo', 'user') nested_fields = ['user'] lookup_field = 'slug' extra_kwargs = { diff --git a/apps/MySU/serializers/profile.py b/apps/MySU/serializers/profile.py index 5c71a1de984082ee6a0baa72abcca5740aca852d..26777c5520276f6b1eeb910047f173f3f3ae5444 100644 --- a/apps/MySU/serializers/profile.py +++ b/apps/MySU/serializers/profile.py @@ -34,7 +34,7 @@ class ProfileSerializer(FlexFieldsModelSerializer, serializers.HyperlinkedModelS class Meta: model = Profile - exclude = ('is_osiris', 'photo', 'user', 'bank_account') + exclude = ('user', 'bank_account') lookup_field = 'slug' extra_kwargs = { 'url': {'lookup_field': 'slug'}, @@ -48,12 +48,6 @@ class ProfileSerializer(FlexFieldsModelSerializer, serializers.HyperlinkedModelS 'study': StudySerializer } - def to_representation(self, instance): - representation = super(ProfileSerializer, self).to_representation(instance) - if instance.is_osiris: - self.Meta.read_only_fields = list(self.fields.keys()) - return representation - def update(self, instance: Profile, validated_data): bank_account = validated_data.pop("bank_account", None) if bank_account: diff --git a/apps/MySU/views/__init__.py b/apps/MySU/views/__init__.py index 64731ac79cd23fad3bc7150e4d700c157ea77711..a180d9c30ea89176ce2f67a0328dab005682dcca 100644 --- a/apps/MySU/views/__init__.py +++ b/apps/MySU/views/__init__.py @@ -1,6 +1,3 @@ -#from .disputed_membership_request_count import DisputedMembershipRequestCountView -#from .incoming_membership_request_count import IncomingMembershipRequestCountView -#from .leaving_member_count import LeavingMemberCountView from .membership_end import MembershipEndView from .membership_resolve import MembershipResolveView from .my_su_oidc_authentication_request import MySUOidcAuthenticationRequestView diff --git a/apps/financial/migrations/0012_alter_membershipfee_payments.py b/apps/financial/migrations/0012_alter_membershipfee_payments.py new file mode 100644 index 0000000000000000000000000000000000000000..e1844f7f7ec50f5772029912f6e3c06128bfaefd --- /dev/null +++ b/apps/financial/migrations/0012_alter_membershipfee_payments.py @@ -0,0 +1,19 @@ +# Generated by Django 3.2.5 on 2023-01-17 19:49 + +import django.core.validators +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('financial', '0011_auto_20220112_1440'), + ] + + operations = [ + migrations.AlterField( + model_name='membershipfee', + name='payments', + field=models.PositiveIntegerField(help_text='Use the following format: <YYYY>', validators=[django.core.validators.MinValueValidator(1900), django.core.validators.MaxValueValidator(2023)]), + ), + ] diff --git a/tests/MySU/association_specific_data.py b/tests/MySU/association_specific_data.py index 67449fa325a1a11f8a700a7d2c56f13658197def..08e8893103fae0d44463194104e1438126aeec07 100644 --- a/tests/MySU/association_specific_data.py +++ b/tests/MySU/association_specific_data.py @@ -44,12 +44,12 @@ class AssociationSpecificDataTestCase(APITestCase): pass def test_list(self): - response = self.client.get('/association_data') + response = self.client.get('/association_data/?ordering=association') self.assertEqual(200, response.status_code, "Error: {}, Input: List of all specific data".format(response.data)) self.assertEqual(response.data['count'], 5, msg="number of specific data doesn't match expected number of specific data") results = response.data['results'] - self.assertEqual('http://testserver/associations/student-union', results[0]['association'], "Error: {}".format(response.data)) - self.assertEqual('http://testserver/associations/student-union', results[1]['association'], "Error: {}".format(response.data)) - self.assertEqual('http://testserver/associations/rising-sun-alienship-helios', results[2]['association'], "Error: {}".format(response.data)) + self.assertEqual('http://testserver/associations/rising-sun-alienship-helios', results[0]['association'], "Error: {}".format(response.data)) + self.assertEqual('http://testserver/associations/rising-sun-alienship-helios', results[1]['association'], "Error: {}".format(response.data)) + self.assertEqual('http://testserver/associations/student-union', results[2]['association'], "Error: {}".format(response.data)) self.assertEqual('http://testserver/associations/student-union', results[3]['association'], "Error: {}".format(response.data)) - self.assertEqual('http://testserver/associations/rising-sun-alienship-helios', results[4]['association'], "Error: {}".format(response.data)) + self.assertEqual('http://testserver/associations/student-union', results[4]['association'], "Error: {}".format(response.data))