From: Radek Czajka Date: Wed, 26 Aug 2026 13:59:11 +0000 (+0200) Subject: Shared mailboxes X-Git-Url: https://git.mdrn.pl/cas.git/commitdiff_plain/e1665923b8c33e6bbbb7bf0f2047edb0db5ef572?hp=24e6d9ab498222fbca619faf9bc8d17aace46137 Shared mailboxes --- diff --git a/docker-compose.yml b/docker-compose.yml index 249139d..c6021cf 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,5 +1,3 @@ -version: '3' - services: dev: build: @@ -8,3 +6,6 @@ services: volumes: - ./src:/app/src - ./media:/app/media + ports: + - "8050:8000" + command: ./manage.py runserver 0.0.0.0:8000 diff --git a/src/emails/admin.py b/src/emails/admin.py index fee152d..cdf2710 100644 --- a/src/emails/admin.py +++ b/src/emails/admin.py @@ -2,10 +2,16 @@ from django.contrib import admin from . import models +@admin.register(models.Alias) class AliasAdmin(admin.ModelAdmin): search_fields = ['source', 'destination'] list_display = ['source', 'destination', 'mode'] list_filter = ['mode'] -admin.site.register(models.Alias, AliasAdmin) +@admin.register(models.SharedMailbox) +class SharedMailboxAdmin(admin.ModelAdmin): + list_display = ['name'] + search_fields = ['name'] + filter_horizontal = ['users'] + diff --git a/src/emails/migrations/0004_sharedmailbox.py b/src/emails/migrations/0004_sharedmailbox.py new file mode 100644 index 0000000..a859b77 --- /dev/null +++ b/src/emails/migrations/0004_sharedmailbox.py @@ -0,0 +1,28 @@ +# Generated by Django 4.2.13 on 2026-08-26 13:51 + +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('emails', '0003_aliasusage'), + ] + + operations = [ + migrations.CreateModel( + name='SharedMailbox', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(blank=True, max_length=255, verbose_name='name')), + ('users', models.ManyToManyField(to=settings.AUTH_USER_MODEL)), + ], + options={ + 'verbose_name': 'shared mailbox', + 'verbose_name_plural': 'shared mailboxes', + 'ordering': ('name',), + }, + ), + ] diff --git a/src/emails/models.py b/src/emails/models.py index 5375a7c..677a0a0 100644 --- a/src/emails/models.py +++ b/src/emails/models.py @@ -41,3 +41,16 @@ class AliasUsage(models.Model): unique_together = (('alias', 'date'),) verbose_name = _('alias usage') verbose_name_plural = _('alias usage') + + +class SharedMailbox(models.Model): + name = models.CharField(_('name'), max_length=255, blank=True) + users = models.ManyToManyField('auth.User') + + class Meta: + verbose_name = _('shared mailbox') + verbose_name_plural = _('shared mailboxes') + ordering = ('name',) + + def __str__(self): + return self.name diff --git a/src/emails/templates/emails/my_aliases.html b/src/emails/templates/emails/my_aliases.html index 4103831..b959fed 100644 --- a/src/emails/templates/emails/my_aliases.html +++ b/src/emails/templates/emails/my_aliases.html @@ -30,4 +30,13 @@ {% endif %} +

{% trans "Shared mailboxes" %}:

+ + {% endblock %}