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): |