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
def show(self, xfer): xfer.move_components('lbl_body', 0, 2) xfer.move_components('body', 0, 2) obj_recipients = xfer.get_components('recipients') new_recipients = XferCompGrid('recipient_list') 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: nb_contact = len(self.item.get_contacts()) contact_nb = XferCompLabelForm('contact_nb') contact_nb.set_location(obj_recipients.col, obj_recipients.row + 1, obj_recipients.colspan) contact_nb.set_value(_("Message defined for %d contacts") % nb_contact) xfer.add_component(contact_nb) lbl = XferCompLabelForm('sep_body') lbl.set_location(obj_recipients.col - 1, obj_recipients.row + 2, 4) lbl.set_value("{[hr/]}") xfer.add_component(lbl) xfer.remove_component('recipients') new_recipients.add_action_notified(xfer, 'recipient_list') xfer.add_component(new_recipients) return LucteriosEditor.show(self, xfer)
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)
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)
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)
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)
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)
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 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)
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
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
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'))
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)