def filltab_from_model(self, col, row, readonly, field_names, prefix=''): maxsize_of_lines = self.get_maxsize_of_lines(field_names) for line_field_name in field_names: if not isinstance(line_field_name, tuple): line_field_name = line_field_name, offset = 0 height = 1 comp_col_addon = 0 for field_name in line_field_name: if field_name is None: continue colspan = self.get_current_offset(maxsize_of_lines, len(line_field_name), offset) if field_name[-4:] == '_set': # field is one-to-many relation child = getattr(self.item, field_name).all() if hasattr(self.item, field_name[:-4] + '_query'): child = child.filter( getattr(self.item, field_name[:-4] + '_query')) comp = XferCompGrid(field_name[:-4]) comp.set_model(child, None, self) comp.add_action_notified(self, model=child.model) comp.set_location(col + comp_col_addon + offset, row, colspan, 1) comp.description = six.text_type( child.model._meta.verbose_name) self.add_component(comp) offset += 1 + comp_col_addon else: if isinstance(field_name, tuple): verbose_name, field_name = field_name else: verbose_name = None dep_field = self.item.get_field_by_name(field_name) # field real in model if (dep_field is None ) or not dep_field.auto_created or dep_field.concrete: # field not many-to-many if readonly: comp = self.get_reading_comp(field_name, prefix) else: comp = self.get_writing_comp(field_name) comp.set_location(col + comp_col_addon + offset, row, colspan, 1) if verbose_name is None: comp.description = six.text_type( dep_field.verbose_name) else: comp.description = six.text_type(verbose_name) self.add_component(comp) offset += 1 + comp_col_addon row += height
def fillresponse(self, legal_entity=0, name_filter=''): self.item.legal_entity = LegalEntity.objects.get(id=legal_entity) img = XferCompImage('img') img.set_value(self.icon_path()) img.set_location(0, 0, 1, 3) self.add_component(img) self.fill_from_model(1, 0, True, ['legal_entity']) comp = XferCompEdit('filter') comp.set_value(name_filter) comp.set_action(self.request, self.get_action(), modal=FORMTYPE_REFRESH, close=CLOSE_NO) comp.set_location(1, 2) comp.description = _('Filtrer by name') comp.is_default = True self.add_component(comp) identfilter = [] if name_filter != "": identfilter = [ Q(firstname__icontains=name_filter) | Q(lastname__icontains=name_filter)] items = Individual.objects.filter( *identfilter) grid = XferCompGrid('individual') grid.set_model(items, None, self) grid.set_location(1, 3) grid.description = _('individual') grid.add_action(self.request, ResponsabilityModify.get_action(_("Select"), "images/ok.png"), modal=FORMTYPE_MODAL, close=CLOSE_YES, unique=SELECT_SINGLE, params={"SAVE": "YES"}) grid.add_action(self.request, IndividualShow.get_action(_("Show"), "images/edit.png"), modal=FORMTYPE_MODAL, close=CLOSE_NO, unique=SELECT_SINGLE) grid.add_action(self.request, IndividualAddModify.get_action(TITLE_ADD, "images/add.png"), modal=FORMTYPE_MODAL, close=CLOSE_NO) self.add_component(grid)
def fillresponse(self, legal_entity=0, name_filter=''): self.item.legal_entity = LegalEntity.objects.get(id=legal_entity) img = XferCompImage('img') img.set_value(self.icon_path()) img.set_location(0, 0, 1, 3) self.add_component(img) self.fill_from_model(1, 0, True, ['legal_entity']) comp = XferCompEdit('filter') comp.set_value(name_filter) comp.set_action(self.request, self.get_action(), modal=FORMTYPE_REFRESH, close=CLOSE_NO) comp.set_location(1, 2) comp.description = _('Filtrer by name') comp.is_default = True self.add_component(comp) identfilter = [] if name_filter != "": identfilter = [Q(firstname__icontains=name_filter) | Q(lastname__icontains=name_filter)] items = Individual.objects.filter(*identfilter).distinct() grid = XferCompGrid('individual') grid.set_model(items, None, self) grid.set_location(1, 3) grid.description = _('individual') grid.add_action(self.request, ResponsabilityModify.get_action(_("Select"), "images/ok.png"), modal=FORMTYPE_MODAL, close=CLOSE_YES, unique=SELECT_SINGLE, params={"SAVE": "YES"}) grid.add_action(self.request, IndividualShow.get_action(_("Show"), "images/edit.png"), modal=FORMTYPE_MODAL, close=CLOSE_NO, unique=SELECT_SINGLE) grid.add_action(self.request, IndividualAddModify.get_action(TITLE_ADD, "images/add.png"), modal=FORMTYPE_MODAL, close=CLOSE_NO) self.add_component(grid)
def filltab_from_model(self, col, row, readonly, field_names): maxsize_of_lines = self.get_maxsize_of_lines(field_names) for line_field_name in field_names: if not isinstance(line_field_name, tuple): line_field_name = line_field_name, offset = 0 height = 1 comp_col_addon = 0 for field_name in line_field_name: if field_name is None: continue colspan = self.get_current_offset(maxsize_of_lines, len(line_field_name), offset) if field_name[-4:] == '_set': # field is one-to-many relation child = getattr(self.item, field_name).all() if hasattr(self.item, field_name[:-4] + '_query'): child = child.filter(getattr(self.item, field_name[:-4] + '_query')) comp = XferCompGrid(field_name[:-4]) comp.set_model(child, None, self) comp.add_action_notified(self, model=child.model) comp.set_location(col + comp_col_addon + offset, row, colspan, 1) comp.description = six.text_type(child.model._meta.verbose_name) self.add_component(comp) offset += 1 + comp_col_addon else: if isinstance(field_name, tuple): verbose_name, field_name = field_name else: verbose_name = None dep_field = self.item.get_field_by_name(field_name) # field real in model if (dep_field is None) or not dep_field.auto_created or dep_field.concrete: # field not many-to-many if readonly: comp = self.get_reading_comp(field_name) else: comp = self.get_writing_comp(field_name) comp.set_location(col + comp_col_addon + offset, row, colspan, 1) if verbose_name is None: comp.description = six.text_type(dep_field.verbose_name) else: comp.description = six.text_type(verbose_name) self.add_component(comp) offset += 1 + comp_col_addon row += height