Skip to content
Snippets Groups Projects
Commit 52331cc4 authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Merge branch '712-add-organisation-model' into 'master'

Resolve "Add Organisation model"

Closes #712

See merge request !1089
parents d7c08507 040a64fd
No related branches found
No related tags found
1 merge request!1089Resolve "Add Organisation model"
Pipeline #147366 canceled
......@@ -28,6 +28,7 @@ Added
* [Dev] Managed models for instances handled by other apps.
* [Dev] Upload slot sytem for out-of-band uploads in GraphQL clients
* Generic endpoint for retrieving objects as JSON
* [Dev] Base model for organisational entities (external companies, associations,…)
Changed
~~~~~~~
......
......@@ -14,6 +14,7 @@ from .models import (
DataCheckResult,
Group,
Notification,
Organisation,
Person,
)
......@@ -40,3 +41,4 @@ admin.site.register(Announcement, AnnouncementAdmin)
admin.site.register(DataCheckResult)
admin.site.register(Person, GuardedVersionAdmin)
admin.site.register(Group, GuardedVersionAdmin)
admin.site.register(Organisation)
# Generated by Django 4.1.7 on 2023-03-23 18:30
import django.contrib.sites.managers
from django.db import migrations, models
import django.db.models.deletion
import aleksis.core.managers
class Migration(migrations.Migration):
dependencies = [
("sites", "0002_alter_domain_unique"),
("core", "0052_site_related_name"),
]
operations = [
migrations.CreateModel(
name="Organisation",
fields=[
(
"id",
models.BigAutoField(
auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
),
),
("extended_data", models.JSONField(default=dict, editable=False)),
("name", models.CharField(max_length=255, verbose_name="Name")),
("email", models.CharField(max_length=255, verbose_name="Email")),
(
"related_group",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
to="core.group",
verbose_name="Related group",
),
),
(
"site",
models.ForeignKey(
default=1,
editable=False,
on_delete=django.db.models.deletion.CASCADE,
related_name="+",
to="sites.site",
),
),
],
options={
"abstract": False,
},
managers=[
("objects", django.contrib.sites.managers.CurrentSiteManager()),
],
),
migrations.AlterModelOptions(
name="organisation",
options={"verbose_name": "Organisation", "verbose_name_plural": "Organisations"},
),
migrations.AlterModelManagers(
name="organisation",
managers=[
("objects", aleksis.core.managers.AlekSISBaseManager()),
],
),
migrations.AddField(
model_name="organisation",
name="managed_by_app_label",
field=models.CharField(
blank=True,
editable=False,
max_length=255,
verbose_name="App label of app responsible for managing this instance",
),
),
]
......@@ -1773,3 +1773,19 @@ class Holiday(CalendarEvent):
class Meta:
verbose_name = _("Holiday")
verbose_name_plural = _("Holidays")
class Organisation(ExtensibleModel):
name = models.CharField(verbose_name=_("Name"), max_length=255)
email = models.CharField(verbose_name=_("Email"), max_length=255)
related_group = models.ForeignKey(
Group, on_delete=models.CASCADE, verbose_name=_("Related group")
)
def __str__(self) -> str:
return f"{self.name}"
class Meta:
verbose_name = _("Organisation")
verbose_name_plural = _("Organisations")
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment