Example #1
0
    def _get_parameter_value(self, obj):
        """Given a ParameterData object, returns a string representation of
        its current value.
        """
        detail = sysparam.get_detail_by_name(obj.field_name)
        if detail.type == unicode:
            data = sysparam.get_string(obj.field_name)
        elif detail.type == bool:
            data = sysparam.get_bool(obj.field_name)
        elif detail.type == int:
            data = sysparam.get_int(obj.field_name)
        elif detail.type == decimal.Decimal:
            data = sysparam.get_decimal(obj.field_name)
        elif isinstance(detail.type, basestring):
            data = sysparam.get_object(self.store, obj.field_name)
        else:
            raise NotImplementedError(detail.type)

        if isinstance(data, Domain):
            if not (IDescribable in providedBy(data)):
                raise TypeError(u"Parameter `%s' must implement IDescribable "
                                "interface." % obj.field_name)
            return data.get_description()
        elif detail.options:
            return detail.options[int(obj.field_value)]
        elif isinstance(data, bool):
            return [_(u"No"), _(u"Yes")][data]
        elif obj.field_name == u'COUNTRY_SUGGESTED':
            return dgettext("iso_3166", data)
        elif isinstance(data, unicode):
            # FIXME: workaround to handle locale specific data
            return _(data)
        return unicode(data)
Example #2
0
    def _get_parameter_value(self, obj):
        """Given a ParameterData object, returns a string representation of
        its current value.
        """
        detail = sysparam.get_detail_by_name(obj.field_name)
        if detail.type == unicode:
            data = sysparam.get_string(obj.field_name)
        elif detail.type == bool:
            data = sysparam.get_bool(obj.field_name)
        elif detail.type == int:
            data = sysparam.get_int(obj.field_name)
        elif detail.type == decimal.Decimal:
            data = sysparam.get_decimal(obj.field_name)
        elif isinstance(detail.type, basestring):
            data = sysparam.get_object(self.store, obj.field_name)
        else:
            raise NotImplementedError(detail.type)

        if isinstance(data, Domain):
            if not (IDescribable in providedBy(data)):
                raise TypeError(u"Parameter `%s' must implement IDescribable "
                                "interface." % obj.field_name)
            return data.get_description()
        elif detail.options:
            return detail.options[int(obj.field_value)]
        elif isinstance(data, bool):
            return [_(u"No"), _(u"Yes")][data]
        elif obj.field_name == u'COUNTRY_SUGGESTED':
            return dgettext("iso_3166", data)
        elif isinstance(data, unicode):
            # FIXME: workaround to handle locale specific data
            return _(data)
        return unicode(data)
Example #3
0
 def setup_slaves(self):
     self._slave = None
     self.detail = sysparam.get_detail_by_name(self.model.field_name)
     field_type = self.detail.get_parameter_type()
     if issubclass(field_type, Image):
         self._setup_image_slave()
     elif issubclass(field_type, Domain):
         self._setup_comboboxentry_slave()
     elif self.detail.editor == 'file-chooser':
         self._setup_entry_with_filechooser_button_slave()
     elif self.detail.editor == 'directory-chooser':
         self._setup_entry_with_filechooser_button_slave(dir_only=True)
     elif issubclass(field_type, bool):
         self._setup_radio_slave()
     elif issubclass(field_type, (int, float, Decimal)):
         if self.detail.options:
             self._setup_options_combo_slave()
         elif self.detail.range:
             self._setup_spin_entry_slave()
         else:
             self._setup_entry_slave()
     elif issubclass(field_type, basestring):
         if self.detail.multiline:
             self._setup_text_view_slave()
         elif self.detail.combo_data:
             self._setup_comboboxentry_slave(data=self.detail.combo_data())
         else:
             self._setup_entry_slave()
     else:
         raise TypeError("ParameterData for `%s' has an invalid "
                         "type: %r" % (self.model.field_name,
                                       field_type))
