Package platecom :: Package utils :: Package browser :: Module widgets
[hide private]
[frames] | no frames]

Source Code for Module icsemantic.core.browser.widgets

 1  """ 
 2  Clases de widgets especiales 
 3   
 4  @author: Juan Pablo Gimenez 
 5  @contact: jpg@rcom.com.ar 
 6  """ 
 7  __author__ = """Juan Pablo Gimenez <jpg@rcom.com.ar>""" 
 8  __docformat__ = 'plaintext' 
 9   
10  from zope.app.form.browser.itemswidgets import OrderedMultiSelectWidget as BaseOrderedMultiSelectWidget, \ 
11                                          MultiSelectWidget as BaseMultiSelectWidget 
12  from zope.app.pagetemplate.viewpagetemplatefile import ViewPageTemplateFile 
13   
14 -def OrderedMultiSelectionWidgetFactory( field, request ):
15 """ Factory para construir OrderedMultiSelectionWidgets 16 """ 17 vocabulary = field.value_type.vocabulary 18 widget = OrderedMultiSelectionWidget( field, vocabulary, request ) 19 20 return widget
21
22 -def MultiSelectionWidgetFactory( field, request ):
23 """ Factory para construir MultiSelectionWidgets 24 """ 25 vocabulary = field.value_type.vocabulary 26 if not request.debug: 27 widget = MultiSelectionWidget( field, vocabulary, request) 28 else: 29 widget = BaseMultiSelectWidget( field, vocabulary, request) 30 31 return widget
32
33 -class OrderedMultiSelectionWidget(BaseOrderedMultiSelectWidget):
34 """ Widget para listas de seleccion ordenadas 35 """ 36 template = ViewPageTemplateFile('templates/ordered-selection.pt') 37
38 - def selected(self):
39 """Return a list of tuples (text, value) that are selected.""" 40 # Get form values 41 values = self._getFormValue() 42 # Not all content objects must necessarily support the attributes 43 if hasattr(self.context.context, self.context.__name__): 44 # merge in values from content 45 for value in self.context.get(self.context.context): 46 if value not in values: 47 values.append(value) 48 terms = [self.vocabulary.getTerm(value) 49 for value in values if value in self.vocabulary ] 50 return [{'text': self.textForValue(term), 'value': term.token} 51 for term in terms]
52
53 -class MultiSelectionWidget(OrderedMultiSelectionWidget):
54 """ Widget para listas de seleccion no ordenadas 55 """ 56 template = ViewPageTemplateFile('templates/unordered-selection.pt')
57