示例#1
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)
示例#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)
示例#3
0
文件: xfersearch.py 项目: povtux/core
 def fillresponse(self):
     self.fields_desc.initial(self.item)
     self.read_criteria_from_params()
     self.fillresponse_add_title()
     self.fillresponse_search_select()
     self.fillresponse_search_values()
     self.fillresponse_show_criteria()
     row = self.get_max_row()
     if isinstance(self.filter, Q) and (len(self.filter.children) > 0):
         self.items = self.model.objects.filter(
             self.filter)
     else:
         self.items = self.model.objects.all()
     grid = XferCompGrid(self.field_id)
     grid.set_model(self.items, self.fieldnames, self)
     grid.add_actions(self, action_list=self.action_grid)
     grid.set_location(0, row + 4, 4)
     grid.set_size(200, 500)
     self.add_component(grid)
     lbl = XferCompLabelForm("nb")
     lbl.set_location(0, row + 5, 4)
     lbl.set_value(_("Total number of %(name)s: %(count)d") % {
                   'name': self.model._meta.verbose_name_plural, 'count': grid.nb_lines})
     self.add_component(lbl)
     for act_type, title, icon in self.action_list:
         self.add_action(ActionsManage.get_act_changed(
             self.model.__name__, act_type, title, icon), {'close': CLOSE_NO})
     self.add_action(WrapAction(_('Close'), 'images/close.png'), {})
示例#4
0
 def _entryline_editor(self, xfer, serial_vals, debit_rest, credit_rest):
     last_row = xfer.get_max_row() + 5
     lbl = XferCompLabelForm('sep1')
     lbl.set_location(0, last_row, 6)
     lbl.set_value("{[center]}{[hr/]}{[/center]}")
     xfer.add_component(lbl)
     lbl = XferCompLabelForm('sep2')
     lbl.set_location(1, last_row + 1, 5)
     lbl.set_value_center(_("Add a entry line"))
     xfer.add_component(lbl)
     entry_line = EntryLineAccount()
     entry_line.editor.edit_line(xfer, 0, last_row + 2, debit_rest, credit_rest)
     if entry_line.has_account:
         btn = XferCompButton('entrybtn')
         btn.set_location(3, last_row + 5)
         btn.set_action(xfer.request, ActionsManage.get_action_url(
             'accounting.EntryLineAccount', 'Add', xfer), close=CLOSE_YES)
         xfer.add_component(btn)
     self.item.editor.show(xfer)
     grid_lines = xfer.get_components('entrylineaccount')
     xfer.remove_component('entrylineaccount')
     new_grid_lines = XferCompGrid('entrylineaccount_serial')
     new_grid_lines.set_model(self.item.get_entrylineaccounts(serial_vals), None, xfer)
     new_grid_lines.set_location(grid_lines.col, grid_lines.row, grid_lines.colspan + 2, grid_lines.rowspan)
     new_grid_lines.add_action_notified(xfer, EntryLineAccount)
     xfer.add_component(new_grid_lines)
     nb_lines = len(new_grid_lines.record_ids)
     return nb_lines
示例#5
0
文件: views.py 项目: julienM77/syndic
    def fillresponse(self, begin_date, end_date):
        self.item.set_dates(begin_date, end_date)
        date_init = XferCompDate("begin_date")
        date_init.set_needed(True)
        date_init.set_value(self.item.date_begin)
        date_init.set_location(1, 0)
        date_init.description = _('initial date')
        date_init.set_action(self.request, self.get_action(), close=CLOSE_NO, modal=FORMTYPE_REFRESH)
        self.add_component(date_init)
        date_end = XferCompDate("end_date")
        date_end.set_needed(True)
        date_end.set_value(self.item.date_end)
        date_end.set_location(2, 0)
        date_end.description = _('current date')
        date_end.set_action(self.request, self.get_action(), close=CLOSE_NO, modal=FORMTYPE_REFRESH)
        self.add_component(date_end)
        img = XferCompImage('img')
        img.set_value(self.icon_path())
        img.set_location(0, 0, 1, 6)
        self.add_component(img)
        self.fill_from_model(1, 1, True, [((_('name'), 'third'),)])
        grid = XferCompGrid('loadcount')
        grid.set_model(self.item.loadcount_set.all(), None)
        grid.set_location(1, 2, 2)
        self.add_component(grid)

        self.add_action(WrapAction(_('Close'), 'images/close.png'))
