Changeset 9b911db for asadb/util/db_form_utils.py
- Timestamp:
- Aug 9, 2011, 3:01:19 AM (14 years ago)
- Branches:
- master, space-access, stable, stage, test-hooks
- Children:
- d8290de
- Parents:
- 628e06c
- git-author:
- Alex Dehnert <adehnert@…> (08/09/11 03:01:19)
- git-committer:
- Alex Dehnert <adehnert@…> (08/09/11 03:01:19)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
asadb/util/db_form_utils.py
r7f16c8e r9b911db 1 from django.forms.widgets import Widget, HiddenInput1 from django.forms.widgets import Widget, Select, HiddenInput 2 2 from django.utils.safestring import mark_safe 3 3 from django.utils.html import conditional_escape 4 from itertools import chain 4 5 5 6 class StaticWidget(Widget): … … 13 14 self.value = kwargs['value'] 14 15 del kwargs['value'] 16 if 'choices' in kwargs: 17 if kwargs['choices'] is not None: 18 self.choices = kwargs['choices'] 19 else: 20 self.choices = () 21 del kwargs['choices'] 22 else: 23 self.choices = () 15 24 super(StaticWidget, self).__init__(*args, **kwargs) 16 25 self.inner = HiddenInput() … … 19 28 return self.value 20 29 21 def render(self, name, value, attrs=None, ):30 def render(self, name, value, attrs=None, choices=(), ): 22 31 if value is None: 23 32 value = '' 33 label = value 34 the_choices = chain(self.choices, choices) 35 for choice_value, choice_label in the_choices: 36 if choice_value == value: 37 label = choice_label 24 38 # We have this inner hidden widget because that allows us to nicely 25 39 # handle a transition from StaticWidget to another widget type … … 27 41 # authenticated) 28 42 hidden_render = self.inner.render(name, value, attrs=attrs) 29 return mark_safe(conditional_escape(value) + hidden_render) 43 return mark_safe(conditional_escape(label) + hidden_render) 44 45 @classmethod 46 def replace_widget(cls, formfield, value): 47 choices = None 48 choices = getattr(formfield.widget, 'choices', ()) 49 formfield.widget = cls(value=value, choices=choices)
Note: See TracChangeset
for help on using the changeset viewer.