feat: updated UserModel, changed status to is_online and added is_contact_only

This commit is contained in:
Chneemann 2025-03-29 22:48:37 +01:00
parent fc40cfa991
commit 6875c92cea
4 changed files with 9 additions and 8 deletions

View file

@ -4,23 +4,23 @@ from .models import User
class UserAdmin(admin.ModelAdmin): class UserAdmin(admin.ModelAdmin):
exclude = ('uId',) exclude = ('uId',)
list_display = ('first_name', 'last_name', 'email', 'phone', 'initials', 'color', 'status', 'last_login', 'is_active', 'is_staff') list_display = ('first_name', 'last_name', 'email', 'phone', 'initials', 'color', 'is_online', 'is_contact_only', 'last_login', 'is_active', 'is_staff')
list_filter = ('status', 'is_active', 'is_staff') list_filter = ('is_contact_only', 'is_online', 'is_active', 'is_staff')
search_fields = ('email', 'first_name', 'last_name') search_fields = ('email', 'first_name', 'last_name')
fieldsets = ( fieldsets = (
(None, { (None, {
'fields': ('first_name', 'last_name', 'email', 'phone', 'password') #Passwort hier beibehalten. 'fields': ('first_name', 'last_name', 'email', 'phone', 'password')
}), }),
('Additional Info', { ('Additional Info', {
'fields': ('initials', 'color', 'status', 'last_login') 'fields': ('initials', 'color', 'is_online', 'is_contact_only', 'last_login')
}), }),
('Permissions', { ('Permissions', {
'fields': ('is_active', 'is_staff') 'fields': ('is_active', 'is_staff')
}), }),
) )
list_editable = ('is_active', 'is_staff', 'status') list_editable = ('is_active', 'is_staff', 'is_online', 'is_contact_only')
ordering = ('last_name',) ordering = ('last_name',)
def save_model(self, request, obj, form, change): def save_model(self, request, obj, form, change):

View file

@ -35,7 +35,8 @@ class User(AbstractBaseUser, PermissionsMixin):
phone = models.CharField(max_length=20, blank=True, null=True) phone = models.CharField(max_length=20, blank=True, null=True)
initials = models.CharField(max_length=10, blank=True) initials = models.CharField(max_length=10, blank=True)
color = models.CharField(max_length=20, blank=True) color = models.CharField(max_length=20, blank=True)
status = models.BooleanField(default=True) is_online = models.BooleanField(default=False)
is_contact_only = models.BooleanField(default=False)
last_login = models.DateTimeField(blank=True, null=True) last_login = models.DateTimeField(blank=True, null=True)
is_active = models.BooleanField(default=True) is_active = models.BooleanField(default=True)

View file

@ -6,7 +6,7 @@ from djangorestframework_camel_case.render import CamelCaseJSONRenderer
class UserSerializer(serializers.ModelSerializer): class UserSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = User model = User
fields = ['id', 'first_name', 'last_name', 'email', 'phone', 'initials', 'color', 'status', 'last_login'] fields = ['id', 'first_name', 'last_name', 'email', 'phone', 'initials', 'color', 'is_online', 'is_contact_only', 'last_login']
class UserViewSet(viewsets.ModelViewSet): class UserViewSet(viewsets.ModelViewSet):
serializer_class = UserSerializer serializer_class = UserSerializer

View file

@ -9,7 +9,7 @@ from rest_framework import status
class UserViewSet(viewsets.ModelViewSet): class UserViewSet(viewsets.ModelViewSet):
permission_classes = [IsAuthenticated] permission_classes = [IsAuthenticated]
queryset = User.objects.all() queryset = User.objects.filter(is_active=True, is_superuser=False)
serializer_class = UserSerializer serializer_class = UserSerializer
def retrieve(self, request, pk=None): def retrieve(self, request, pk=None):