示例#6
0
 def fillresponse(self, model='', objid=0):
     img = XferCompImage('img')
     img.set_value(self.icon_path())
     img.set_location(0, 0, 1, 6)
     self.add_component(img)
     self.model = apps.get_model(model)
     if objid != 0:
         self.item = self.model.objects.get(id=objid)
         fieldnames = []
         for fieldname in self.model.get_default_fields():
             if isinstance(fieldname, tuple):
                 fieldnames.append(fieldname[1])
             else:
                 fieldnames.append(fieldname)
         self.fill_from_model(1, 0, True, desc_fields=fieldnames)
         log_items = LucteriosLogEntry.objects.get_for_object(self.item)
     else:
         content_type = ContentType.objects.get_for_model(self.model)
         lbl = XferCompLabelForm('ModelName')
         lbl.set_value_as_header(six.text_type(content_type))
         lbl.description = _("content type")
         lbl.set_location(1, 0, 2)
         self.add_component(lbl)
         log_items = LucteriosLogEntry.objects.get_for_model(self.model)
     grid = XferCompGrid(self.field_id)
     grid.set_model(log_items, None, self)
     grid.set_location(1, self.get_max_row() + 1, 2)
     grid.set_size(200, 500)
     self.add_component(grid)
示例#7
0
def thirdaddon_accounting(item, xfer):
    if WrapAction.is_permission(xfer.request, 'accounting.change_entryaccount'):
        try:
            entry_lines_filter = Q(entrylineaccount__third=item)
            lines_filter = xfer.getparam('lines_filter', 0)
            if lines_filter == 0:
                entry_lines_filter &= Q(year=FiscalYear.get_current())
            elif lines_filter == 1:
                entry_lines_filter &= Q(year=FiscalYear.get_current()) & Q(close=False)
            xfer.new_tab(_('entry of account'))
            lbl = XferCompLabelForm('lbl_lines_filter')
            lbl.set_value_as_name(_('Accounts filter'))
            lbl.set_location(0, 1)
            xfer.add_component(lbl)
            edt = XferCompSelect("lines_filter")
            edt.set_select([(0, _('All entries of current fiscal year')), (1, _(
                'Only no-closed entries of current fiscal year')), (2, _('All entries for all fiscal year'))])
            edt.set_value(lines_filter)
            edt.set_location(1, 1)
            edt.set_action(xfer.request, xfer.get_action(),
                           modal=FORMTYPE_REFRESH, close=CLOSE_NO)
            xfer.add_component(edt)
            entries = EntryAccount.objects.filter(entry_lines_filter)
            link_grid_lines = XferCompGrid('entryaccount')
            link_grid_lines.set_model(entries, EntryAccount.get_default_fields(), xfer)
            link_grid_lines.set_location(0, 2, 2)
            link_grid_lines.add_action(xfer.request, ActionsManage.get_action_url('accounting.EntryAccount', 'OpenFromLine', xfer),
                                       modal=FORMTYPE_MODAL, unique=SELECT_SINGLE, close=CLOSE_NO)
            link_grid_lines.add_action(xfer.request, ActionsManage.get_action_url('accounting.EntryAccount', 'Close', xfer),
                                       modal=FORMTYPE_MODAL, unique=SELECT_MULTI, close=CLOSE_NO)
            link_grid_lines.add_action(xfer.request, ActionsManage.get_action_url('accounting.EntryAccount', 'Link', xfer),
                                       modal=FORMTYPE_MODAL, unique=SELECT_MULTI, close=CLOSE_NO)
            xfer.add_component(link_grid_lines)
        except LucteriosException:
            pass
