web/form.py
branchtls-sprint
changeset 865 90a1aea85637
parent 864 e0947007542a
child 867 14a79faa3a56
equal deleted inserted replaced
864:e0947007542a 865:90a1aea85637
   316         return tags.select(name=name, options=options, **attrs)
   316         return tags.select(name=name, options=options, **attrs)
   317 
   317 
   318 
   318 
   319 class CheckBox(FieldWidget):
   319 class CheckBox(FieldWidget):
   320 
   320 
   321 class DateTimePicker: pass
   321     def _render_attrs(self, form, field):
       
   322         name, value, attrs = super(CheckBox, self)._render_attrs(form, field)
       
   323         if value:
       
   324             attrs['checked'] = u'checked'
       
   325         return name, None, attrs
       
   326         
       
   327 class Radio(FieldWidget):
       
   328     pass
       
   329 
       
   330 class DateTimePicker(TextInput):
       
   331     monthnames = ("january", "february", "march", "april",
       
   332                   "may", "june", "july", "august",
       
   333                   "september", "october", "november", "december")
       
   334     
       
   335     daynames = ("monday", "tuesday", "wednesday", "thursday",
       
   336                 "friday", "saturday", "sunday")
       
   337 
       
   338     @classmethod
       
   339     def add_localized_infos(cls, req):
       
   340         """inserts JS variables defining localized months and days"""
       
   341         # import here to avoid dependancy from cubicweb-common to simplejson
       
   342         _ = req._
       
   343         monthnames = [_(mname) for mname in cls.monthnames]
       
   344         daynames = [_(dname) for dname in cls.daynames]
       
   345         req.html_headers.define_var('MONTHNAMES', monthnames)
       
   346         req.html_headers.define_var('DAYNAMES', daynames)
       
   347     
       
   348     def render(self, form, field):
       
   349         txtwidget = super(DateTimePicker, self).render(form, field)
       
   350         cal_button - self._render_calendar_popup(form, field)
       
   351         return txtwidget + cal_button
       
   352     
       
   353     def _render_calendar_popup(self, form, field):
       
   354         req = form.req
       
   355         name, value, attrs = self._render_attrs(form, field)
       
   356         helperid = '%shelper' % name
       
   357         if not value:
       
   358             value = _today()
       
   359         year, month = value.year, value.month
       
   360         onclick = "toggleCalendar('%s', '%s', %s, %s);" % (
       
   361             helperid, name, year, month)
       
   362         return (u"""<a onclick="toggleCalendar('%s', '%s', %s, %s);" class="calhelper">
       
   363 <img src="%s" title="%s" alt="" /></a><div class="calpopup hidden" id="%s"></div>"""
       
   364                 % (helperid, inputid, year, month,
       
   365                    self.iconurl, req._('calendar'), helperid) )
   322 
   366 
   323 
   367 
   324 # fields ############
   368 # fields ############
   325 
   369 
   326 class Field(object):
   370 class Field(object):