calendarium.widgets: 13 total statements, 60.0% covered

Generated: Sun 2013-03-24 21:11 CET

Source file: /home/tobi/Projects/calendarium/src/calendarium/widgets.py

Stats: 6 executed, 4 missed, 3 excluded, 28 ignored

  1. """Widgets for the ``calendarium`` app."""
  2. from django import forms
  3. from django.conf import settings
  4. from django.utils.safestring import mark_safe
  5. class ColorPickerWidget(forms.TextInput):
  6. class Media:
  7. css = {
  8. 'all': (
  9. settings.STATIC_URL + 'calendarium/css/colorpicker.css',
  10. )
  11. }
  12. js = (
  13. '//ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js',
  14. settings.STATIC_URL + 'calendarium/js/colorpicker.js',
  15. settings.STATIC_URL + 'calendarium/js/eye.js',
  16. settings.STATIC_URL + 'calendarium/js/layout.js',
  17. settings.STATIC_URL + 'calendarium/js/utils.js',
  18. )
  19. def __init__(self, language=None, attrs=None):
  20. self.language = language or settings.LANGUAGE_CODE[:2]
  21. super(ColorPickerWidget, self).__init__(attrs=attrs)
  22. def render(self, name, value, attrs=None):
  23. rendered = super(ColorPickerWidget, self).render(name, value, attrs)
  24. return rendered + mark_safe(
  25. u'''<script type="text/javascript">
  26. $('#id_%s').ColorPicker({
  27. onSubmit: function(hsb, hex, rgb, el) {
  28. $(el).val(hex);
  29. $(el).ColorPickerHide();
  30. },
  31. onBeforeShow: function () {
  32. $(this).ColorPickerSetColor(this.value);
  33. }
  34. }).bind('keyup', function(){
  35. $(this).ColorPickerSetColor(this.value);
  36. });
  37. </script>''' % name)