示例#8
0
 def add_legalentities(self, legal_entities):
     self.new_tab(_("Legal entities"))
     grid = XferCompGrid('legal_entity')
     grid.set_model(legal_entities, LegalEntity.get_default_fields())
     grid.add_action(self.request, CurrentLegalEntityShow.get_action(
         _("Edit"), "images/show.png"), modal=FORMTYPE_MODAL, close=CLOSE_NO, unique=SELECT_SINGLE)
     grid.set_location(1, 1, 2)
     grid.set_size(200, 500)
     self.add_component(grid)
示例#9
0
    def show(self, xfer):
        xfer.move_components('body', 0, 2)
        obj_recipients = xfer.get_components('recipients')
        new_recipients = XferCompGrid('recipient_list')
        new_recipients.tab = obj_recipients.tab
        new_recipients.set_location(obj_recipients.col, obj_recipients.row,
                                    obj_recipients.colspan)
        new_recipients.add_header("model", _('model'))
        new_recipients.add_header("filter", _('filter'))
        compid = 0
        for model_title, filter_desc in self.item.recipients_description:
            new_recipients.set_value(compid, "model", model_title)
            new_recipients.set_value(compid, "filter", filter_desc)
            compid += 1
        if compid == 0:
            xfer.remove_component('contact_nb')
        if not will_mail_send() or (len(self.item.get_contacts(False)) == 0):
            xfer.remove_component('contact_noemail')
        xfer.remove_component('recipients')
        new_recipients.add_action_notified(xfer, 'recipient_list')
        xfer.tab = new_recipients.tab
        xfer.add_component(new_recipients)

        old_documents = xfer.get_components('documents')
        xfer.remove_component('documents')
        new_documents = XferCompGrid('document')
        new_documents.tab = old_documents.tab
        new_documents.set_location(old_documents.col, old_documents.row,
                                   old_documents.colspan)
        new_documents.set_model(self.item.documents.all(),
                                ["name", "description", "date_modification"],
                                xfer)
        new_documents.add_action(xfer.request,
                                 DocumentShow.get_action(
                                     TITLE_EDIT, "images/show.png"),
                                 modal=FORMTYPE_MODAL,
                                 close=CLOSE_NO,
                                 unique=SELECT_SINGLE)
        if self.item.status == 0:
            new_documents.add_action(xfer.request,
                                     MessageRemoveDoc.get_action(
                                         _("Remove"), "images/delete.png"),
                                     modal=FORMTYPE_MODAL,
                                     close=CLOSE_NO,
                                     unique=SELECT_MULTI)
            new_documents.add_action(xfer.request,
                                     MessageInsertDoc.get_action(
                                         _("Insert"), "images/add.png"),
                                     modal=FORMTYPE_MODAL,
                                     close=CLOSE_NO,
                                     unique=SELECT_NONE)
        xfer.tab = new_documents.tab
        xfer.add_component(new_documents)

        return LucteriosEditor.show(self, xfer)
示例#10
0
 def fill_grid(self, row, model, field_id, items):
     grid = XferCompGrid(field_id)
     if self.multi_page:
         xfer = self
     else:
         xfer = None
     grid.set_model(items, self.fieldnames, xfer)
     grid.add_action_notified(self, model=model)
     grid.set_location(0, row + 1, 2)
     grid.set_size(200, 500)
     self.add_component(grid)
示例#11
0
def show_contact_degree(contact, xfer):
    if WrapAction.is_permission(xfer.request, 'event.change_degree') and (Params.getvalue("event-degree-enable") == 1):
        up_contact = contact.get_final_child()
        if isinstance(up_contact, Adherent):
            degrees = Degree.objects.filter(adherent=up_contact)
            xfer.new_tab(_("Degree"))
            grid = XferCompGrid('degrees')
            grid.set_model(degrees, None, xfer)
            grid.add_action_notified(xfer, Degree)
            grid.set_location(0, xfer.get_max_row() + 1, 2)
            grid.set_size(200, 500)
            xfer.add_component(grid)
