Changeset 2286 in products for quintagroup.referencedatagridfield/trunk/quintagroup/referencedatagridfield/columns.py
- Timestamp:
- May 11, 2010 10:41:04 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
quintagroup.referencedatagridfield/trunk/quintagroup/referencedatagridfield/columns.py
r2285 r2286 27 27 # Initializes class security 28 28 InitializeClass(HiddenColumn) 29 30 class BlockColumn(Column): 31 """ Column with possibility to block the cell data from changing, 32 based on the value of the row data. 33 """ 34 security = ClassSecurityInfo() 35 36 def __init__(self, label, default=None, label_msgid=None, 37 column_on_class=None, column_off_class=None, 38 columns=[], invert=False, read_only=None): 39 """ Create a column, with adding class attribute depend on value presence for the cell. 40 41 @param column_on_class set class, which will be added to the <input> tag if columns has value 42 @param column_off_class set class, which will be added to the <input> tag if columns not has value 43 @param columns list of columns names, which values will be checked for set class attribute 44 @param invert - invert the adding class logic 45 @param read_only - check-on/off readOnly attribute for the <input> tag 46 """ 47 Column.__init__(self, label, default, label_msgid) 48 self.column_on_class = column_on_class 49 self.column_off_class = column_off_class 50 self.columns = columns 51 self.invert = invert 52 self.read_only = read_only 53 54 def passCondition(self, row_data): 55 """ Return calculated class attribute.""" 56 res = sum([1 for c in self.columns if row_data.get(c,0)]) 57 return res == len(self.columns) and not self.invert 58 59 security.declarePublic('getAttributesData') 60 def getAttributesData(self, row_data): 61 """ Return calculated class attribute.""" 62 res = {'style_class': None, 'read_only': None} 63 isPassCondition = self.passCondition(row_data) 64 if self.column_on_class or self.column_off_class: 65 res['style_class'] = isPassCondition and self.column_on_class or self.column_off_class 66 if self.read_only: 67 res['read_only'] = isPassCondition and True or False 68 69 return res 70 71 security.declarePublic('getMacro') 72 def getMacro(self): 73 """ Return macro used to render this column in view/edit """ 74 return "datagrid_block_cell" 75 76 # Initializes class security 77 InitializeClass(BlockColumn)
Note: See TracChangeset
for help on using the changeset viewer.