From 7226d84b34eb47f7fe266175dc52e6ea39837353 Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Thu, 9 Jan 2020 22:00:05 +0100 Subject: [PATCH] add users app --- users/__init__.py | 0 users/admin.py | 3 +++ users/apps.py | 5 +++++ users/migrations/__init__.py | 0 users/models/__init__.py | 0 users/models/groups.py | 26 ++++++++++++++++++++++++++ users/models/user.py | 34 ++++++++++++++++++++++++++++++++++ users/views.py | 3 +++ 8 files changed, 71 insertions(+) create mode 100644 users/__init__.py create mode 100644 users/admin.py create mode 100644 users/apps.py create mode 100644 users/migrations/__init__.py create mode 100644 users/models/__init__.py create mode 100644 users/models/groups.py create mode 100644 users/models/user.py create mode 100644 users/views.py diff --git a/users/__init__.py b/users/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/users/admin.py b/users/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/users/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/users/apps.py b/users/apps.py new file mode 100644 index 0000000..4ce1fab --- /dev/null +++ b/users/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class UsersConfig(AppConfig): + name = 'users' diff --git a/users/migrations/__init__.py b/users/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/users/models/__init__.py b/users/models/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/users/models/groups.py b/users/models/groups.py new file mode 100644 index 0000000..004e511 --- /dev/null +++ b/users/models/groups.py @@ -0,0 +1,26 @@ +from django.db import models +from customer.models import Customer + + +class Group(models.Model): + name = models.CharField(max_length=50) + customer = models.ForeignKey(Customer, on_delete=models.CASCADE) + + class Meta: + abstract = True + + def __str__(self): + return self.name + + +class AdGroup(Group): + + class Meta: + verbose_name_plural = "AD Groups" + + +class MailGroup(Group): + mail_address = models.EmailField() + + class Meta: + verbose_name_plural = "Mail Groups" diff --git a/users/models/user.py b/users/models/user.py new file mode 100644 index 0000000..c7f5cdc --- /dev/null +++ b/users/models/user.py @@ -0,0 +1,34 @@ +from django.db import models +from customer.models import Customer +from .groups import AdGroup, MailGroup + + +class User(models.Model): + name = models.CharField(max_length=50) + first_name = models.CharField(max_length=50) + ad_login = models.CharField(max_length=50, blank=True) + ad_pw = models.CharField(max_length=50, blank=True) + primary_mail = models.CharField(max_length=50, blank=True) + mail_pw = models.CharField(max_length=50, blank=True) + enabled = models.BooleanField() + description = models.TextField(blank=True) + customer = models.ForeignKey(Customer, on_delete=models.CASCADE) + ad_groups = models.ManyToManyField(AdGroup, through='UserInAdGroup') + mail_groups = models.ManyToManyField(MailGroup, through='UserInMailGroup') + + def __str__(self): + return self.name + " " + self.first_name + + def get_absolute_url(self): + from django.urls import reverse + return reverse('user', args=[str(self.id)]) + + +class UserInAdGroup(models.Model): + user = models.ForeignKey(User, on_delete=models.CASCADE) + group = models.ForeignKey(AdGroup, on_delete=models.CASCADE) + + +class UserInMailGroup(models.Model): + user = models.ForeignKey(User, on_delete=models.CASCADE) + group = models.ForeignKey(MailGroup, on_delete=models.CASCADE) diff --git a/users/views.py b/users/views.py new file mode 100644 index 0000000..91ea44a --- /dev/null +++ b/users/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here.