예제 #1
0
    def __init__(self, store, model, visual_mode, ui_form_name, parent):
        self._parent = parent
        if ui_form_name:
            self.db_form = DatabaseForm(store, ui_form_name)
        else:
            self.db_form = None

        super(_PersonEditorTemplate, self).__init__(store,
                                                    model,
                                                    visual_mode=visual_mode)
        self._check_new_person()
예제 #2
0
    def __init__(self, store, model=None, visual_mode=False):
        from stoqlib.gui.slaves.sellableslave import CategoryPriceSlave
        is_new = not model
        self._sellable = None
        self._demo_mode = sysparam(store).DEMO_MODE
        self._requires_weighing_text = (
            "<b>%s</b>" % api.escape(_("This unit type requires weighing")))

        if self.ui_form_name:
            self.db_form = DatabaseForm(store, self.ui_form_name)
        else:
            self.db_form = None
        BaseEditor.__init__(self, store, model, visual_mode)
        self.enable_window_controls()
        if self._demo_mode:
            self._add_demo_warning()

        # code suggestion
        edit_code_product = sysparam(self.store).EDIT_CODE_PRODUCT
        self.code.set_sensitive(not edit_code_product and not self.visual_mode)
        if not self.code.read():
            code = u'%d' % self._sellable.id
            self.code.update(code)

        self.description.grab_focus()
        self.table.set_focus_chain([
            self.code,
            self.barcode,
            self.default_sale_cfop,
            self.description,
            self.cost_hbox,
            self.price_hbox,
            self.consignment_box,
            self.statuses_combo,
            self.category_combo,
            self.tax_hbox,
            self.unit_combo,
        ])

        print_labels_button = self.add_button('print_labels', gtk.STOCK_PRINT)
        print_labels_button.connect('clicked', self.on_print_labels_clicked,
                                    'print_labels')
        label = print_labels_button.get_children()[0]
        label = label.get_children()[0].get_children()[1]
        label.set_label(_(u'Print labels'))

        self.setup_widgets()

        if not is_new and not self.visual_mode:
            # Although a sellable can be both removed/closed, we show only one,
            # to avoid having *lots* of buttons. If it's closed, provide a way
            # to reopen it, else, show a delete button if it can be removed
            # or a close button if it can be closed
            if self._sellable.is_closed():
                self._add_reopen_button()
            elif self._sellable.can_remove():
                self._add_delete_button()
            elif self._sellable.can_close():
                self._add_close_button()

        self.set_main_tab_label(self.model_name)
        price_slave = CategoryPriceSlave(self.store, self.model.sellable,
                                         self.visual_mode)
        self.add_extra_tab(_(u'Category Prices'), price_slave)
        self._setup_ui_forms()