diff --git a/lego/apps/lending/managers.py b/lego/apps/lending/managers.py index 22d2896ca..179357324 100644 --- a/lego/apps/lending/managers.py +++ b/lego/apps/lending/managers.py @@ -3,7 +3,7 @@ class LendingInstanceManager(BasisModelManager): def create(self, *args, **kwargs): - from lego.apps.lending.notifications import LendingInstanceNotification + from lego.apps.lending.notifications import LendingInstanceCreateNotification from lego.apps.users.models import Membership, User lending_instance = super().create(*args, **kwargs) @@ -19,7 +19,7 @@ def create(self, *args, **kwargs): ).values_list("user", flat=True) for user_id in users_to_be_notified: user = User.objects.get(pk=user_id) - notification = LendingInstanceNotification( + notification = LendingInstanceCreateNotification( lending_instance=lending_instance, user=user, ) @@ -27,18 +27,5 @@ def create(self, *args, **kwargs): return lending_instance - # TODO: We probably need another template for accepting instances - def update(self, *args, **kwargs): - from lego.apps.lending.notifications import LendingInstanceNotification - - lending_instance = super().update(*args, **kwargs) - notification = LendingInstanceNotification( - lending_instance=lending_instance, - user=lending_instance.created_by, - ) - notification.notify() - - return lending_instance - def get_queryset(self): return super().get_queryset().select_related("created_by") diff --git a/lego/apps/lending/migrations/0001_initial.py b/lego/apps/lending/migrations/0001_initial.py index 885c62087..26c675ded 100644 --- a/lego/apps/lending/migrations/0001_initial.py +++ b/lego/apps/lending/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 4.0.10 on 2024-04-16 18:32 +# Generated by Django 4.0.10 on 2024-05-24 11:03 import datetime @@ -16,7 +16,7 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ("users", "0041_user_linkedin_id_alter_user_github_username"), + ("users", "0043_alter_abakusgroup_type"), ("files", "0005_file_save_for_use"), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] @@ -186,7 +186,18 @@ class Migration(migrations.Migration): ("require_auth", models.BooleanField(default=True)), ("start_date", models.DateTimeField(null=True)), ("end_date", models.DateTimeField(null=True)), - ("pending", models.BooleanField(default=True)), + ( + "status", + models.CharField( + choices=[ + ("PENDING", "Pending"), + ("ACCEPTED", "Accepted"), + ("REJECTED", "Rejected"), + ], + default="PENDING", + max_length=8, + ), + ), ("message", models.TextField(blank=True)), ( "can_edit_groups", diff --git a/lego/apps/lending/migrations/0002_alter_lendableobject_responsible_roles.py b/lego/apps/lending/migrations/0002_alter_lendableobject_responsible_roles.py deleted file mode 100644 index d60c053b0..000000000 --- a/lego/apps/lending/migrations/0002_alter_lendableobject_responsible_roles.py +++ /dev/null @@ -1,49 +0,0 @@ -# Generated by Django 4.0.10 on 2024-04-16 18:37 - -import django.contrib.postgres.fields -from django.db import migrations, models - -import lego.apps.lending.validators - - -class Migration(migrations.Migration): - dependencies = [ - ("lending", "0001_initial"), - ] - - operations = [ - migrations.AlterField( - model_name="lendableobject", - name="responsible_roles", - field=django.contrib.postgres.fields.ArrayField( - base_field=models.CharField( - choices=[ - ("member", "member"), - ("leader", "leader"), - ("co-leader", "co-leader"), - ("treasurer", "treasurer"), - ("recruiting", "recruiting"), - ("development", "development"), - ("editor", "editor"), - ("retiree", "retiree"), - ("media_relations", "media_relations"), - ("active_retiree", "active_retiree"), - ("alumni", "alumni"), - ("webmaster", "webmaster"), - ("interest_group_admin", "interest_group_admin"), - ("alumni_admin", "alumni_admin"), - ("retiree_email", "retiree_email"), - ("company_admin", "company_admin"), - ("dugnad_admin", "dugnad_admin"), - ("trip_admin", "trip_admin"), - ("sponsor_admin", "sponsor_admin"), - ("social_admin", "social_admin"), - ], - max_length=30, - ), - default=["m", "e", "m", "b", "e", "r"], - size=None, - validators=[lego.apps.lending.validators.responsible_roles_validator], - ), - ), - ] diff --git a/lego/apps/lending/migrations/0003_remove_lendinginstance_can_edit_groups_and_more.py b/lego/apps/lending/migrations/0003_remove_lendinginstance_can_edit_groups_and_more.py deleted file mode 100644 index 546e52d24..000000000 --- a/lego/apps/lending/migrations/0003_remove_lendinginstance_can_edit_groups_and_more.py +++ /dev/null @@ -1,28 +0,0 @@ -# Generated by Django 4.0.10 on 2024-04-16 18:52 - -from django.db import migrations - - -class Migration(migrations.Migration): - dependencies = [ - ("lending", "0002_alter_lendableobject_responsible_roles"), - ] - - operations = [ - migrations.RemoveField( - model_name="lendinginstance", - name="can_edit_groups", - ), - migrations.RemoveField( - model_name="lendinginstance", - name="can_edit_users", - ), - migrations.RemoveField( - model_name="lendinginstance", - name="can_view_groups", - ), - migrations.RemoveField( - model_name="lendinginstance", - name="require_auth", - ), - ] diff --git a/lego/apps/lending/migrations/0004_lendinginstance_can_edit_groups_and_more.py b/lego/apps/lending/migrations/0004_lendinginstance_can_edit_groups_and_more.py deleted file mode 100644 index be02889f4..000000000 --- a/lego/apps/lending/migrations/0004_lendinginstance_can_edit_groups_and_more.py +++ /dev/null @@ -1,43 +0,0 @@ -# Generated by Django 4.0.10 on 2024-04-16 18:53 - -from django.conf import settings -from django.db import migrations, models - - -class Migration(migrations.Migration): - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ("users", "0041_user_linkedin_id_alter_user_github_username"), - ("lending", "0003_remove_lendinginstance_can_edit_groups_and_more"), - ] - - operations = [ - migrations.AddField( - model_name="lendinginstance", - name="can_edit_groups", - field=models.ManyToManyField( - blank=True, related_name="can_edit_%(class)s", to="users.abakusgroup" - ), - ), - migrations.AddField( - model_name="lendinginstance", - name="can_edit_users", - field=models.ManyToManyField( - blank=True, - related_name="can_edit_%(class)s", - to=settings.AUTH_USER_MODEL, - ), - ), - migrations.AddField( - model_name="lendinginstance", - name="can_view_groups", - field=models.ManyToManyField( - blank=True, related_name="can_view_%(class)s", to="users.abakusgroup" - ), - ), - migrations.AddField( - model_name="lendinginstance", - name="require_auth", - field=models.BooleanField(default=True), - ), - ] diff --git a/lego/apps/lending/migrations/0005_alter_lendableobject_responsible_roles.py b/lego/apps/lending/migrations/0005_alter_lendableobject_responsible_roles.py deleted file mode 100644 index 28060c633..000000000 --- a/lego/apps/lending/migrations/0005_alter_lendableobject_responsible_roles.py +++ /dev/null @@ -1,48 +0,0 @@ -# Generated by Django 4.0.10 on 2024-04-23 18:29 - -import django.contrib.postgres.fields -from django.db import migrations, models -import lego.apps.lending.validators - - -class Migration(migrations.Migration): - dependencies = [ - ("lending", "0004_lendinginstance_can_edit_groups_and_more"), - ] - - operations = [ - migrations.AlterField( - model_name="lendableobject", - name="responsible_roles", - field=django.contrib.postgres.fields.ArrayField( - base_field=models.CharField( - choices=[ - ("member", "member"), - ("leader", "leader"), - ("co-leader", "co-leader"), - ("treasurer", "treasurer"), - ("recruiting", "recruiting"), - ("development", "development"), - ("editor", "editor"), - ("retiree", "retiree"), - ("media_relations", "media_relations"), - ("active_retiree", "active_retiree"), - ("alumni", "alumni"), - ("webmaster", "webmaster"), - ("interest_group_admin", "interest_group_admin"), - ("alumni_admin", "alumni_admin"), - ("retiree_email", "retiree_email"), - ("company_admin", "company_admin"), - ("dugnad_admin", "dugnad_admin"), - ("trip_admin", "trip_admin"), - ("sponsor_admin", "sponsor_admin"), - ("social_admin", "social_admin"), - ], - max_length=30, - ), - default=["member"], - size=None, - validators=[lego.apps.lending.validators.responsible_roles_validator], - ), - ), - ] diff --git a/lego/apps/lending/migrations/0006_remove_lendinginstance_pending_and_more.py b/lego/apps/lending/migrations/0006_remove_lendinginstance_pending_and_more.py deleted file mode 100644 index 387a1a5ac..000000000 --- a/lego/apps/lending/migrations/0006_remove_lendinginstance_pending_and_more.py +++ /dev/null @@ -1,22 +0,0 @@ -# Generated by Django 4.0.10 on 2024-05-01 17:02 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('lending', '0005_alter_lendableobject_responsible_roles'), - ] - - operations = [ - migrations.RemoveField( - model_name='lendinginstance', - name='pending', - ), - migrations.AddField( - model_name='lendinginstance', - name='status', - field=models.CharField(choices=[('PENDING', 'Pending'), ('ACCEPTED', 'Accepted'), ('REJECTED', 'Rejected')], default='PENDING', max_length=8), - ), - ] diff --git a/lego/apps/lending/notifications.py b/lego/apps/lending/notifications.py index a3dd7751b..b6530c950 100644 --- a/lego/apps/lending/notifications.py +++ b/lego/apps/lending/notifications.py @@ -4,7 +4,7 @@ from lego.apps.users.models import User -class LendingInstanceNotification(Notification): +class LendingInstanceCreateNotification(Notification): def __init__(self, lending_instance: LendingInstance, user: User): self.lending_instance = lending_instance self.lender = lending_instance.user