示例#12
0
def show_contact_degree(contact, xfer):
    if WrapAction.is_permission(xfer.request, 'event.change_degree'):
        up_contact = contact.get_final_child()
        if isinstance(up_contact, Adherent):
            degrees = Degree.objects.filter(adherent=up_contact)
            xfer.new_tab(_("Degree"))
            grid = XferCompGrid('degrees')
            grid.set_model(degrees, None, xfer)
            grid.add_action_notified(xfer, Degree)
            grid.set_location(0, xfer.get_max_row() + 1, 2)
            grid.set_size(200, 500)
            xfer.add_component(grid)
示例#13
0
 def fill_grid(self, row, model, field_id, items):
     grid = XferCompGrid(field_id)
     if self.size_by_page is not None:
         grid.size_by_page = self.size_by_page
     if self.multi_page:
         xfer = self
     else:
         xfer = None
     grid.set_model(items, self.fieldnames, xfer)
     grid.add_action_notified(self, model=model)
     grid.set_location(0, row + 1, 2)
     grid.set_size(200, 500)
     self.add_component(grid)
示例#14
0
 def add_legalentities(self, legal_entities):
     self.new_tab(_("Legal entities"))
     grid = XferCompGrid('legal_entity')
     grid.set_model(legal_entities, LegalEntity.get_default_fields())
     grid.add_action(self.request,
                     CurrentLegalEntityShow.get_action(
                         _("Edit"), "images/show.png"),
                     modal=FORMTYPE_MODAL,
                     close=CLOSE_NO,
                     unique=SELECT_SINGLE)
     grid.set_location(1, 1, 2)
     grid.set_size(200, 500)
     self.add_component(grid)
示例#15
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
示例#16
0
    def show(self, xfer):
        obj_body = xfer.get_components('body')
        obj_body.value = "{[div style='border:1px solid black;background-color:#EEE;padding:5px;']}%s{[div]}" % obj_body.value

        xfer.move_components('body', 0, 2)
        obj_recipients = xfer.get_components('recipients')
        new_recipients = XferCompGrid('recipient_list')
        new_recipients.tab = obj_recipients.tab
        new_recipients.set_location(obj_recipients.col, obj_recipients.row, obj_recipients.colspan)
        new_recipients.add_header("model", _('model'))
        new_recipients.add_header("filter", _('filter'))
        compid = 0
        for model_title, filter_desc in self.item.recipients_description:
            new_recipients.set_value(compid, "model", model_title)
            new_recipients.set_value(compid, "filter", filter_desc)
            compid += 1
        if compid == 0:
            xfer.remove_component('contact_nb')
        if not will_mail_send() or (len(self.item.get_contacts(False)) == 0):
            xfer.remove_component('contact_noemail')
        xfer.remove_component('recipients')
        new_recipients.add_action_notified(xfer, 'recipient_list')
        xfer.tab = new_recipients.tab
        xfer.add_component(new_recipients)

        old_documents = xfer.get_components('attachments')
        xfer.remove_component('attachments')
        if xfer.item.is_dynamic:
            xfer.remove_component('__tab_3')
            xfer.remove_component('doc_in_link')
            xfer.remove_component('empty')
        else:
            new_documents = XferCompGrid('attachments')
            new_documents.tab = old_documents.tab
            new_documents.set_location(old_documents.col, old_documents.row, old_documents.colspan)
            new_documents.set_model(self.item.attachments.all(), ["name", "description", "date_modification"], xfer)
            new_documents.add_action(xfer.request, DocumentShow.get_action(TITLE_EDIT, "images/show.png"),
                                     modal=FORMTYPE_MODAL, close=CLOSE_NO, unique=SELECT_SINGLE)
            if self.item.status == 0:
                new_documents.add_action(xfer.request, MessageRemoveDoc.get_action(_("Remove"), "images/delete.png"),
                                         modal=FORMTYPE_MODAL, close=CLOSE_NO, unique=SELECT_MULTI)
                new_documents.add_action(xfer.request, MessageInsertDoc.get_action(_("Insert"), "images/add.png"),
                                         modal=FORMTYPE_MODAL, close=CLOSE_NO, unique=SELECT_NONE)
            xfer.tab = new_documents.tab
            xfer.add_component(new_documents)
        contact_nb = xfer.get_components('contact_nb')
        if (contact_nb is not None) and (self.item.nb_total > 0):
            xfer.tab = contact_nb.tab
            xfer.fill_from_model(contact_nb.col, contact_nb.row + 1, True, [((_('statistic'), 'statistic'),)])
        return LucteriosEditor.show(self, xfer)
