Source code for biosample.forms
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Mon Jun 11 17:20:12 2018
@author: Paolo Cozzi <cozzi@ibba.cnr.it>
"""
from django import forms
from django.contrib.auth import password_validation
from common.forms import RequestFormMixin
from .models import Account
[docs]class GenerateTokenForm(RequestFormMixin, forms.Form):
name = forms.CharField(
help_text="Your BioSamples User id",
disabled=True,
widget=forms.HiddenInput)
password = forms.CharField(
widget=forms.PasswordInput(),
help_text="Your BioSamples User password")
[docs]class RegisterUserForm(RequestFormMixin, forms.ModelForm):
name = forms.SlugField(
help_text="Your BioSamples User id")
password = forms.CharField(
widget=forms.PasswordInput(),
help_text="Your BioSamples User password")
[docs]class CreateUserForm(RequestFormMixin, forms.Form):
"""Based on django.contrib.ath.form"""
error_messages = {
'password_mismatch': "The two password fields didn't match."
}
password1 = forms.CharField(
label="Password",
strip=False,
widget=forms.PasswordInput,
help_text=password_validation.password_validators_help_text_html(),
)
password2 = forms.CharField(
label="Password confirmation",
widget=forms.PasswordInput,
strip=False,
help_text="Enter the same password as above",
)
[docs] def __init__(self, *args, **kwargs):
# remove username, request will be removed bu super() method
if 'username' in kwargs:
self.username = kwargs.pop('username')
super(CreateUserForm, self).__init__(*args, **kwargs)
[docs] 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'],
code='password_mismatch',
)
try:
password_validation.validate_password(password2)
except forms.ValidationError as error:
self.add_error('password2', error)
return password2
# I use forms.Form since I need to pass primary key as a field,
# and I can't use it with a modelform
[docs]class SubmitForm(RequestFormMixin, forms.Form):
submission_id = forms.IntegerField(
required=True,
widget=forms.HiddenInput)
name = forms.CharField(
help_text="Your AAP User id",
disabled=True,
required=False,
widget=forms.HiddenInput)
password = forms.CharField(
widget=forms.PasswordInput(),
required=False,
help_text="Your BioSamples User password")