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)
def fill_header(self): self.item = FiscalYear.get_current(self.getparam("year")) new_begin = convert_date(self.getparam("begin"), self.item.begin) new_end = convert_date(self.getparam("end"), self.item.end) if (new_begin >= self.item.begin) and (new_end <= self.item.end): self.item.begin = new_begin self.item.end = new_end img = XferCompImage('img') img.set_value(self.current_image()) if not img.value.startswith('/static/'): img.type = 'jpg' img.set_location(0, 0, 1, 5) self.add_component(img) if self.item.last_fiscalyear is not None: lbl = XferCompLabelForm('year_1') lbl.set_location(1, 0, 3) lbl.description = _('year N-1') lbl.set_value(six.text_type(self.item.last_fiscalyear)) self.add_component(lbl) select_year = XferCompSelect(self.field_id) select_year.set_location(1, 1, 3) select_year.set_select_query(FiscalYear.objects.all()) select_year.description = _('year N') select_year.set_value(self.item.id) select_year.set_needed(True) select_year.set_action(self.request, self.__class__.get_action(), close=CLOSE_NO, modal=FORMTYPE_REFRESH) self.add_component(select_year) self.filter = Q(entry__year=self.item) self.lastfilter = Q(entry__year=self.item.last_fiscalyear)
def _add_season_comp(self, xfer, row): season = self.item.season if self.item.subscriptiontype.duration == 0: # annually lbl = XferCompLabelForm("seasondates") lbl.set_location(1, row) lbl.set_value( "%s => %s" % (formats.date_format(season.begin_date, "SHORT_DATE_FORMAT"), formats.date_format(season.end_date, "SHORT_DATE_FORMAT"))) lbl.description = _('annually') xfer.add_component(lbl) elif self.item.subscriptiontype.duration == 1: # periodic sel = XferCompSelect('period') sel.set_needed(True) sel.set_select_query(season.period_set.all()) sel.set_location(1, row) sel.description = _('period') xfer.add_component(sel) elif self.item.subscriptiontype.duration == 2: # monthly sel = XferCompSelect('month') sel.set_needed(True) sel.set_select(season.get_months()) sel.set_location(1, row) sel.description = _('month') xfer.add_component(sel) elif self.item.subscriptiontype.duration == 3: # calendar begindate = XferCompDate('begin_date') begindate.set_needed(True) begindate.set_value(season.date_ref) begindate.set_location(1, row) begindate.description = _('begin date') xfer.add_component(begindate)
def fillresponse(self, ventilate=False): msg = self.item.check_close() if msg is not None: if self.getparam('CLOSE') is None: dlg = self.create_custom(self.model) img = XferCompImage('img') img.set_value(self.icon_path()) img.set_location(0, 0) dlg.add_component(img) lbl = XferCompLabelForm('title') lbl.set_value_as_title(self.caption) lbl.set_location(1, 0, 2) dlg.add_component(lbl) lbl = XferCompLabelForm('info') lbl.set_value(_('This class load has a difference of %s between those call of funds and those expenses.') % msg) lbl.set_location(1, 1) dlg.add_component(lbl) lbl = XferCompCheck('ventilate') lbl.set_value(ventilate) lbl.set_location(1, 2) lbl.description = 'Do you want to ventilate this amount for each owner?' dlg.add_component(lbl) dlg.add_action(self.get_action(TITLE_OK, 'images/ok.png'), modal=FORMTYPE_MODAL, close=CLOSE_YES, params={'CLOSE': 'YES'}) dlg.add_action(WrapAction(TITLE_CANCEL, 'images/cancel.png')) else: if self.item.type_load == 0: self.item.close_current(ventilate) else: self.item.close_exceptional(ventilate) elif self.confirme(_('Do you want to close this class load?')): if self.item.type_load == 0: self.item.close_current() else: self.item.close_exceptional()
def fill_header(self): CondominiumReport.fill_header(self) self.next_year = self.item.next_fiscalyear.first() if self.next_year is not None: lbl = XferCompLabelForm('yearn1') lbl.set_location(1, 2, 3) lbl.set_value(six.text_type(self.next_year)) lbl.description = _('year N+1') self.add_component(lbl) self.next_year_again = self.next_year.next_fiscalyear.first() if self.next_year_again is not None: lbl = XferCompLabelForm('yearn2') lbl.set_location(1, 3, 3) lbl.description = _('year N+2') lbl.set_value(six.text_type(self.next_year_again)) self.add_component(lbl) else: self.next_year_again = None
def fill_current_folder(self, new_col, new_row): lbl = XferCompLabelForm('title_folder') if self.current_folder > 0: folder_obj = FolderContainer.objects.get(id=self.current_folder) lbl.set_value(folder_obj.get_title()) folder_description = folder_obj.description else: folder_obj = None lbl.set_value('>') folder_description = "" lbl.set_location(new_col, new_row) lbl.description = _("current folder:") self.add_component(lbl) lbl = XferCompLabelForm('desc_folder') lbl.set_value_as_header(folder_description) lbl.set_location(new_col, new_row + 1) self.add_component(lbl) if self.current_folder > 0: btn_return = XferCompButton('return') btn_return.set_location(new_col + 1, new_row) btn_return.set_is_mini(True) btn_return.set_action(self.request, self.get_action('', 'images/left.png'), params={ 'current_folder': self.item.parent_id if self.item.parent_id is not None else 0 }, modal=FORMTYPE_REFRESH, close=CLOSE_NO) self.add_component(btn_return) btn_edit = XferCompButton('edit') btn_edit.set_location(new_col + 1, new_row + 1) btn_edit.set_is_mini(True) btn_edit.set_action(self.request, FolderAddModify.get_action( '', 'images/edit.png'), params={'folder': self.current_folder}, close=CLOSE_NO) self.add_component(btn_edit) return folder_obj
def change_select_to_label(self, cmp_name): old_obj = self.get_components(cmp_name) if isinstance(old_obj, XferCompSelect): value = old_obj.value if isinstance(old_obj.select_list, list): for key, sel_val in old_obj.select_list: if six.text_type(value) == six.text_type(key): value = sel_val break self.remove_component(cmp_name) self.tab = old_obj.tab new_lbl = XferCompLabelForm(cmp_name) new_lbl.set_value(value) new_lbl.col = old_obj.col new_lbl.row = old_obj.row new_lbl.vmin = old_obj.vmin new_lbl.hmin = old_obj.hmin new_lbl.colspan = old_obj.colspan new_lbl.rowspan = old_obj.rowspan new_lbl.description = old_obj.description self.add_component(new_lbl)
def change_to_readonly(self, cmp_name): old_obj = self.get_components(cmp_name) value = old_obj.value if isinstance(old_obj, XferCompSelect): if isinstance(old_obj.select_list, dict) and (value in old_obj.select_list.keys()): value = old_obj.select_list[value] if isinstance(old_obj.select_list, list): for key, sel_val in old_obj.select_list: if six.text_type(value) == six.text_type(key): value = sel_val break elif isinstance(old_obj, XferCompCheck): if value: value = _("Yes") else: value = _("No") elif value is None: value = "---" elif isinstance(old_obj, XferCompDate): value = formats.date_format(value, "DATE_FORMAT") elif isinstance(old_obj, XferCompDateTime): value = formats.date_format(value, "DATETIME_FORMAT") elif isinstance(old_obj, XferCompTime): value = formats.date_format(value, "TIME_FORMAT") elif isinstance(old_obj, XferCompFloat) and (value is not None): value = ("%%.%df" % old_obj.prec) % value self.remove_component(cmp_name) self.tab = old_obj.tab new_lbl = XferCompLabelForm(cmp_name) new_lbl.set_value(value) new_lbl.col = old_obj.col new_lbl.row = old_obj.row new_lbl.vmin = old_obj.vmin new_lbl.hmin = old_obj.hmin new_lbl.colspan = old_obj.colspan new_lbl.rowspan = old_obj.rowspan new_lbl.description = old_obj.description self.add_component(new_lbl)
def show(self, xfer): IndividualEditor.show(self, xfer) if xfer.getparam('adherent') is None: xfer.params['adherent'] = xfer.getparam('individual', 0) if xfer.getparam('individual') is None: xfer.params['individual'] = xfer.getparam('adherent', 0) img = xfer.get_components('img') img.set_value(get_icon_path("diacamma.member/images/adherent.png")) if Params.getobject("member-family-type") is not None: xfer.tab = 1 row_init = xfer.get_max_row() + 1 lbl = XferCompLabelForm("family") current_family = self.item.family if current_family is None: lbl.set_value(None) else: lbl.set_value(six.text_type(self.item.family)) lbl.set_location(1, row_init, 2) lbl.description = _('family') xfer.add_component(lbl) btn = XferCompButton('famillybtn') btn.is_mini = True btn.set_location(3, row_init) if current_family is None: act = ActionsManage.get_action_url('member.Adherent', 'FamilyAdd', xfer) act.set_value("", "images/add.png") btn.set_action(xfer.request, act, modal=FORMTYPE_MODAL, close=CLOSE_NO) else: act = ActionsManage.get_action_url('contacts.LegalEntity', 'Show', xfer) act.set_value("", "images/edit.png") btn.set_action( xfer.request, act, modal=FORMTYPE_MODAL, close=CLOSE_NO, params={'legal_entity': six.text_type(current_family.id)}) xfer.add_component(btn) if xfer.item.current_subscription is not None: xfer.tab = 1 row_init = xfer.get_max_row() + 1 row = row_init + 1 for doc in xfer.item.current_subscription.docadherent_set.all(): ckc = XferCompCheck("doc_%d" % doc.id) ckc.set_value(doc.value) ckc.set_location(2, row) ckc.description = six.text_type(doc.document) xfer.add_component(ckc) row += 1 if row != row_init + 1: lbl = XferCompLabelForm("lbl_doc_sep") lbl.set_value("{[hr/]}") lbl.set_location(1, row_init, 4) xfer.add_component(lbl) lbl = XferCompLabelForm("lbl_doc") lbl.set_value_as_name(_('documents needs')) lbl.set_location(1, row_init + 1) xfer.add_component(lbl) btn = XferCompButton("btn_doc") btn.set_location(4, row_init + 1, 1, row - row_init) btn.set_action(xfer.request, ActionsManage.get_action_url( "member.Adherent", "Doc", xfer), close=CLOSE_NO) xfer.add_component(btn)
def fillresponse(self, modelname, quotechar="'", delimiter=";", encoding="utf-8", dateformat="%d/%m/%Y", step=0): def add_item_if_not_null(new_item): if new_item is not None: self.items_imported[new_item.id] = new_item if modelname is not None: self.model = apps.get_model(modelname) self.quotechar = quotechar self.delimiter = delimiter self.encoding = encoding self.dateformat = dateformat img = XferCompImage('img') img.set_value(self.icon_path()) img.set_location(0, 0, 1, 6) self.add_component(img) if step == 0: lbl = self._select_csv_parameters() step = 1 elif step == 1: lbl = XferCompLabelForm('modelname') lbl.set_value(self.model._meta.verbose_name.title()) lbl.set_location(1, 0) lbl.description = _('model') self.add_component(lbl) self._read_csv() self.new_tab(_("Fields")) self._select_fields() self.new_tab(_("Current content")) self._show_initial_csv() step = 2 elif step == 2: lbl = XferCompLabelForm('modelname') lbl.set_value(self.model._meta.verbose_name.title()) lbl.set_location(1, 0) lbl.description = _('model') self.add_component(lbl) fields_description, csv_readed = self._read_csv_and_convert() tbl = XferCompGrid('CSV') for field_description in fields_description: tbl.add_header(field_description[0], field_description[1], field_description[2], formatstr=field_description[3]) row_idx = 1 for row in csv_readed: for field_description in fields_description: tbl.set_value(row_idx, field_description[0], row[field_description[0]]) row_idx += 1 tbl.set_location(1, 1, 2) self.add_component(tbl) lbl = XferCompLabelForm('nb_line') lbl.set_value(_("Total number of items: %d") % (row_idx - 1)) lbl.set_location(1, 2, 2) self.add_component(lbl) step = 3 elif step == 3: fields_description, csv_readed = self._read_csv_and_convert() self.model.initialize_import() self.items_imported = {} for rowdata in csv_readed: add_item_if_not_null(self.model.import_data(rowdata, dateformat)) add_item_if_not_null(self.model.finalize_import()) lbl = XferCompLabelForm('result') lbl.set_value_as_header(_("%d items are been imported") % len(self.items_imported)) lbl.set_location(1, 2, 2) self.add_component(lbl) step = 4 if step < 4: if step > 1: self.add_action(self.get_action(_('Back'), "images/left.png"), close=CLOSE_NO, modal=FORMTYPE_REFRESH, params={'step': step - 2}) self.add_action(self.get_action(_('Ok'), "images/ok.png"), close=CLOSE_NO, modal=FORMTYPE_REFRESH, params={'step': step}) self.add_action(WrapAction(_("Cancel"), "images/cancel.png")) else: self.add_action(WrapAction(_("Close"), "images/close.png"))