示例#17
0
def thirdaddon_invoice(item, xfer):
    if WrapAction.is_permission(xfer.request, 'invoice.change_bill'):
        try:
            FiscalYear.get_current()
            xfer.new_tab(_('Invoice'))
            current_filter, status_filter = _add_bill_filter(xfer, 1)
            current_filter &= Q(third=item)
            bills = Bill.objects.filter(current_filter)
            bill_grid = XferCompGrid('bill')
            bill_grid.set_model(bills, Bill.get_default_fields(status_filter), xfer)
            bill_grid.set_location(0, 2, 2)
            bill_grid.add_action(xfer.request, ActionsManage.get_action_url('invoice.Bill', 'Show', xfer), modal=FORMTYPE_MODAL, unique=SELECT_SINGLE, close=CLOSE_NO)
            xfer.add_component(bill_grid)
        except LucteriosException:
            pass
示例#18
0
 def fill_grid(self, row, model, field_id, items):
     grid = XferCompGrid(field_id)
     if self.multi_page:
         xfer = self
     else:
         xfer = None
     grid.set_model(items, self.fieldnames, xfer)
     grid.add_actions(self, action_list=self.action_grid, model=model)
     grid.set_location(0, row + 1, 2)
     grid.set_size(200, 500)
     self.add_component(grid)
     lbl = XferCompLabelForm("nb_" + field_id)
     lbl.set_location(0, row + 2, 2)
     lbl.set_value(_("Total number of %(name)s: %(count)d") % {
                   'name': model._meta.verbose_name_plural, 'count': grid.nb_lines})
     self.add_component(lbl)
示例#19
0
 def show(self, xfer):
     row = xfer.get_max_row() + 1
     lbl = XferCompLabelForm('lbl_entrylineaccount')
     lbl.set_location(1, row)
     lbl.set_value_as_name(EntryLineAccount._meta.verbose_name)
     xfer.add_component(lbl)
     comp = XferCompGrid('entryaccount')
     comp.set_model(EntryAccount.objects.filter(entrylineaccount__account=self.item), None, xfer)
     comp.add_action(xfer.request, ActionsManage.get_action_url(
         'accounting.EntryAccount', 'OpenFromLine', xfer), unique=SELECT_SINGLE, close=CLOSE_NO)
     comp.add_action(xfer.request, ActionsManage.get_action_url('accounting.EntryAccount', 'Close', xfer), unique=SELECT_MULTI, close=CLOSE_NO)
     if self.item.is_third:
         comp.add_action(xfer.request, ActionsManage.get_action_url(
             'accounting.EntryAccount', 'Link', xfer), unique=SELECT_MULTI, close=CLOSE_NO)
     comp.set_location(2, row)
     xfer.add_component(comp)
示例#20
0
文件: views.py 项目: povtux/core
    def fillresponse(self, modelname=''):
        img_title = XferCompImage('img')
        img_title.set_location(0, 0, 1, 2)
        img_title.set_value(self.icon_path())
        self.add_component(img_title)
        lab = XferCompLabelForm('title')
        lab.set_location(1, 0, 3)
        lab.set_value_as_title(_("Print models"))
        self.add_component(lab)

        lab = XferCompLabelForm('lblmodelname')
        lab.set_location(1, 1)
        lab.set_value_as_name(_('model'))
        self.add_component(lab)
        model_list = {}
        for print_model in PrintModel.objects.all():
            if print_model.modelname not in model_list.keys():
                try:
                    model_list[
                        print_model.modelname] = print_model.model_associated_title()
                    if modelname == '':
                        modelname = print_model.modelname
                except LookupError:
                    pass
        model_sel = XferCompSelect('modelname')
        model_sel.set_location(2, 1, 2)
        model_sel.set_select(model_list)
        model_sel.set_value(modelname)
        model_sel.set_action(self.request, self.get_action(
            "", ""), {'modal': FORMTYPE_REFRESH, 'close': CLOSE_NO})
        self.add_component(model_sel)

        items = PrintModel.objects.filter(
            modelname=modelname)
        grid = XferCompGrid('print_model')
        grid.set_location(1, 2, 3)
        grid.set_model(items, ['name', 'kind'], self)
        grid.add_action(self.request, PrintModelEdit.get_action(
            _('edit'), 'images/edit.png'), {'unique': SELECT_SINGLE})
        grid.add_action(self.request, PrintModelClone.get_action(
            _('clone'), 'images/clone.png'), {'unique': SELECT_SINGLE})
        grid.add_action(self.request, PrintModelDelete.get_action(
            _('delete'), 'images/delete.png'), {'unique': SELECT_SINGLE})
        self.add_component(grid)

        self.add_action(WrapAction(_('Close'), 'images/close.png'), {})
