1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 """ Modul zarzadzania kolumnami. """
20
21 from django.core.management.base import CommandError
22 from ajango.core.factory import FactoryBase
23 from ajango.core.generable import Generable
24 from ajango.core.hybrid import Hybrid, get_str_object_factory
25 import abc
28 """ Klasa obiektu zarzadzajacego kolumnami. """
30 """ Metoda inicjalizujaca. """
31 self.set_items('Column', {
32 'default' : 'ajango.database.columns.default',
33 'button' : 'ajango.database.columns.button'
34 })
35 get_str_object_factory(self)
36
40
42 """ Klasa bazowa obiektu obslugujacego kolumny. """
43 __metaclass__ = abc.ABCMeta
45 self.type = "unKnown"
46 self.theme = 'default'
47 self.has_prepare = False
48 self.data = {}
49 self.xml_name = "COLUMN"
50 self.label = ""
51 self.tag = ""
52 self.pre_init()
53 Hybrid.__init__(self, xmldoc)
54 self.post_init()
56 """ Inicjalizacja z danych XML. """
57 self.label = self.getAttribute('label')
58 self.tag = self.getAttribute('tag')
60 """ Inicjalizacja ze zmiennej slownikowej. """
61 try:
62 self.label = params['label']
63 self.tag = params['tag']
64 except KeyError:
65 raise CommandError("Input element is invalid")
67 """ Czynnosci do wykonania przed inicjalizacja. """
68 pass
69 - def post_init(self):
70 """ Czynnosci do wykonania po inicjalizacji. """
71 pass
72 - def check(self, name, xml_doc_elem):
73 """ Oczytanie nodow wewnetrznych. """
74 pass
76 """ Przygotowanie danych. """
77 if self.has_prepare:
78 return
79 self.has_prepare = True
80 self.data['tag'] = self.tag
81 self.data['label'] = self.label
82 self.data['url'] = '%s/ajango_columns/%s.html' % (self.theme, self.type)
83 @abc.abstractmethod
85 """ Pobranie danych dla szablonu. """
86 raise CommandError("Please implement this method")
88 """ Pobranie opisu kolumny. """
89 self.prepare_data()
90 return self.label
91