Example #4
0
    def _setup_comboboxentry_slave(self, data=None):
        widget = ProxyComboEntry()
        widget.props.sensitive = self.sensitive
        widget.model_attribute = "field_value"
        widget.data_type = unicode

        detail = sysparam.get_detail_by_name(self.model.field_name)
        is_mandatory = not detail.allow_none
        self._block_none_value = is_mandatory
        widget.set_property('mandatory', is_mandatory)

        if not data:
            field_type = detail.get_parameter_type()
            # FIXME: DEFAULT_PAYMENT_METHOD needs to filter information from
            # domain because it cannot be any non-creatable method.
            # Find a way to implement this in a generic on ParameterDetails
            if self.model.field_name == "DEFAULT_PAYMENT_METHOD":
                result = PaymentMethod.get_creatable_methods(
                    self.store, Payment.TYPE_IN, False)
            else:
                result = self.store.find(field_type)
            data = [(res.get_description(), unicode(res.id)) for res in result]
        widget.prefill(data)
        self.proxy.add_widget("field_value", widget)
        self.container.add(widget)
        widget.show()
        widget.connect('validation-changed',
                       self._on_entry__validation_changed)
Example #5
0
    def test_confirm(self):
        parameter_data = self.create_parameter_data()
        detail = sysparam.get_detail_by_name(parameter_data.field_name)
        editor = SystemParameterEditor(self.store, detail)

        parameter_data.field_value = None
        self.assertFalse(editor.validate_confirm())
        self.assertFalse(editor.confirm())

        editor.model.field_value = self.create_account().id
        self.assertTrue(editor.confirm())
        self.check_editor(editor, 'editor-systemparameter-confirm',
                          [editor.retval])
Example #6
0
    def __init__(self, store, model):
        if not model:
            raise ValueError("This editor can't be called without a model")
        # By default, if the user sets a value to None (e.g. selecting nothing
        # on a comboentry) we block it's update. Change this to False if the
        # param itself can accept None.
        self._block_none_value = True
        self.sensitive = True
        if model.field_name in ["DEMO_MODE", "LOCAL_BRANCH", "SYNCHRONIZED_MODE"]:
            self.sensitive = False

        self._parameter_details = sysparam.get_detail_by_name(model.field_name)
        BaseEditor.__init__(self, store, model)
        self._setup_widgets()
Example #7
0
 def test_image(self):
     detail = sysparam.get_detail_by_name(u'CUSTOM_LOGO_FOR_REPORTS')
     editor = SystemParameterEditor(self.store, detail)
     self.check_editor(editor, 'editor-systemparameter-image')
Example #8
0
 def test_text_view_entry(self):
     detail = sysparam.get_detail_by_name(u'BOOKLET_INSTRUCTIONS')
     editor = SystemParameterEditor(self.store, detail)
     self.check_editor(editor, 'editor-systemparameter-text-view-entry')
Example #9
0
 def test_spin_entry(self):
     detail = sysparam.get_detail_by_name(u'MAX_SEARCH_RESULTS')
     editor = SystemParameterEditor(self.store, detail)
     editor._entry.update(456)
     self.check_editor(editor, 'editor-systemparameter-spin-entry')
Example #10
0
 def test_combo_entry(self):
     detail = sysparam.get_detail_by_name(u'COUNTRY_SUGGESTED')
     editor = SystemParameterEditor(self.store, detail)
     self.check_editor(editor, 'editor-systemparameter-combo-entry')
    def test_get_parameter_data_domain(self):
        search = ParameterSearch(self.store)

        parameter = sysparam.get_detail_by_name(u'TILLS_ACCOUNT')
        value = search._get_parameter_value(parameter)
        self.assertEqual(value, 'Tills')
Example #12
0
    def test_get_parameter_data_unicode(self):
        search = ParameterSearch(self.store)

        parameter = sysparam.get_detail_by_name(u'STATE_SUGGESTED')
        value = search._get_parameter_value(parameter)
        self.assertEquals(value, u'SP')
Example #13
0
    def test_get_parameter_data_bool(self):
        search = ParameterSearch(self.store)

        parameter = sysparam.get_detail_by_name(u'DISABLE_COOKIES')
        value = search._get_parameter_value(parameter)
        self.assertEquals(value, 'No')