示例#21
0
文件: views.py 项目: Diacamma2/syndic
def summary_condo(xfer):
    is_right = WrapAction.is_permission(xfer.request, 'condominium.change_set')
    owners = get_owners(xfer.request)
    if is_right or (len(owners) == 1):
        row = xfer.get_max_row() + 1
        lab = XferCompLabelForm('condotitle')
        lab.set_value_as_infocenter(_('Condominium'))
        lab.set_location(0, row, 4)
        xfer.add_component(lab)
    if len(owners) == 1:
        lab = XferCompLabelForm('condoowner')
        lab.set_value(_('You are a owner'))
        lab.set_location(0, row + 1, 2)
        xfer.add_component(lab)
        grid = XferCompGrid("part")
        grid.set_model(owners[0].partition_set.filter(set__is_active=True), ["set", "value", (_("ratio"), 'ratio')])
        grid.set_location(0, row + 2, 4)
        grid.set_size(200, 500)
        xfer.add_component(grid)
    if is_right:
        row = xfer.get_max_row() + 1
        nb_set = len(Set.objects.filter(is_active=True))
        nb_owner = len(Owner.objects.all())
        lab = XferCompLabelForm('condoinfo')
        lab.set_value_as_header(_("There are %(set)d classes of loads for %(owner)d owners") % {'set': nb_set, 'owner': nb_owner})
        lab.set_location(0, row + 1, 4)
        xfer.add_component(lab)
        if Params.getvalue("condominium-old-accounting"):
            lab = XferCompLabelForm('condoconvinfo')
            lab.set_value_as_header(_("Your condominium account is not in respect of French law{[newline]}An conversion is necessary."))
            lab.set_color('red')
            lab.set_location(0, row + 2, 4)
            xfer.add_component(lab)
            btn = XferCompButton('condoconv')
            btn.set_location(0, row + 3, 4)
            btn.set_action(xfer.request, CondominiumConvert.get_action(_('Convertion ...'), ""), close=CLOSE_NO)
            xfer.add_component(btn)
    if is_right or (len(owners) == 1):
        row = xfer.get_max_row() + 1
        lab = XferCompLabelForm('condosep')
        lab.set_value_as_infocenter("{[hr/]}")
        lab.set_location(0, row, 4)
        xfer.add_component(lab)
        return True
    else:
        return False
