Commit inicial

Habia trabajado un buen poco pero como vi que tenia que separar los
repositorios perdi bastante la historia :c
This commit is contained in:
Daniel Cortes
2020-05-22 00:05:27 -04:00
commit 3568abfbc7
44 changed files with 1841 additions and 0 deletions

88
users/admin.py Normal file
View File

@@ -0,0 +1,88 @@
from django.contrib import admin
from django.contrib.auth.forms import ReadOnlyPasswordHashField
from django.contrib.auth.models import Group
from django import forms
from users.models import User, SocialNetworks
admin.site.unregister(Group)
class UserAddForm(forms.ModelForm):
password = forms.CharField(label='Contraseña', widget=forms.PasswordInput)
password_confirmation = forms.CharField(label='Confirmación de contraseña', widget=forms.PasswordInput)
class Meta:
model = User
fields = ('username', 'email')
def clean_password_confirmation(self):
password = self.cleaned_data.get("password")
password_confirmation = self.cleaned_data.get("password_confirmation")
if password and password_confirmation and password != password_confirmation:
raise forms.ValidationError('Las contraseñas no coinciden')
return password_confirmation
def save(self, commit=True):
user = super().save(commit=False)
user.set_password(self.cleaned_data['password'])
if commit:
user.save()
return user
class UserChangeForm(forms.ModelForm):
password = ReadOnlyPasswordHashField()
class Meta:
model = User
fields = ('username', 'email', 'password', 'is_admin')
def clean_password(self):
return self.initial['password']
@admin.register(User)
class UserAdmin(admin.ModelAdmin):
form = UserChangeForm
add_form = UserAddForm
list_display = ('username', 'email', 'is_admin', 'is_active')
list_filter = ('is_admin', 'is_active')
fieldsets = (
(None, {'fields': ('username', 'email', 'password')}),
('Permisos', {'fields': ('is_admin',)}),
)
add_fieldsets = (
(None, {'fields': ('username', 'email', 'password', 'password_confirmation')}),
)
search_fields = ('username', 'email')
ordering = ('username', 'email')
def get_fieldsets(self, request, obj=None):
if not obj:
return self.add_fieldsets
return super().get_fieldsets(request, obj)
def get_form(self, request, obj=None, **kwargs):
defaults = {}
if obj is None:
defaults['form'] = self.add_form
defaults.update(kwargs)
return super().get_form(request, obj, **defaults)
@admin.register(SocialNetworks)
class SocialNetworksAdmin(admin.ModelAdmin):
list_display = ('user', 'twitter', 'facebook', 'instagram', 'youtube', 'twitch')
raw_id_fields = ('user',)
search_fields = ('user__username',)
ordering = ('user',)