# Path: server/apps/authentication/forms.py
# class AdminUserChangeForm(forms.ModelForm):
#     """A form for updating users. Includes all the fields on
#     the user, but replaces the password field with admin's
#     password hash display field.
#     """
#     password = ReadOnlyPasswordHashField()
# 
#     class Meta:
#         model = Account
#         fields = ('username', 'email', 'password', 'name', 'is_active', 'is_staff', 'is_admin')
# 
#     def clean_password(self):
#         # Regardless of what the user provides, return the initial value.
#         # This is done here, rather than on the field, because the
#         # field does not have access to the initial value
#         return self.initial["password"]
# 
# class AdminUserCreationForm(forms.ModelForm):
#     """A form for creating new users. Includes all the required
#     fields, plus a repeated password."""
#     password1 = forms.CharField(label='Password', widget=forms.PasswordInput)
#     password2 = forms.CharField(label='Password confirmation', widget=forms.PasswordInput)
# 
#     class Meta:
#         model = Account
#         fields = ('username', 'email', 'name', 'is_staff', )
# 
#     def clean_password2(self):
#         # Check that the two password entries match
#         password1 = self.cleaned_data.get("password1")
#         password2 = self.cleaned_data.get("password2")
#         if password1 and password2 and password1 != password2:
#             raise forms.ValidationError("Passwords don't match")
#         return password2
# 
#     def save(self, commit=True):
#         # Save the provided password in hashed format
#         user = super(AdminUserCreationForm, self).save(commit=False)
#         user.set_password(self.cleaned_data["password1"])
#         if commit:
#             user.save()
#         return user


from django.contrib import admin
from .forms import AdminUserChangeForm, AdminUserCreationForm
from .models import *



class AccountAdmin(admin.ModelAdmin):

    def get_form(self, request, obj=None, **kwargs):

        if obj:
            return AdminUserChangeForm
        else:
            return AdminUserCreationForm


# Path: server/apps/authentication/forms.py
# class AdminUserChangeForm(forms.ModelForm):
#     """A form for updating users. Includes all the fields on
#     the user, but replaces the password field with admin's
#     password hash display field.
#     """
#     password = ReadOnlyPasswordHashField()
# 
#     class Meta:
#         model = Account
#         fields = ('username', 'email', 'password', 'name', 'is_active', 'is_staff', 'is_admin')
# 
#     def clean_password(self):
#         # Regardless of what the user provides, return the initial value.
#         # This is done here, rather than on the field, because the
#         # field does not have access to the initial value
#         return self.initial["password"]
# 
# class AdminUserCreationForm(forms.ModelForm):
#     """A form for creating new users. Includes all the required
#     fields, plus a repeated password."""
#     password1 = forms.CharField(label='Password', widget=forms.PasswordInput)
#     password2 = forms.CharField(label='Password confirmation', widget=forms.PasswordInput)
# 
#     class Meta:
#         model = Account
#         fields = ('username', 'email', 'name', 'is_staff', )
# 
#     def clean_password2(self):
#         # Check that the two password entries match
#         password1 = self.cleaned_data.get("password1")
#         password2 = self.cleaned_data.get("password2")
#         if password1 and password2 and password1 != password2:
#             raise forms.ValidationError("Passwords don't match")
#         return password2
# 
#     def save(self, commit=True):
#         # Save the provided password in hashed format
#         user = super(AdminUserCreationForm, self).save(commit=False)
#         user.set_password(self.cleaned_data["password1"])
#         if commit:
#             user.save()
#         return user


# Path: server/apps/authentication/admin.py
from django.contrib import admin
from .forms import AdminUserChangeForm, AdminUserCreationForm
from .models import *




class AccountAdmin(admin.ModelAdmin):

    def get_form(self, request, obj=None, **kwargs):

        if obj:
            return AdminUserChangeForm
        else:
            return AdminUserCreationForm


    list_display = ('id', 'username', 'email', 'name', 'created_at', 'last_login', 'is_active', 'is_staff')