-
Notifications
You must be signed in to change notification settings - Fork 0
/
form.py
65 lines (54 loc) · 1.92 KB
/
form.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Thu Sep 5 18:12:06 2019
@author: rosto
"""
from enum import Enum
import oggettoHTML
class InputType(Enum):
PASSWORD = "password"
TEXT = "text"
SUBMIT = "submit"
CHECKBOX = "checkbox"
#DATE = "date"
EMAIL = "email"
class MethodHttp(Enum):
POST="post"
GET="get"
class Form(oggettoHTML.OggettoHTML):
def __init__(
self,
ID="",
action_url="",
method: MethodHttp = MethodHttp.POST):
aggiuntivi_da_passare=[]
if action_url is not "":
aggiuntivi_da_passare.append('action="%s"' % (action_url,))
aggiuntivi_da_passare.append('method="%s"' % (method.value))
super().__init__(nome_tag="form", ID=ID, classi=[""], aggiuntivi = aggiuntivi_da_passare)
class InputField(oggettoHTML.OggettoHTML):
def __init__(self, ID: str,
label: str="",
inp_type: "InputType" = InputType.TEXT,
required: bool=False,
classi=[]
):
super().__init__(nome_tag="div", ID=ID, classi=classi+["input-field", "validate"])
if required:
obbligatorio: str ="required"
else:
obbligatorio: str = ""
self.struttura_tag = (
'''
<div class="input-field col s12 m6">
<input id="{id}" type="'''+inp_type.value+'''" class="{classi}" '''+obbligatorio+'''>
%s
<label for="{id}">'''+label+'''</label>
</div>
'''
)
class SubmitButton(oggettoHTML.OggettoHTML):
def __init__(self, label: str, ID: str="", classi=[]):
super().__init__(nome_tag="button", classi=classi+["btn"], aggiuntivi=['type="submit"'])
self.struttura_tag='<{nome_tag} id="{id}" class="{classi}" src="{src}" {aggiuntivi}>'+label+'%s</{nome_tag}>'