Ejemplo n.º 1
0
    def set_object(self, store, param_name, value, is_editable=True):
        """
        Updates a database object.

        :param store: a database store
        :param param_name: the parameter name
        :param value: the value to set
        :type value: a domain object
        :param is_editable: if the parameter can be modified interactivly
        """
        detail = self._details.get(param_name)
        if detail is None:
            raise ValueError("%s is not a valid parameter" % (param_name, ))

        field_type = detail.get_parameter_type()
        if (value is not None and not isinstance(value, field_type)):
            raise TypeError(
                "%s must be a %s instance, not %r" %
                (param_name, field_type.__name__, type(value).__name__))

        param = ParameterData.get_or_create(store,
                                            field_name=unicode(param_name))
        if value is not None:
            value = unicode(value.id)
        param.field_value = value
        param.is_editable = is_editable
        self._values[param_name] = value
Ejemplo n.º 2
0
    def set_object(self, store, param_name, value):
        """
        Updates a database object.

        :param store: a database store
        :param param_name: the parameter name
        :param value: the value to set
        :type value: a domain object
        """
        detail = self._details.get(param_name)
        if detail is None:
            raise ValueError("%s is not a valid parameter" % (param_name, ))

        field_type = detail.get_parameter_type()
        if (value is not None and
                not isinstance(value, field_type)):
            raise TypeError("%s must be a %s instance, not %r" % (
                param_name, field_type.__name__,
                type(value).__name__))

        param = ParameterData.get_or_create(store, field_name=unicode(param_name))
        if value is not None:
            value = unicode(value.id)
        param.field_value = value
        param.is_editable = detail.is_editable
        self._values[param_name] = value
Ejemplo n.º 3
0
    def _set_param_internal(self, store, param_name, value, expected_type):
        self._verify_detail(param_name, expected_type)
        param = ParameterData.get_or_create(store, field_name=unicode(param_name))

        if value is not None and not type(value) is expected_type:
            raise TypeError("%s must be a %s, not %r" % (
                param_name, expected_type, type(value).__name__))

        # bool are represented as 1/0
        if expected_type is bool:
            value = int(value)

        param.field_value = unicode(value)
        self.set_value_generic(param_name, param.field_value)
Ejemplo n.º 4
0
    def _set_param_internal(self, store, param_name, value, expected_type):
        self._verify_detail(param_name, expected_type)
        param = ParameterData.get_or_create(store, field_name=unicode(param_name))

        if value is not None and not type(value) is expected_type:
            raise TypeError("%s must be a %s, not %r" % (
                param_name, expected_type, type(value).__name__))

        # bool are represented as 1/0
        if expected_type is bool:
            value = int(value)

        param.field_value = unicode(value)
        self.set_value_generic(param_name, param.field_value)