hh.save() # TODO: see 20140426 # hh.add_member(head, Role.objects.get(pk=1)) if head is not None: hh.add_member(head, MemberRoles.head) if partner is not None: hh.add_member(partner, MemberRoles.partner) hh.after_ui_create(ar) hh.after_ui_save(ar) ar.success( _("Household has been created"), close_window=True, refresh_all=True) ar.goto_instance(hh) dd.inject_action( 'contacts.Person', create_household=CreateHousehold()) # dd.inject_action( # 'contacts.Person', # show_households=dd.ShowSlaveTable('households.MembersByPerson')) class MembersByPerson(Members): required = dd.required() label = _("Household memberships") master_key = 'person' column_names = 'household role start_date end_date *' # auto_fit_column_widths = True # hide_columns = 'id' slave_grid_format = 'summary'
master = 'accounts.Account' @classmethod def get_data_rows(cls, ar, **flt): account = ar.master_instance if account is None: return [] if not account.clearable: return [] #~ return get_due_movements(cls.DUE_DC,account=account,satisfied=False) flt.update(satisfied=False, account=account) # ignore trade_type to avoid overriding account ar.param_values.trade_type = None return super(DebtsByAccount, cls).get_data_rows(ar, **flt) dd.inject_action('accounts.Account', due=dd.ShowSlaveTable(DebtsByAccount)) class DebtsByPartner(ExpectedMovements): """This is the table being printed in a Payment Reminder. Usually this table has one row per sales invoice which is not fully paid. But several invoices ("debts") may be grouped by match. If the partner has purchase invoices, these are deduced from the balance. This table is accessible by clicking the "Debts" action button on a :class:`Partner <lino.modlib.contacts.models.Partner>`. """ master = 'contacts.Partner' #~ column_names = 'due_date debts payments balance'
# logger.info("20140426") kw = super(CreateHousehold, self).action_param_defaults(ar, obj, **kw) kw.update(head=obj) return kw def run_from_ui(self, ar, **kw): pv = ar.action_param_values hh = rt.modules.households.Household.create_household( ar, pv.head, pv.partner, pv.type) ar.success( _("Household has been created"), close_window=True, refresh_all=True) ar.goto_instance(hh) dd.inject_action( config.person_model, create_household=CreateHousehold()) class MembersByPerson(Members): required = dd.required() label = _("Household memberships") master_key = 'person' column_names = 'household role primary start_date end_date *' # auto_fit_column_widths = True # hide_columns = 'id' slave_grid_format = 'summary' @classmethod def get_slave_summary(self, obj, ar): sar = self.request(master_instance=obj)