Added more docstrings to forms and fields
This commit is contained in:
parent
26dd863af8
commit
d04a7121df
20 changed files with 79 additions and 9 deletions
|
|
@ -6,15 +6,16 @@ from bs4 import BeautifulSoup
|
|||
class IntegerField(PhangoField):
|
||||
|
||||
"""Class that figure an integer sql type field.
|
||||
|
||||
Args:
|
||||
name (str): The name of new field
|
||||
size (int): The size of the new field in database. By default 11.
|
||||
required (bool): Boolean for define if field is required or not
|
||||
|
||||
"""
|
||||
|
||||
def __init__(self, name, size=11, required=False):
|
||||
"""
|
||||
Args:
|
||||
name (str): The name of field
|
||||
size (int): The size of the new field in database. By default 11.
|
||||
required (bool): Boolean for define if field is required or not
|
||||
"""
|
||||
|
||||
super(IntegerField, self).__init__(name, size, required)
|
||||
self.default_value=0
|
||||
|
||||
|
|
|
|||
|
|
@ -2,8 +2,15 @@ from paramecio2.libraries.db.webmodel import PhangoField,WebModel
|
|||
import json
|
||||
|
||||
class ArrayField(PhangoField):
|
||||
"""Field for save json arrays with determined values"""
|
||||
|
||||
def __init__(self, name, field_type, required=False):
|
||||
"""
|
||||
Args:
|
||||
name (str): The name of new field
|
||||
field_type (PhangoField): The type of PhangoField for save in ArrayField
|
||||
required (bool): Boolean for define if field is required or not
|
||||
"""
|
||||
|
||||
super().__init__(name, required)
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ from paramecio2.libraries.db.corefields import IntegerField
|
|||
from paramecio2.libraries.db.extraforms.colorform import ColorForm
|
||||
|
||||
class ColorField(IntegerField):
|
||||
"""Simple field for save colors in hexadecimal format."""
|
||||
|
||||
def __init__(self, name, size=11, required=False):
|
||||
super().__init__(name, size, required)
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ from paramecio2.libraries import datetime
|
|||
from paramecio2.libraries.db.extraforms.dateform import DateForm
|
||||
|
||||
class DateField(PhangoField):
|
||||
"""Field for use and save dates in YYYYMMDDHHSS format"""
|
||||
|
||||
def __init__(self, name, size=255, required=False):
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ from paramecio2.libraries import datetime
|
|||
from paramecio2.libraries.db.extraforms.dateform import DateForm
|
||||
|
||||
class DateTimeField(PhangoField):
|
||||
"""Field for use and save dates in MySQL date format"""
|
||||
|
||||
def __init__(self, name, size=255, required=False):
|
||||
|
||||
|
|
|
|||
|
|
@ -2,8 +2,15 @@ from paramecio2.libraries.db.webmodel import WebModel, PhangoField
|
|||
import json
|
||||
|
||||
class DictField(PhangoField):
|
||||
"""Field for save json dicts with determined values"""
|
||||
|
||||
def __init__(self, name, field_type, required=False):
|
||||
"""
|
||||
Args:
|
||||
name (str): The name of field
|
||||
field_type (PhangoField): The type of PhangoField for save in ArrayField
|
||||
required (bool): Boolean for define if field is required or not
|
||||
"""
|
||||
|
||||
super().__init__(name, required)
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import re
|
|||
mail_pattern=re.compile("\w[\w\.-]*@\w[\w\.-]+\.\w+")
|
||||
|
||||
class EmailField(CharField):
|
||||
"""Field for save and check email addreses"""
|
||||
|
||||
def __init__(self, name, size=1024, required=False):
|
||||
|
||||
|
|
|
|||
|
|
@ -17,8 +17,17 @@ from uuid import uuid4
|
|||
#from paramecio2.libraries.db.extraforms.fileform import FileForm
|
||||
|
||||
class FileField(CharField):
|
||||
"""Field for upload and save files in server"""
|
||||
|
||||
def __init__(self, name, save_folder='media/upload/files', sizes=None, module=None, size=255, required=False):
|
||||
def __init__(self, name, save_folder='media/upload/files', sizes=None, size=255, required=False):
|
||||
"""
|
||||
Args:
|
||||
name (str): The name of field
|
||||
save_folder (str): The folder where the files are saved
|
||||
sizes (list): In the future will be used for check sizes of files.
|
||||
size (int): The size of the new field in database. By default 11.
|
||||
required (bool): Boolean for define if field is required or not
|
||||
"""
|
||||
|
||||
super().__init__(name, size, required)
|
||||
|
||||
|
|
|
|||
|
|
@ -10,8 +10,14 @@ import json
|
|||
import re
|
||||
|
||||
class I18nField(PhangoField):
|
||||
"""Field for save strings multilanguage in json format"""
|
||||
|
||||
def __init__(self, name, form=None):
|
||||
"""
|
||||
Args
|
||||
name (str): The name of field
|
||||
form (BaseForm): The form used for generate the multiple languade form. Example if you use a TextForm, a TextForm for every language will be showed.
|
||||
"""
|
||||
|
||||
super().__init__(name)
|
||||
|
||||
|
|
|
|||
|
|
@ -18,8 +18,17 @@ from uuid import uuid4
|
|||
#from paramecio2.libraries.db.extraforms.fileform import FileForm
|
||||
|
||||
class ImageField(CharField):
|
||||
"""Field for upload images in gif, jpg and png formats"""
|
||||
|
||||
def __init__(self, name, save_folder='media/upload/images', sizes=None, module=None, size=255, required=False):
|
||||
"""
|
||||
Args:
|
||||
name (str): The name of field
|
||||
save_folder (str): The folder where the images are saved
|
||||
sizes (list): In the future will be used for check sizes of files.
|
||||
size (int): The size of the new field in database. By default 11.
|
||||
required (bool): Boolean for define if field is required or not
|
||||
"""
|
||||
|
||||
super().__init__(name, size, required)
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ from paramecio2.libraries.db.corefields import CharField
|
|||
import ipaddress
|
||||
|
||||
class IpField(CharField):
|
||||
"""Field for save ip internet address values in db"""
|
||||
|
||||
def check(self, value):
|
||||
|
||||
|
|
|
|||
|
|
@ -7,8 +7,15 @@ except:
|
|||
import json
|
||||
|
||||
class JsonField(PhangoField):
|
||||
|
||||
"""Field for save json datatype values"""
|
||||
|
||||
def __init__(self, name, field_type, required=False):
|
||||
"""
|
||||
Args:
|
||||
name (str): The name of field
|
||||
field_type (PhangoField): The type of PhangoField for save in JsonField
|
||||
required (bool): Boolean for define if field is required or not
|
||||
"""
|
||||
|
||||
super().__init__(name, required)
|
||||
|
||||
|
|
@ -58,6 +65,7 @@ class JsonField(PhangoField):
|
|||
# You need check the values previously.
|
||||
|
||||
class JsonValueField(PhangoField):
|
||||
"""Field for save json mixed values. You need check the values previously, the field only check values for prevent sql injections."""
|
||||
|
||||
def __init__(self, name, required=False):
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ from paramecio2.libraries.db import coreforms
|
|||
from paramecio2.libraries.i18n import I18n
|
||||
|
||||
class LangField(CharField):
|
||||
"""Field for save language codes, by default es-ES (spanish) and en-US (USA english)"""
|
||||
|
||||
def __init__(self, name, size=255, required=False):
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ from locale import format_string
|
|||
getcontext().prec=2
|
||||
|
||||
class MoneyField(DecimalField):
|
||||
"""Field for maintain money values for e-commerce shopping for example."""
|
||||
|
||||
def __init__(self, name, required=False):
|
||||
|
||||
|
|
|
|||
|
|
@ -7,8 +7,16 @@ from paramecio2.libraries.db.coreforms import SelectModelForm
|
|||
from flask import request
|
||||
|
||||
class ParentField(IntegerField):
|
||||
"""Field used for create fields used by save a parent id from a row in db."""
|
||||
|
||||
def __init__(self, name, size=11, required=False, field_name='name'):
|
||||
"""
|
||||
Args:
|
||||
name (str): The name of field
|
||||
size (int): The size of the new field in database. By default 11.
|
||||
required (bool): Boolean for define if field is required or not
|
||||
field_name (str): The name of the field used for identify the father row of the db.
|
||||
"""
|
||||
|
||||
super().__init__(name, size, required)
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ from hmac import compare_digest as compare_hash
|
|||
import crypt
|
||||
|
||||
class PasswordField(PhangoField):
|
||||
"""Field for check and save passwords"""
|
||||
|
||||
def __init__(self, name, size=1024, required=False):
|
||||
|
||||
|
|
@ -57,6 +58,7 @@ class PasswordField(PhangoField):
|
|||
|
||||
@staticmethod
|
||||
def verify( password, h):
|
||||
"""Static method used for verify a password save using PasswordField"""
|
||||
#return bcrypt_sha256.verify(password, h)
|
||||
return compare_hash(h, crypt.crypt(password, h))
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
from paramecio2.libraries.db.corefields import IntegerField
|
||||
|
||||
class PercentField(IntegerField):
|
||||
"""Field used for save percent values from 0 to 100."""
|
||||
|
||||
def __init__(self, name, required=False):
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ from slugify import slugify
|
|||
from paramecio2.libraries.db.coreforms import HiddenForm
|
||||
|
||||
class SlugifyField(CharField):
|
||||
"""Field for process text and slugify it"""
|
||||
|
||||
def __init__(self, name, size=255, field_related=None, required=False):
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ check_url = re.compile(
|
|||
r'(?:/?|[/?]\S+)$', re.IGNORECASE)
|
||||
|
||||
class UrlField(CharField):
|
||||
"""Field for check and save strings in url format"""
|
||||
|
||||
def check(self, value):
|
||||
|
||||
|
|
@ -28,6 +29,7 @@ class UrlField(CharField):
|
|||
check_domain=re.compile('^(([a-zA-Z]{1})|([a-zA-Z]{1}[a-zA-Z]{1})|([a-zA-Z]{1}[0-9]{1})|([0-9]{1}[a-zA-Z]{1})|([a-zA-Z0-9][a-zA-Z0-9-_]{1,61}[a-zA-Z0-9]))\.([a-zA-Z]{2,6}|[a-zA-Z0-9-]{2,30}\.[a-zA-Z]{2,3})$')
|
||||
|
||||
class DomainField(CharField):
|
||||
"""Field for check and save strings in domain internet format"""
|
||||
|
||||
def check(self, value):
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,9 @@ import crypt
|
|||
import re
|
||||
|
||||
class UserNameField(PhangoField):
|
||||
|
||||
|
||||
"""Field for save and check usernames"""
|
||||
|
||||
def check(self, value):
|
||||
|
||||
if not re.match("^[A-Za-z0-9_-]+$", value):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue