1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 """
20 Modul obiektow sprawdzajacych.
21
22 Obiekty sprawdzajace zastosowane sa w formularzach wprowadzania danych. Maja
23 one za zadanie zweryfikowanie czy napisy wprowadzone przez uzytkownika przyjmuja
24 zadana forme.
25
26 Dostepne parametry
27 ==================
28
29 - I{type} - Typ walidatora
30 - I{param} - Parametr zalezny od typu
31
32 Dostepne Walidacje
33 ==================
34
35 Walidatory moga sprawdzic nastepujace warunki:
36
37 - L{pole jest puste <ajango.database.validate.isempty>}
38 - L{pole spelnia wyrazenie regularne <ajango.database.validate.regex>}
39 - L{pole jest mniejsze niz parametr <ajango.database.validate.lt>}
40 - L{pole jest wieksze niz parametr <ajango.database.validate.gt>}
41 """
42
43 from django.core.management.base import CommandError
44 from ajango.core.factory import FactoryBase
45 from ajango.core.generable import Generable
46 from ajango.core.hybrid import Hybrid, get_str_object_factory
47 import abc
50 """ Fabryka obiektow sprawdzajacych. """
55 """ Metoda inicjalizujaca. """
56 self.set_items('Validate', {
57 'isempty' : 'ajango.database.validate.isempty',
58 'regex' : 'ajango.database.validate.regex',
59 'lt' : 'ajango.database.validate.lt',
60 'gt' : 'ajango.database.validate.gt'
61 })
62 get_str_object_factory(self, 'isempty')
63
67
69 """ Klasa abstrakcyjna obiektu sprawdzajacego. """
70 __metaclass__ = abc.ABCMeta
72 self.has_prepare = False
73 self.type = "unKnown"
74 self.data = {}
75 self.xml_name = "VALIDATE"
76 self.pre_init()
77 self.messages = []
78 self.param = ""
79 Hybrid.__init__(self, param)
80 self.post_init()
82 """ Czynnosci przed inicjalizacja. """
83 pass
84 - def post_init(self):
85 """ Czynnosci po inicjalizacji. """
86 pass
88 """ Pobranie parametru validatora. """
89 return self.param
91 """ Inicjalizacja z danych XML. """
92 self.param = self.getAttribute('param')
94 """ Inicjalizacja ze zmiennej slownikowej. """
95 try:
96 self.param = params['param']
97 except KeyError:
98 raise CommandError("Input element is invalid")
99 @abc.abstractmethod
101 """ Sprawdza czy pola wejsiowe sa poprawnie wypelnione. """
102 raise CommandError("File not implemented yet.")
103 - def execute(self, view, view_name="view"):
104 """ Wykonanie zadan obiektu. """
105 view.add_line("vm.add_validate({'type': %r, 'param': %r })" %
106 (self.type, self.param))
108 """ Pobiera wiadomosci bledu pol wejsiowych. """
109 return self.messages
110 - def check(self, name, xmldoc_elem):
112
114 """ Klasa zarzadzajaca obiektami sprawdzajacymi. """
116 self.validations = []
117 self.messages = []
119 return len(self.validations)
121 """ Dodanie obiektu sprawdzajacego. """
122 self.validations.append(validate_factory(param))
124 """ Sprawdza czy pola wejsciowe sa poprawnie wypelnione. """
125 for elem in self.validations:
126 if not elem.is_valid(text):
127 self.messages += elem.get_messages()
128 return False
129 return True
131 """ Pobranie wiadomosci bledu pola wejsciowego. """
132 return self.messages
133 - def execute(self, view, view_name="view"):
134 """ Wykonanie zadan obiektu. """
135 if len(self.validations) > 0:
136 view.add_import("ValidationManager", "ajango.database.validate")
137 view.add_line("vm = ValidationManager()")
138 for elem in self.validations:
139 elem.execute(view)
140