src/pyams_i18n/widget/__init__.py
changeset 60 3cbc6d17cdb5
parent 43 5638c9cfb233
child 76 f1ddf2db6038
equal deleted inserted replaced
59:52d0811950e8 60:3cbc6d17cdb5
    71         return result
    71         return result
    72 
    72 
    73 
    73 
    74 @widgettemplate_config(mode='input', template='templates/i18n-input.pt', widget=II18nWidget, layer=IFormLayer)
    74 @widgettemplate_config(mode='input', template='templates/i18n-input.pt', widget=II18nWidget, layer=IFormLayer)
    75 @widgettemplate_config(mode='display', template='templates/i18n-input.pt', widget=II18nWidget, layer=IFormLayer)
    75 @widgettemplate_config(mode='display', template='templates/i18n-input.pt', widget=II18nWidget, layer=IFormLayer)
       
    76 @widgettemplate_config(mode='hidden', template='templates/i18n-hidden.pt', widget=II18nWidget, layer=IFormLayer)
    76 @implementer_only(II18nWidget)
    77 @implementer_only(II18nWidget)
    77 class I18nWidget(HTMLInputWidget, Widget):
    78 class I18nWidget(HTMLInputWidget, Widget):
    78     """I18n base widget"""
    79     """I18n base widget"""
    79 
    80 
       
    81     widgets = None
    80     widget_factory = None
    82     widget_factory = None
    81 
    83 
    82     @reify
    84     @reify
    83     def langs(self):
    85     def langs(self):
    84         langs = []
    86         langs = []
   134                                                      self.context), IErrorViewSnippet)
   136                                                      self.context), IErrorViewSnippet)
   135                     view.update()
   137                     view.update()
   136                     widget.error = view
   138                     widget.error = view
   137                     widget.value = value
   139                     widget.value = value
   138 
   140 
       
   141     def set_mode(self, mode):
       
   142         if self.widgets:
       
   143             for lang in self.langs:
       
   144                 self.widgets[lang].mode = mode
       
   145         self.mode = mode
       
   146 
   139     def extract(self, default=NO_VALUE):
   147     def extract(self, default=NO_VALUE):
   140         result = {}
   148         result = {}
   141         [result.setdefault(lang, self.widgets[lang].extract(default)) for lang in self.langs]
   149         [result.setdefault(lang, self.widgets[lang].extract(default)) for lang in self.langs]
   142         for value in result.values():
   150         for value in result.values():
   143             if value is not NO_VALUE:
   151             if value is not NO_VALUE: