Skip to content

Commit

Permalink
Fix minor bugs
Browse files Browse the repository at this point in the history
  • Loading branch information
jonasdeluna committed May 24, 2024
1 parent 3cf0058 commit 4b3ad08
Show file tree
Hide file tree
Showing 8 changed files with 46 additions and 425 deletions.
17 changes: 2 additions & 15 deletions lego/apps/lending/managers.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -19,26 +19,13 @@ 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,
)
notification.notify()

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")
262 changes: 43 additions & 219 deletions lego/apps/lending/migrations/0001_initial.py
Original file line number Diff line number Diff line change
@@ -1,249 +1,73 @@
# 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

from django.conf import settings
import django.contrib.postgres.fields
from django.db import migrations, models
import django.db.models.deletion
import django.utils.timezone
from django.conf import settings
from django.db import migrations, models

import lego.apps.files.models
import lego.apps.lending.validators


class Migration(migrations.Migration):

initial = True

dependencies = [
("users", "0041_user_linkedin_id_alter_user_github_username"),
("files", "0005_file_save_for_use"),
('users', '0043_alter_abakusgroup_type'),
('files', '0005_file_save_for_use'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]

operations = [
migrations.CreateModel(
name="LendableObject",
name='LendableObject',
fields=[
(
"id",
models.AutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"created_at",
models.DateTimeField(
db_index=True, default=django.utils.timezone.now, editable=False
),
),
(
"updated_at",
models.DateTimeField(
default=django.utils.timezone.now, editable=False
),
),
(
"deleted",
models.BooleanField(db_index=True, default=False, editable=False),
),
("require_auth", models.BooleanField(default=True)),
("title", models.CharField(max_length=128)),
("description", models.TextField(blank=True)),
("has_contract", models.BooleanField(default=False)),
(
"max_lending_period",
models.DurationField(default=datetime.timedelta(days=7), null=True),
),
(
"responsible_roles",
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
],
),
),
("location", models.CharField(blank=True, max_length=128)),
(
"can_edit_groups",
models.ManyToManyField(
blank=True,
related_name="can_edit_%(class)s",
to="users.abakusgroup",
),
),
(
"can_edit_users",
models.ManyToManyField(
blank=True,
related_name="can_edit_%(class)s",
to=settings.AUTH_USER_MODEL,
),
),
(
"can_view_groups",
models.ManyToManyField(
blank=True,
related_name="can_view_%(class)s",
to="users.abakusgroup",
),
),
(
"created_by",
models.ForeignKey(
default=None,
editable=False,
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="%(class)s_created",
to=settings.AUTH_USER_MODEL,
),
),
(
"image",
lego.apps.files.models.FileField(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="lendable_object_images",
to="files.file",
),
),
("responsible_groups", models.ManyToManyField(to="users.abakusgroup")),
(
"updated_by",
models.ForeignKey(
default=None,
editable=False,
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="%(class)s_updated",
to=settings.AUTH_USER_MODEL,
),
),
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created_at', models.DateTimeField(db_index=True, default=django.utils.timezone.now, editable=False)),
('updated_at', models.DateTimeField(default=django.utils.timezone.now, editable=False)),
('deleted', models.BooleanField(db_index=True, default=False, editable=False)),
('require_auth', models.BooleanField(default=True)),
('title', models.CharField(max_length=128)),
('description', models.TextField(blank=True)),
('has_contract', models.BooleanField(default=False)),
('max_lending_period', models.DurationField(default=datetime.timedelta(days=7), null=True)),
('responsible_roles', 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])),
('location', models.CharField(blank=True, max_length=128)),
('can_edit_groups', models.ManyToManyField(blank=True, related_name='can_edit_%(class)s', to='users.abakusgroup')),
('can_edit_users', models.ManyToManyField(blank=True, related_name='can_edit_%(class)s', to=settings.AUTH_USER_MODEL)),
('can_view_groups', models.ManyToManyField(blank=True, related_name='can_view_%(class)s', to='users.abakusgroup')),
('created_by', models.ForeignKey(default=None, editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='%(class)s_created', to=settings.AUTH_USER_MODEL)),
('image', lego.apps.files.models.FileField(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='lendable_object_images', to='files.file')),
('responsible_groups', models.ManyToManyField(to='users.abakusgroup')),
('updated_by', models.ForeignKey(default=None, editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='%(class)s_updated', to=settings.AUTH_USER_MODEL)),
],
options={
"abstract": False,
'abstract': False,
},
),
migrations.CreateModel(
name="LendingInstance",
name='LendingInstance',
fields=[
(
"id",
models.AutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"created_at",
models.DateTimeField(
db_index=True, default=django.utils.timezone.now, editable=False
),
),
(
"updated_at",
models.DateTimeField(
default=django.utils.timezone.now, editable=False
),
),
(
"deleted",
models.BooleanField(db_index=True, default=False, editable=False),
),
("require_auth", models.BooleanField(default=True)),
("start_date", models.DateTimeField(null=True)),
("end_date", models.DateTimeField(null=True)),
("pending", models.BooleanField(default=True)),
("message", models.TextField(blank=True)),
(
"can_edit_groups",
models.ManyToManyField(
blank=True,
related_name="can_edit_%(class)s",
to="users.abakusgroup",
),
),
(
"can_edit_users",
models.ManyToManyField(
blank=True,
related_name="can_edit_%(class)s",
to=settings.AUTH_USER_MODEL,
),
),
(
"can_view_groups",
models.ManyToManyField(
blank=True,
related_name="can_view_%(class)s",
to="users.abakusgroup",
),
),
(
"created_by",
models.ForeignKey(
default=None,
editable=False,
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="%(class)s_created",
to=settings.AUTH_USER_MODEL,
),
),
(
"lendable_object",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
to="lending.lendableobject",
),
),
(
"updated_by",
models.ForeignKey(
default=None,
editable=False,
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="%(class)s_updated",
to=settings.AUTH_USER_MODEL,
),
),
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created_at', models.DateTimeField(db_index=True, default=django.utils.timezone.now, editable=False)),
('updated_at', models.DateTimeField(default=django.utils.timezone.now, editable=False)),
('deleted', models.BooleanField(db_index=True, default=False, editable=False)),
('require_auth', models.BooleanField(default=True)),
('start_date', models.DateTimeField(null=True)),
('end_date', models.DateTimeField(null=True)),
('status', models.CharField(choices=[('PENDING', 'Pending'), ('ACCEPTED', 'Accepted'), ('REJECTED', 'Rejected')], default='PENDING', max_length=8)),
('message', models.TextField(blank=True)),
('can_edit_groups', models.ManyToManyField(blank=True, related_name='can_edit_%(class)s', to='users.abakusgroup')),
('can_edit_users', models.ManyToManyField(blank=True, related_name='can_edit_%(class)s', to=settings.AUTH_USER_MODEL)),
('can_view_groups', models.ManyToManyField(blank=True, related_name='can_view_%(class)s', to='users.abakusgroup')),
('created_by', models.ForeignKey(default=None, editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='%(class)s_created', to=settings.AUTH_USER_MODEL)),
('lendable_object', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='lending.lendableobject')),
('updated_by', models.ForeignKey(default=None, editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='%(class)s_updated', to=settings.AUTH_USER_MODEL)),
],
options={
"abstract": False,
'abstract': False,
},
),
]

This file was deleted.

Loading

0 comments on commit 4b3ad08

Please sign in to comment.