#encoding:utf-8 from django import forms from django.forms import ModelForm from diario.models import * from django.contrib.auth.models import User,Group from django.forms.util import flatatt from django.template import loader from django.utils.datastructures import SortedDict from django.utils.html import format_html, format_html_join from django.utils.http import int_to_base36 from django.utils.safestring import mark_safe from django.utils.text import capfirst from django.utils.translation import ugettext, ugettext_lazy as _ from django.contrib.auth import authenticate, get_user_model from django.contrib.auth.models import User from django.contrib.auth.hashers import UNUSABLE_PASSWORD, identify_hasher from django.contrib.auth.tokens import default_token_generator from django.contrib.sites.models import get_current_site class TipoContenidoForm(forms.ModelForm): class Meta: model = TipoContenido class PeriodicoForm(forms.ModelForm): class Meta: model = Periodico class ImportarForm(forms.Form): archivo = forms.FileField(label='Archivo') class FiltrarForm(forms.Form): desde = forms.DateField(label="Desde") hasta = forms.DateField(label="Hasta") class NumeroPeriodicoForm(forms.Form): numeroperiodico = forms.CharField(label="Número de Periódico") class TituloForm(forms.Form): titulo = forms.CharField(label="Titulo del Periódico") class TituloNumeroForm(forms.Form): numeroperiodico = forms.CharField(label="Número de Periódico") titulo = forms.CharField(label="Titulo del Periódico") class PermisosForm(forms.ModelForm): error_messages = { 'duplicate_username': ("Ya existe un usuario con ese nombre de usuario."), 'password_mismatch': ("las dos contraseñas no coinciden."), } username = forms.RegexField(label=("Usuario") ,max_length=30, regex=r'^[\w.@+-]+$', help_text=("Necesario. 30 caracteres o menos. Letras, digitos y " "@/./+/-/_ solamente."), error_messages={ 'invalid': (" Este valor solo debe contener letras, numeros y los caracteres" "@/./+/-/_ ")} ,widget = forms.TextInput(attrs={'class':'required usernameField span3'}) ) password1 = forms.CharField(label=("Contraseña"), widget=forms.PasswordInput(attrs={'class':'required span3'})) password2 = forms.CharField(label=("Confirmación de contraseña"), widget=forms.PasswordInput(attrs={'class':'required span3'}), help_text=("Entre la misma contraseña del campo anterior, para verificación.")) grupo = forms.ModelChoiceField(queryset=Group.objects.all(),required=True,label='Tipo de Usuario') class Meta: model = User fields = ("username","first_name","last_name",) def clean_username(self): # Since User.username is unique, this check is redundant, # but it sets a nicer error message than the ORM. See #13147. username = self.cleaned_data["username"] try: User._default_manager.get(username=username) except User.DoesNotExist: return username raise forms.ValidationError(self.error_messages['duplicate_username']) def clean_password2(self): password1 = self.cleaned_data.get("password1") password2 = self.cleaned_data.get("password2") if password1 and password2 and password1 != password2: raise forms.ValidationError( self.error_messages['password_mismatch']) return password2 def save(self, commit=True): user = super(PermisosForm, self).save(commit=False) user.set_password(self.cleaned_data["password1"]) if commit: user.save() return user class Permisos2Form(forms.ModelForm): error_messages = { 'duplicate_username': ("Ya existe un usuario con ese nombre de usuario."), 'password_mismatch': ("las dos contraseñas no coinciden."), } username = forms.RegexField(label=("Usuario") ,max_length=30, regex=r'^[\w.@+-]+$', help_text=("Necesario. 30 caracteres o menos. Letras, digitos y " "@/./+/-/_ solamente."), error_messages={ 'invalid': (" Este valor solo debe contener letras, numeros y los caracteres" "@/./+/-/_ ")} ,widget = forms.TextInput(attrs={'class':'required usernameField span3'}) ) password1 = forms.CharField(label=("Contraseña"), widget=forms.PasswordInput(attrs={'class':'required span3'})) password2 = forms.CharField(label=("Confirmación de contraseña"), widget=forms.PasswordInput(attrs={'class':'required span3'}), help_text=("Entre la misma contraseña del campo anterior, para verificación.")) grupo = forms.ModelChoiceField(queryset=Group.objects.all(),required=True,label='Tipo de Usuario') class Meta: model = User fields = ("username","first_name","last_name",) def clean_password2(self): password1 = self.cleaned_data.get("password1") password2 = self.cleaned_data.get("password2") if password1 and password2 and password1 != password2: raise forms.ValidationError( self.error_messages['password_mismatch']) return password2 def save(self, commit=True): user = super(Permisos2Form, self).save(commit=False) user.set_password(self.cleaned_data["password1"]) if commit: user.save() return user