def _get_payments_columns(self): return [ IdentifierColumn('identifier', title=_('Payment #')), Column('method.description', _("Type"), data_type=str, width=60), Column('description', _("Description"), data_type=str, width=150, expand=True), Column('due_date', _("Due date"), sorted=True, data_type=datetime.date, width=90, justify=Gtk.Justification.RIGHT), Column('paid_date', _("Paid date"), data_type=datetime.date, width=90), Column('status_str', _("Status"), data_type=str, width=80), ColoredColumn('base_value', _("Value"), data_type=currency, width=90, color='red', justify=Gtk.Justification.RIGHT, data_func=payment_value_colorize), ColoredColumn('paid_value', _("Paid value"), data_type=currency, width=92, color='red', justify=Gtk.Justification.RIGHT, data_func=payment_value_colorize) ]
def _get_payments_columns(self): return [ IdentifierColumn('identifier', title=_('Payment #')), Column('description', _("Description"), data_type=str, expand=True, ellipsize=pango.ELLIPSIZE_END), Column('due_date', _("Due date"), sorted=True, data_type=datetime.date, justify=gtk.JUSTIFY_RIGHT), Column('paid_date', _("Paid date"), data_type=datetime.date), Column('status_str', _("Status"), data_type=str), ColoredColumn('value', _("Value"), data_type=currency, justify=gtk.JUSTIFY_RIGHT, use_data_model=True, data_func=payment_value_colorize), ColoredColumn('paid_value', _("Paid value"), data_type=currency, justify=gtk.JUSTIFY_RIGHT, use_data_model=True, data_func=payment_value_colorize) ]
def _get_columns(self): return [ IdentifierColumn('identifier', title=_('Purchase #')), Column('description', _("Description"), data_type=str, width=150, expand=True, ellipsize=pango.ELLIPSIZE_END), Column('due_date', _("Due date"), sorted=True, data_type=datetime.date, width=90, justify=gtk.JUSTIFY_RIGHT), Column('paid_date', _("Paid date"), data_type=datetime.date, width=90), Column('status_str', _("Status"), data_type=str, width=80), ColoredColumn('value', _("Value"), data_type=currency, width=90, color='red', justify=gtk.JUSTIFY_RIGHT, data_func=payment_value_colorize), ColoredColumn('paid_value', _("Paid value"), data_type=currency, width=92, color='red', justify=gtk.JUSTIFY_RIGHT, data_func=payment_value_colorize) ]
def _get_account_columns(self): def format_withdrawal(value): if value < 0: return currency(abs(value)).format(symbol=True, precision=2) def format_deposit(value): if value > 0: return currency(value).format(symbol=True, precision=2) if self.model.account_type == Account.TYPE_INCOME: color_func = lambda x: False else: color_func = lambda x: x < 0 return [Column('date', title=_("Date"), data_type=datetime.date, sorted=True), Column('code', title=_("Code"), data_type=unicode), Column('description', title=_("Description"), data_type=unicode, expand=True), Column('account', title=_("Account"), data_type=unicode), Column('value', title=self.model.account.get_type_label(out=False), data_type=currency, format_func=format_deposit), Column('value', title=self.model.account.get_type_label(out=True), data_type=currency, format_func=format_withdrawal), ColoredColumn('total', title=_("Total"), data_type=currency, color='red', data_func=color_func)]
def get_columns(self): return [SearchColumn('code', title=_('Code'), data_type=str, sort_func=sort_sellable_code), SearchColumn('category_description', title=_('Category'), data_type=str, width=100), SearchColumn('description', title=_('Description'), data_type=str, expand=True, sorted=True), SearchColumn('manufacturer', title=_('Manufacturer'), data_type=str, visible=False), SearchColumn('model', title=_('Model'), data_type=str, visible=False), SearchColumn('location', title=_('Location'), data_type=str, visible=False), SearchColumn('maximum_quantity', title=_('Maximum'), visible=False, format_func=format_data, data_type=Decimal), SearchColumn('minimum_quantity', title=_('Minimum'), format_func=format_data, data_type=Decimal), SearchColumn('stock', title=_('In Stock'), format_func=format_data, data_type=Decimal), SearchColumn('to_receive_quantity', title=_('To Receive'), format_func=format_data, data_type=Decimal), ColoredColumn('difference', title=_('Difference'), color='red', format_func=format_data, data_type=Decimal, data_func=lambda x: x <= Decimal(0))]
def __init__(self, with_code=True, create_mode=False): self.create_mode = create_mode self._accounts = {} columns = [StockTextColumn('description', title=_("Account name"), data_type=str, pack_end=True, expand=True, sorted=True, sort_func=sort_models)] if with_code: columns.append(Column('code', title=_("Code"), data_type=str, width=120)) if not create_mode: # FIXME: This needs to be much better colorized, and moved to the # domain classes def colorize(account): if (account.kind == 'account' and account.account_type == Account.TYPE_INCOME): return False else: return account.total < 0 columns.append(ColoredColumn('total', title=_("Total"), width=100, data_type=currency, color='red', data_func=colorize, use_data_model=True)) ObjectTree.__init__(self, columns, mode=gtk.SELECTION_SINGLE) def render_icon(icon): return self.render_icon(icon, gtk.ICON_SIZE_MENU) self._pixbuf_money = render_icon(STOQ_MONEY) self._pixbuf_payable = render_icon(STOQ_PAYABLE_APP) self._pixbuf_receivable = render_icon(STOQ_BILLS) self._pixbuf_till = render_icon(STOQ_TILL_APP) if self.create_mode: self.set_headers_visible(False)
def _get_payments_columns(self): return [ IdentifierColumn('identifier'), Column("method_name", title=_("Type"), data_type=str, width=90), Column("description", title=_("Description"), data_type=str, searchable=True, width=190, expand=True), Column("due_date", title=_("Due date"), width=110, data_type=datetime.date, sorted=True), Column("paid_date", title=_("Paid date"), width=110, data_type=datetime.date), Column("status_str", title=_("Status"), width=80, data_type=str), ColoredColumn("value", title=_("Value"), justify=gtk.JUSTIFY_RIGHT, data_type=currency, color='red', width=100, data_func=payment_value_colorize), Column("days_late", title=_("Days Late"), width=110, format_func=( lambda days_late: days_late and str(days_late) or u""), justify=gtk.JUSTIFY_RIGHT, data_type=str) ]
def get_columns(self): columns = [ IdentifierColumn('identifier', title=_('Sale #'), sorted=True), SearchColumn('salesperson_name', title=_('Salesperson'), data_type=str, expand=True), # This column evals to an integer, and due to a bug # in kiwi, its not searchable Column('commission_percentage', title=_('Commission (%)'), data_type=Decimal, format="%.2f"), # negative commissions are shown in red color ColoredColumn('commission_value', title=_('Commission'), color='red', data_func=lambda x: x < 0, data_type=currency)] # FIXME: The date here depends on the parameter. We could use # it as a property on the view, but then it would not be searchable. # Find a better way of handling this sometime in the future. if sysparam(self.store).SALE_PAY_COMMISSION_WHEN_CONFIRMED: columns.append(SearchColumn('confirm_date', title=_('Date'), data_type=datetime.date)) else: columns.append(SearchColumn('paid_date', title=_('Date'), data_type=datetime.date)) columns.extend([ Column('payment_amount', title=_('Payment value'), data_type=currency), Column('total_amount', title=_('Sale total'), data_type=currency)]) return columns
def get_columns(self, *args): return [IdentifierColumn('identifier', title=_('Entry #'), sorted=True), Column('date', _('Date'), data_type=datetime.date), Column('time', _('Time'), data_type=datetime.time), Column('description', _('Description'), data_type=str, expand=True), ColoredColumn('value', _('Value'), data_type=currency, color='red', data_func=payment_value_colorize, width=140)]
def get_columns(self): return [IdentifierColumn('identifier', title=_('Payment #'), sorted=True), Column('paid_date', title=_(u'Date'), data_type=datetime.date, width=150), Column('description', title=_(u'Description'), data_type=str, width=150, expand=True), ColoredColumn('paid_value', title=_(u'Value'), color='red', data_type=currency, width=100, use_data_model=True, data_func=lambda p: not p.is_outpayment())]
def _get_columns(self): return [ Column('code', title=_('Code'), data_type=str), Column('category_description', title=_('Category'), data_type=str, expand=True, ellipsize=Pango.EllipsizeMode.END), Column('description', title=_('Description'), data_type=str, expand=True, ellipsize=Pango.EllipsizeMode.END, sorted=True), Column('unit_description', title=_('Unit'), data_type=str), Column('needed', title=_('Needed'), data_type=Decimal, format_func=format_quantity), Column('stock_quantity', title=_('In Stock'), data_type=Decimal, format_func=format_quantity), ColoredColumn('to_purchase', title=_('To Purchase'), data_type=Decimal, format_func=format_quantity, use_data_model=True, color='red', data_func=self._colorize_to_purchase_col), ColoredColumn('to_make', title=_('To Make'), data_type=Decimal, format_func=format_quantity, use_data_model=True, color='red', data_func=self._colorize_to_make_col)]
def _get_columns(self): return [ Column('description', title=_('Description'), data_type=str, width=300, sorted=True), ColoredColumn('value', title=_('Amount'), data_type=currency, color='red', data_func=lambda x: x < 0) ]
def _get_produced_items_columns(self): # Create a cache for test results, to avoid quering the database for # every update. self._test_result_cache = dict() columns = [ Column('serial_number', title=_('Serial Number'), data_type=str, expand=True) ] # Add one column for each test from each product. products = dict() for item in self.model.get_items(): if item.product in products: continue products[item.product] = 1 for test in item.product.quality_tests: columns.append( # This wont just the serial number, since we use format_func # to change the displayed value, but we still need one # property to create the column ColoredColumn('serial_number', data_type=str, title=test.description, format_func=self._format_func, format_func_data=test, color='red', data_func=self._colorize, use_data_model=True)) columns.extend([ Column('test_passed', title=_('Tests Passed'), data_type=bool, visible=False), Column('entered_stock', title=_('Entered Stock'), data_type=bool, visible=False) ]) return columns
def _get_account_columns(self): return [ IdentifierColumn('identifier', sorted=True), Column('date', title=_(u'Date'), data_type=datetime.date, width=150), Column('description', title=_(u'Description'), data_type=str, width=150, expand=True), ColoredColumn('value', title=_(u'Value'), color='red', data_type=currency, width=100, data_func=lambda x: x < decimal.Decimal(0)) ]
def _get_columns(self): cols = [ Column('description', title=_('Description'), data_type=str, width=300, sorted=True) ] if self._blind_close: cols.append( Column('user_value', title=_('Amount'), data_type=currency, editable=True)) else: cols.append( ColoredColumn('system_value', title=_('Amount'), data_type=currency, color='red', data_func=lambda x: x < 0)) return cols
class _CreditInfoListSlave(ModelListSlave): model_type = Payment editor_class = None columns = [ IdentifierColumn('identifier', title=_('Payment #'), sorted=True), Column('paid_date', title=_(u'Date'), data_type=datetime.date, width=150), Column('description', title=_(u'Description'), data_type=str, width=150, expand=True), ColoredColumn('paid_value', title=_(u'Value'), color='red', data_type=currency, width=100, use_data_model=True, data_func=lambda p: not p.is_outpayment()) ] def __init__(self, *args, **kwargs): ModelListSlave.__init__(self, *args, **kwargs) self.set_list_type(ListType.ADDONLY) def populate(self): return self.parent.person.get_credit_transactions() def run_editor(self, store, model): store.savepoint('before_run_editor_credit') retval = self.run_dialog(CreditEditor, store=store, client=self.parent.person) if not retval: store.rollback_to_savepoint('before_run_editor_credit') return retval
def color(data): return data % 2 == 0 columns = [ SequentialColumn(), MyColumn('name', tooltip='What about a stupid tooltip?', editable=True), Column('age', data_type=int, format_func=format_func, editable=True), Column('bonus', data_type=bool, editable=True), Column('salary', data_type=currency, editable=True), Column('city', visible=True, sorted=True), Column('date', data_type=datetime.date), Column('time', data_type=datetime.time), Column('datetime', data_type=datetime.datetime), ColoredColumn('age', data_type=int, color='red', data_func=color), ] data = (Person('Evandro', 23, 'Belo Horizonte'), Person('Daniel', 22, 'São Carlos'), Person('Henrique', 21, 'São Carlos'), Person('Gustavo', 23, 'São Jose do Santos'), Person('Johan', 23, 'Göteborg'), Person('Lorenzo', 26, 'Granada')) win = Gtk.Window() win.set_size_request(850, 300) win.connect('destroy', Gtk.main_quit) vbox = Gtk.VBox() win.add(vbox)