63 lines
4.4 KiB
Python
63 lines
4.4 KiB
Python
from django.db import models
|
|
from django.utils.translation import gettext_lazy as _
|
|
|
|
|
|
class WorkflowConfig(models.Model):
|
|
REMOTE_BACKUP_TARGET_CHOICES = [('nextcloud', _('Nextcloud')), ('s3', _('S3')), ('nfs', _('NFS'))]
|
|
|
|
name = models.CharField(max_length=120, default='Default', unique=True)
|
|
it_onboarding_email = models.EmailField(blank=True)
|
|
general_info_email = models.EmailField(blank=True)
|
|
business_card_email = models.EmailField(blank=True)
|
|
hr_works_email = models.EmailField(blank=True)
|
|
key_notification_email = models.EmailField(blank=True)
|
|
nextcloud_enabled_override = models.BooleanField(null=True, blank=True, default=None, verbose_name='Nextcloud Upload aktiviert (Override)', help_text='Leer = ENV-Wert nutzen, Ja = erzwingen aktiv, Nein = erzwingen inaktiv')
|
|
email_test_mode_override = models.BooleanField(null=True, blank=True, default=None, verbose_name='E-Mail Testmodus aktiv (Override)', help_text='Leer = ENV-Wert nutzen, Ja = Testmodus erzwingen, Nein = Produktionsmodus erzwingen')
|
|
nextcloud_base_url_override = models.CharField(max_length=500, blank=True, verbose_name='Nextcloud Base URL (Override)')
|
|
nextcloud_username_override = models.CharField(max_length=255, blank=True, verbose_name='Nextcloud Benutzername (Override)')
|
|
nextcloud_password_override = models.CharField(max_length=255, blank=True, verbose_name='Nextcloud Passwort (Override)')
|
|
nextcloud_directory_override = models.CharField(max_length=255, blank=True, verbose_name='Nextcloud Verzeichnis (Override)')
|
|
sync_interval_seconds = models.PositiveIntegerField(default=60, verbose_name='Sync-Intervall (Sekunden)')
|
|
device_handover_lead_days = models.PositiveIntegerField(default=5, verbose_name='Vorlauf Geräteübergabe (Tage)')
|
|
remote_backup_enabled = models.BooleanField(default=False, verbose_name='Remote Backup aktiviert')
|
|
remote_backup_target_type = models.CharField(max_length=20, choices=REMOTE_BACKUP_TARGET_CHOICES, default='nextcloud', verbose_name='Remote Backup Zieltyp')
|
|
remote_backup_nextcloud_directory = models.CharField(max_length=255, blank=True, verbose_name='Nextcloud Backup-Verzeichnis')
|
|
remote_backup_s3_bucket = models.CharField(max_length=255, blank=True, verbose_name='S3 Bucket (optional)')
|
|
remote_backup_nfs_path = models.CharField(max_length=255, blank=True, verbose_name='NFS Pfad (optional)')
|
|
welcome_email_delay_days = models.PositiveIntegerField(default=5, verbose_name='Welcome E-Mail Verzögerung (Tage)')
|
|
welcome_sender_email = models.EmailField(blank=True, verbose_name='Welcome E-Mail Absender')
|
|
welcome_include_pdf = models.BooleanField(default=True, verbose_name='Welcome E-Mail mit PDF-Anhang')
|
|
imap_server = models.CharField(max_length=255, blank=True, verbose_name='IMAP Server')
|
|
mailbox = models.CharField(max_length=120, blank=True, default='INBOX', verbose_name='Mailbox')
|
|
smtp_server = models.CharField(max_length=255, blank=True, verbose_name='SMTP Server')
|
|
smtp_port = models.PositiveIntegerField(default=465, verbose_name='SMTP Port')
|
|
email_account = models.EmailField(blank=True, verbose_name='E-Mail Konto')
|
|
email_password = models.CharField(max_length=255, blank=True, verbose_name='E-Mail Passwort')
|
|
smtp_use_ssl = models.BooleanField(default=True, verbose_name='SMTP SSL nutzen')
|
|
smtp_use_tls = models.BooleanField(default=False, verbose_name='SMTP TLS nutzen')
|
|
legal_text = models.TextField(blank=True, default='Eine Ausrüstungsvereinbarung erlaubt es einem Mitarbeitenden, die Ausrüstung des Unternehmens im Außendienst oder zu Hause zu nutzen und mitzunehmen.')
|
|
|
|
def __str__(self) -> str:
|
|
return self.name
|
|
|
|
|
|
class SystemEmailConfig(models.Model):
|
|
name = models.CharField(max_length=120, default='Default SMTP', unique=True)
|
|
is_active = models.BooleanField(default=False)
|
|
host = models.CharField(max_length=255, blank=True)
|
|
port = models.PositiveIntegerField(default=587)
|
|
username = models.CharField(max_length=255, blank=True)
|
|
password = models.CharField(max_length=255, blank=True)
|
|
use_tls = models.BooleanField(default=True)
|
|
use_ssl = models.BooleanField(default=False)
|
|
from_email = models.EmailField(blank=True)
|
|
updated_at = models.DateTimeField(auto_now=True)
|
|
|
|
class Meta:
|
|
verbose_name = 'System SMTP Konfiguration'
|
|
verbose_name_plural = 'System SMTP Konfigurationen'
|
|
|
|
def __str__(self) -> str:
|
|
state = 'aktiv' if self.is_active else 'inaktiv'
|
|
return f'{self.name} ({state})'
|