Skip to content

Commit

Permalink
assign creator
Browse files Browse the repository at this point in the history
  • Loading branch information
nicokant committed Jul 3, 2024
1 parent d930e6c commit e44ce8a
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 0 deletions.
13 changes: 13 additions & 0 deletions src/genlab_bestilling/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,19 @@
class ProjectForm(FormMixin, forms.ModelForm):
default_renderer = FormRenderer(field_css_classes="mb-3")

def __init__(self, *args, user=None, **kwargs):
super().__init__(*args, **kwargs)
self.user = user

def save(self, commit=True):
obj = super().save(commit=False)
if self.user:
obj.creator = self.user
if commit:
obj.save()
self.save_m2m()
return obj

class Meta:
model = Project
fields = (
Expand Down
26 changes: 26 additions & 0 deletions src/genlab_bestilling/migrations/0012_project_creator.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Generated by Django 5.0.6 on 2024-07-03 11:02

import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models


class Migration(migrations.Migration):
dependencies = [
("genlab_bestilling", "0011_project_members_project_owner"),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]

operations = [
migrations.AddField(
model_name="project",
name="creator",
field=models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="projects_created",
to=settings.AUTH_USER_MODEL,
),
),
]
7 changes: 7 additions & 0 deletions src/genlab_bestilling/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,13 @@ class Project(models.Model):
blank=True,
related_name="projects_owned",
)
creator = models.ForeignKey(
"users.User",
on_delete=models.SET_NULL,
null=True,
blank=True,
related_name="projects_created",
)
members = models.ManyToManyField(
"users.User", blank=True, related_name="projects_member"
)
Expand Down
5 changes: 5 additions & 0 deletions src/genlab_bestilling/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,11 @@ class ProjectCreateView(FormsetCreateView):
model = Project
form_class = ProjectForm

def get_form_kwargs(self):
kwargs = super().get_form_kwargs()
kwargs["user"] = self.request.user
return kwargs

def get_success_url(self):
return reverse(
"project-detail",
Expand Down

0 comments on commit e44ce8a

Please sign in to comment.