示例#22
0
def thirdaddon_expense(item, xfer):
    if WrapAction.is_permission(xfer.request, 'condominium.change_expense'):
        try:
            status_filter = xfer.getparam('status_filter',
                                          Expense.STATUS_BUILDING)
            date_filter = xfer.getparam('date_filter', 0)
            current_year = FiscalYear.get_current()
            item.get_account(current_year,
                             current_system_account().get_provider_mask())
            xfer.new_tab(_('Expenses'))
            edt = XferCompSelect("status_filter")
            edt.set_select(list(Expense.get_field_by_name('status').choices))
            edt.set_value(status_filter)
            edt.description = _('Filter by type')
            edt.set_location(0, 1)
            edt.set_action(xfer.request,
                           xfer.return_action(),
                           modal=FORMTYPE_REFRESH,
                           close=CLOSE_NO)
            xfer.add_component(edt)
            edt = XferCompSelect("date_filter")
            edt.set_select([(0, _('only current fiscal year')),
                            (1, _('all expenses'))])
            edt.set_value(date_filter)
            edt.set_location(0, 2)
            edt.description = _('Filter by date')
            edt.set_action(xfer.request,
                           xfer.return_action(),
                           modal=FORMTYPE_REFRESH,
                           close=CLOSE_NO)
            xfer.add_component(edt)
            expense_filter = Q(status=status_filter) & Q(third=item)
            if date_filter == 0:
                expense_filter &= Q(date__gte=current_year.begin) & Q(
                    date__lte=current_year.end)
            expenses = Expense.objects.filter(expense_filter).distinct()
            expense_grid = XferCompGrid('expense')
            expense_grid.set_model(expenses,
                                   Expense.get_default_fields(status_filter),
                                   xfer)
            expense_grid.add_action_notified(xfer, Expense)
            expense_grid.set_location(0, 3, 2)
            xfer.add_component(expense_grid)
        except LucteriosException:
            pass
示例#23
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
示例#24
0
 def fillresponse(self):
     self.fields_desc.initial(self.item)
     self.read_criteria_from_params()
     self.fillresponse_add_title()
     self.fillresponse_search_select()
     self.fillresponse_search_values()
     self.fillresponse_show_criteria()
     row = self.get_max_row()
     self.filter_items()
     grid = XferCompGrid(self.field_id)
     grid.set_model(self.items, self.fieldnames, self)
     grid.add_action_notified(self)
     grid.set_location(0, row + 4, 6)
     grid.set_size(200, 500)
     self.add_component(grid)
     for act, opt in ActionsManage.get_actions(
             ActionsManage.ACTION_IDENT_LIST, self, key=action_list_sorted):
         self.add_action(act, **opt)
     self.add_action(WrapAction(_('Close'), 'images/close.png'))
示例#25
0
    def show(self, xfer):
        xfer.move_components('body', 0, 2)
        obj_recipients = xfer.get_components('recipients')
        new_recipients = XferCompGrid('recipient_list')
        new_recipients.tab = obj_recipients.tab
        new_recipients.set_location(obj_recipients.col, obj_recipients.row, obj_recipients.colspan)
        new_recipients.add_header("model", _('model'))
        new_recipients.add_header("filter", _('filter'))
        compid = 0
        for model_title, filter_desc in self.item.recipients_description:
            new_recipients.set_value(compid, "model", model_title)
            new_recipients.set_value(compid, "filter", filter_desc)
            compid += 1
        if compid == 0:
            xfer.remove_component('contact_nb')
        if not will_mail_send() or (len(self.item.get_contacts(False)) == 0):
            xfer.remove_component('contact_noemail')
        xfer.remove_component('recipients')
        new_recipients.add_action_notified(xfer, 'recipient_list')
        xfer.tab = new_recipients.tab
        xfer.add_component(new_recipients)

        old_documents = xfer.get_components('documents')
        xfer.remove_component('documents')
        new_documents = XferCompGrid('document')
        new_documents.tab = old_documents.tab
        new_documents.set_location(old_documents.col, old_documents.row, old_documents.colspan)
        new_documents.set_model(self.item.documents.all(), ["name", "description", "date_modification"], xfer)
        new_documents.add_action(xfer.request, DocumentShow.get_action(TITLE_EDIT, "images/show.png"),
                                 modal=FORMTYPE_MODAL, close=CLOSE_NO, unique=SELECT_SINGLE)
        if self.item.status == 0:
            new_documents.add_action(xfer.request, MessageRemoveDoc.get_action(_("Remove"), "images/delete.png"),
                                     modal=FORMTYPE_MODAL, close=CLOSE_NO, unique=SELECT_MULTI)
            new_documents.add_action(xfer.request, MessageInsertDoc.get_action(_("Insert"), "images/add.png"),
                                     modal=FORMTYPE_MODAL, close=CLOSE_NO, unique=SELECT_NONE)
        xfer.tab = new_documents.tab
        xfer.add_component(new_documents)

        return LucteriosEditor.show(self, xfer)
