Exemplo n.º 1
0
 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
Exemplo n.º 2
0
 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)
Exemplo n.º 3
0
 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)
Exemplo n.º 4
0
 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