Example #14
0
 def test_create(self):
     parameter_data = self.create_parameter_data()
     detail = sysparam.get_detail_by_name(parameter_data.field_name)
     editor = SystemParameterEditor(self.store, detail)
     self.check_editor(editor, 'editor-systemparameter-show')
    def test_get_parameter_data_unicode(self):
        search = ParameterSearch(self.store)

        parameter = sysparam.get_detail_by_name(u'STATE_SUGGESTED')
        value = search._get_parameter_value(parameter)
        self.assertEqual(value, u'SP')
    def test_get_parameter_data_else(self):
        search = ParameterSearch(self.store)

        parameter = sysparam.get_detail_by_name(u'DEFAULT_AREA_CODE')
        value = search._get_parameter_value(parameter)
        self.assertEqual(value, u'16')
Example #17
0
 def get_short_description(self):
     from stoqlib.lib.parameters import sysparam
     return sysparam.get_detail_by_name(self.field_name).short_desc
Example #18
0
 def get_group(self):
     from stoqlib.lib.parameters import sysparam
     return sysparam.get_detail_by_name(self.field_name).group
Example #19
0
 def test_radio(self):
     detail = sysparam.get_detail_by_name(u'DISABLE_COOKIES')
     editor = SystemParameterEditor(self.store, detail)
     self.check_editor(editor, 'editor-systemparameter-radio')
Example #20
0
    def test_get_parameter_data_domain(self):
        search = ParameterSearch(self.store)

        parameter = sysparam.get_detail_by_name(u'TILLS_ACCOUNT')
        value = search._get_parameter_value(parameter)
        self.assertEquals(value, 'Tills')
Example #21
0
 def test_options_combo(self):
     detail = sysparam.get_detail_by_name(u'SCALE_BARCODE_FORMAT')
     editor = SystemParameterEditor(self.store, detail)
     self.check_editor(editor, 'editor-systemparameter-options-combo')
    def test_get_parameter_data_country_suggested(self):
        search = ParameterSearch(self.store)

        parameter = sysparam.get_detail_by_name(u'COUNTRY_SUGGESTED')
        value = search._get_parameter_value(parameter)
        self.assertEqual(value, u'Brazil')
Example #23
0
    def test_get_parameter_data_country_suggested(self):
        search = ParameterSearch(self.store)

        parameter = sysparam.get_detail_by_name(u'COUNTRY_SUGGESTED')
        value = search._get_parameter_value(parameter)
        self.assertEquals(value, u'Brazil')
Example #24
0
 def test_entry_insensitive(self):
     with self.sysparam(USER_HASH=u'45b27f4258024de58d2308753fcfff21'):
         detail = sysparam.get_detail_by_name(u'USER_HASH')
         editor = SystemParameterEditor(self.store, detail)
     self.check_editor(editor, 'editor-systemparameter-entry-insensitive')
Example #25
0
    def test_get_parameter_data_else(self):
        search = ParameterSearch(self.store)

        parameter = sysparam.get_detail_by_name(u'DEFAULT_AREA_CODE')
        value = search._get_parameter_value(parameter)
        self.assertEquals(value, u'16')
    def test_get_parameter_data_options(self):
        search = ParameterSearch(self.store)

        parameter = sysparam.get_detail_by_name(u'SCALE_BARCODE_FORMAT')
        value = search._get_parameter_value(parameter)
        self.assertEqual(value, u'4 Digits Code with Price')
Example #27
0
 def test_entry(self):
     detail = sysparam.get_detail_by_name(u'CITY_SUGGESTED')
     editor = SystemParameterEditor(self.store, detail)
     editor._entry.update('any city')
     self.check_editor(editor, 'editor-systemparameter-entry')
    def test_get_parameter_data_bool(self):
        search = ParameterSearch(self.store)

        parameter = sysparam.get_detail_by_name(u'DISABLE_COOKIES')
        value = search._get_parameter_value(parameter)
        self.assertEqual(value, 'No')