def _refresh_form_rules_cache(self): if self.form_create_rules: self._form_create_rules = rules.RuleSet(self, self.form_create_rules) else: self._form_create_rules = None if self.form_edit_rules: self._form_edit_rules = rules.RuleSet(self, self.form_edit_rules) else: self._form_edit_rules = None if self.form_rules: form_rules = rules.RuleSet(self, self.form_rules) if not self._form_create_rules: self._form_create_rules = form_rules if not self._form_edit_rules: self._form_edit_rules = form_rules
def __init__(self, **kwargs): super(EmbeddedForm, self).__init__(**kwargs) self._form_subdocuments = convert_subdocuments( getattr(self, 'form_subdocuments', {})) form_rules = getattr(self, 'form_rules', None) if form_rules: self._form_rules = rules.RuleSet(self, form_rules) else: self._form_rules = None
def __init__(self, **kwargs): """ Constructor :param kwargs: Additional options """ for k in self._defaults: if not hasattr(self, k): setattr(self, k, None) for k, v in iteritems(kwargs): setattr(self, k, v) # Convert form rules form_rules = getattr(self, 'form_rules', None) if form_rules: self._form_rules = rules.RuleSet(self, form_rules) else: self._form_rules = None
def _refresh_cache(self): """ Refresh various cached variables. """ # List view self._list_columns = self.get_list_columns() self._sortable_columns = self.get_sortable_columns() # Labels if self.column_labels is None: self.column_labels = {} # Forms self._form_ajax_refs = self._process_ajax_references() if self.form_widget_args is None: self.form_widget_args = {} self._create_form_class = self.get_create_form() self._edit_form_class = self.get_edit_form() # Search self._search_supported = self.init_search() # Choices if self.column_choices: self._column_choices_map = dict([ (column, dict(choices)) for column, choices in self.column_choices.items() ]) else: self.column_choices = self._column_choices_map = dict() # Filters self._filters = self.get_filters() # Type formatters if self.column_type_formatters is None: self.column_type_formatters = dict(typefmt.BASE_FORMATTERS) if self.column_descriptions is None: self.column_descriptions = dict() # Group filters by field name if self._filters: self._filter_groups = OrderedDict() self._filter_args = {} for i, flt in enumerate(self._filters): if flt.name not in self._filter_groups: self._filter_groups[flt.name] = [] self._filter_groups[flt.name].append({ 'index': i, 'arg': self.get_filter_arg(i, flt), 'operation': flt.operation(), 'options': flt.get_options(self) or None, 'type': flt.data_type }) self._filter_args[self.get_filter_arg(i, flt)] = (i, flt) else: self._filter_groups = None self._filter_args = None # Form rendering rules if self.form_create_rules: self._form_create_rules = rules.RuleSet(self, self.form_create_rules) else: self._form_create_rules = None if self.form_edit_rules: self._form_edit_rules = rules.RuleSet(self, self.form_edit_rules) else: self._form_edit_rules = None if self.form_rules: form_rules = rules.RuleSet(self, self.form_rules) if not self._form_create_rules: self._form_create_rules = form_rules if not self._form_edit_rules: self._form_edit_rules = form_rules
def _refresh_cache(self): """ Refresh various cached variables. """ # List view self._list_columns = self.get_list_columns() self._sortable_columns = self.get_sortable_columns() # Labels if self.column_labels is None: self.column_labels = {} # Forms self._form_ajax_refs = self._process_ajax_references() if self.form_widget_args is None: self.form_widget_args = {} self._create_form_class = self.get_create_form() self._edit_form_class = self.get_edit_form() # Search self._search_supported = self.init_search() # Choices if self.column_choices: self._column_choices_map = dict([ (column, dict(choices)) for column, choices in self.column_choices.items() ]) else: self.column_choices = self._column_choices_map = dict() # Filters self._filters = self.get_filters() # Type formatters if self.column_type_formatters is None: self.column_type_formatters = dict(typefmt.BASE_FORMATTERS) if self.column_descriptions is None: self.column_descriptions = dict() if self._filters: self._filter_groups = [] self._filter_dict = dict() for i, n in enumerate(self._filters): if n.name not in self._filter_dict: group = [] self._filter_dict[n.name] = group self._filter_groups.append((n.name, group)) else: group = self._filter_dict[n.name] group.append((i, n.operation())) self._filter_types = dict((i, f.data_type) for i, f in enumerate(self._filters) if f.data_type) else: self._filter_groups = None self._filter_types = None # Form rendering rules if self.form_create_rules: self._form_create_rules = rules.RuleSet(self, self.form_create_rules) else: self._form_create_rules = None if self.form_edit_rules: self._form_edit_rules = rules.RuleSet(self, self.form_edit_rules) else: self._form_edit_rules = None