示例#26
0
 def show(self, xfer):
     self._add_cost_savebtn(xfer)
     last_row = xfer.get_max_row() + 10
     lbl = XferCompLabelForm('sep3')
     lbl.set_location(0, last_row + 1, 6)
     lbl.set_value_center("{[hr/]}")
     xfer.add_component(lbl)
     xfer.filltab_from_model(1, last_row + 2, True, ['entrylineaccount_set'])
     grid_lines = xfer.get_components('entrylineaccount')
     grid_lines.actions = []
     if self.item.has_third:
         sum_customer = get_amount_sum(self.item.entrylineaccount_set.filter(
             account__code__regex=current_system_account().get_third_mask()).aggregate(Sum('amount')))
         if ((sum_customer < 0) and not self.item.has_cash) or ((sum_customer > 0) and self.item.has_cash):
             lbl = XferCompLabelForm('asset_warning')
             lbl.set_location(0, last_row + 3, 6)
             lbl.set_value_as_header(_("entry of accounting for an asset"))
             xfer.add_component(lbl)
     if self.item.link is not None:
         linkentries = EntryAccount.objects.filter(link=self.item.link).exclude(id=self.item.id)
         if len(linkentries) == 0:
             self.item.unlink()
         else:
             lbl = XferCompLabelForm('sep4')
             lbl.set_location(0, last_row + 4, 6)
             lbl.set_value_center("{[hr/]}")
             xfer.add_component(lbl)
             lbl = XferCompLabelForm('entrylinklab')
             lbl.set_location(1, last_row + 5, 5)
             lbl.set_value_center(_("Linked entries"))
             xfer.add_component(lbl)
             link_grid_lines = XferCompGrid('entryaccount_link')
             link_grid_lines.set_model(linkentries, fieldnames=None, xfer_custom=xfer)
             link_grid_lines.set_location(1, last_row + 6, 5)
             link_grid_lines.add_action(xfer.request, ActionsManage.get_action_url(
                 'accounting.EntryAccount', 'OpenFromLine', xfer), unique=SELECT_SINGLE, close=CLOSE_YES, params={'field_id': 'entryaccount_link', 'journal': ''})
             xfer.add_component(link_grid_lines)
     if self.added:
         xfer.add_action(xfer.get_action(TITLE_MODIFY, "images/ok.png"), params={"SAVE": "YES"})
示例#27
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
         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'))
                 lbl = XferCompLabelForm('lbl_' + field_name)
                 lbl.set_location(col + offset, row, 1, 1)
                 lbl.set_value_as_name(
                     child.model._meta.verbose_name)
                 self.add_component(lbl)
                 comp = XferCompGrid(field_name[:-4])
                 comp.set_model(child, None, self)
                 comp.add_actions(self, model=child.model)
                 comp.set_location(col + 1 + offset, row, colspan, 1)
                 self.add_component(comp)
                 offset += 2
             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
                     lbl = XferCompLabelForm('lbl_' + field_name)
                     lbl.set_location(col + offset, row, 1, 1)
                     if verbose_name is None:
                         lbl.set_value_as_name(
                             six.text_type(dep_field.verbose_name))
                     else:
                         lbl.set_value_as_name(
                             six.text_type(verbose_name))
                     self.add_component(lbl)
                     if (dep_field is None) or (not (dep_field.is_relation and dep_field.many_to_many)):
                         if readonly:
                             comp = self.get_reading_comp(field_name)
                         else:
                             comp = self.get_writing_comp(field_name)
                         comp.set_location(
                             col + 1 + offset, row, colspan, 1)
                         self.add_component(comp)
                     else:  # field many-to-many
                         if readonly:
                             child = getattr(self.item, field_name).all()
                             comp = XferCompGrid(field_name)
                             comp.set_model(child, None, self)
                             comp.set_location(
                                 col + 1 + offset, row, colspan, 1)
                             self.add_component(comp)
                         else:
                             self.selector_from_model(
                                 col + offset, row, field_name)
                         height = 5
                     offset += 2
         row += height