From d966e141681fceac0db6e8efc81e2b696a9de9af Mon Sep 17 00:00:00 2001 From: ens-lgil Date: Thu, 30 Apr 2026 13:40:19 +0100 Subject: [PATCH 1/3] Add Team and Team Membership models --- .../0029_alter_userproxy_options.py | 17 +++++++++ main/migrations/0030_team_teammembership.py | 36 +++++++++++++++++++ main/models/__init__.py | 1 + main/models/team_models.py | 11 ++++++ 4 files changed, 65 insertions(+) create mode 100644 main/migrations/0029_alter_userproxy_options.py create mode 100644 main/migrations/0030_team_teammembership.py create mode 100644 main/models/team_models.py diff --git a/main/migrations/0029_alter_userproxy_options.py b/main/migrations/0029_alter_userproxy_options.py new file mode 100644 index 00000000..e8c749ce --- /dev/null +++ b/main/migrations/0029_alter_userproxy_options.py @@ -0,0 +1,17 @@ +# Generated by Django 6.0.3 on 2026-04-30 11:04 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('main', '0028_alter_toollanguagemethodology_options_and_more'), + ] + + operations = [ + migrations.AlterModelOptions( + name='userproxy', + options={'verbose_name': 'User skills profile'}, + ), + ] diff --git a/main/migrations/0030_team_teammembership.py b/main/migrations/0030_team_teammembership.py new file mode 100644 index 00000000..01cc77b7 --- /dev/null +++ b/main/migrations/0030_team_teammembership.py @@ -0,0 +1,36 @@ +# Generated by Django 6.0.3 on 2026-04-30 11:08 + +import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('main', '0029_alter_userproxy_options'), + ] + + operations = [ + migrations.CreateModel( + name='Team', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=200, unique=True)), + ('description', models.TextField()), + ('slug', models.SlugField(max_length=200, unique=True)), + ], + options={ + 'abstract': False, + }, + ), + migrations.CreateModel( + name='TeamMembership', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('manager', models.BooleanField(blank=True, default=False)), + ('team', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='main.team')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/main/models/__init__.py b/main/models/__init__.py index 2d6dc0a2..664c8d39 100644 --- a/main/models/__init__.py +++ b/main/models/__init__.py @@ -2,3 +2,4 @@ from .framework_models import * # noqa: F403 from .user_models import * # noqa: F403 +from .team_models import * # noqa: F403 diff --git a/main/models/team_models.py b/main/models/team_models.py new file mode 100644 index 00000000..7bb6fcf7 --- /dev/null +++ b/main/models/team_models.py @@ -0,0 +1,11 @@ +from django.db import models +from django.conf import settings +from .framework_models import SluggedModel + +class Team(SluggedModel): + pass + +class TeamMembership(models.Model): + user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE) + team = models.ForeignKey(Team, on_delete=models.CASCADE) + manager = models.BooleanField(blank=True, default=False) \ No newline at end of file From 07f242965af41e4800e7d55736f61551e66056d7 Mon Sep 17 00:00:00 2001 From: ens-lgil Date: Thu, 30 Apr 2026 13:44:30 +0100 Subject: [PATCH 2/3] Add Team and Team Membershipt to admin --- main/admin.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/main/admin.py b/main/admin.py index fc76b9e4..087271a8 100644 --- a/main/admin.py +++ b/main/admin.py @@ -23,12 +23,15 @@ Provider, Skill, SkillLevel, + Team, + TeamMembership, ToolLanguageMethodology, User, UserSkill, ) + @admin.register(User) class CustomUserAdmin(UserAdmin[User]): """Override the UserAdmin to display extra fields.""" @@ -210,3 +213,13 @@ def has_delete_permission( ) -> bool: """Do not allow deleting users from this view.""" return False + + +@admin.register(Team) +class TeamAdmin(admin.ModelAdmin[Team]): + """Admin class for the Team model.""" + + +@admin.register(TeamMembership) +class TeamMembershipAdmin(admin.ModelAdmin[TeamMembership]): + """Admin class for the TeamMembership model.""" From a4a30d315436ad412880c854cb1ab2602a55b686 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 30 Apr 2026 12:47:28 +0000 Subject: [PATCH 3/3] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- main/admin.py | 1 - main/models/__init__.py | 2 +- main/models/team_models.py | 7 +++++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/main/admin.py b/main/admin.py index 087271a8..57e7fe2c 100644 --- a/main/admin.py +++ b/main/admin.py @@ -31,7 +31,6 @@ ) - @admin.register(User) class CustomUserAdmin(UserAdmin[User]): """Override the UserAdmin to display extra fields.""" diff --git a/main/models/__init__.py b/main/models/__init__.py index 664c8d39..0b00643d 100644 --- a/main/models/__init__.py +++ b/main/models/__init__.py @@ -1,5 +1,5 @@ """Init in models.""" from .framework_models import * # noqa: F403 -from .user_models import * # noqa: F403 from .team_models import * # noqa: F403 +from .user_models import * # noqa: F403 diff --git a/main/models/team_models.py b/main/models/team_models.py index 7bb6fcf7..67e80114 100644 --- a/main/models/team_models.py +++ b/main/models/team_models.py @@ -1,11 +1,14 @@ -from django.db import models from django.conf import settings +from django.db import models + from .framework_models import SluggedModel + class Team(SluggedModel): pass + class TeamMembership(models.Model): user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE) team = models.ForeignKey(Team, on_delete=models.CASCADE) - manager = models.BooleanField(blank=True, default=False) \ No newline at end of file + manager = models.BooleanField(blank=True, default=False)