示例#1
0
    def get_editor_value(self, language_code):
        setting = None
        try:
            setting = self.get_setting(language_code)
        except SettingNotSet:
            if language_code == django_settings.LANGUAGE_CODE:
                try:
                    setting = find_setting(self.group.key, self.key)
                except SettingNotSet:
                    pass

        if setting:
            raw_value = setting.value
        else:
            raw_value = self.get_default_editor_value(language_code)

        return self.to_python(raw_value)
示例#2
0
文件: values.py 项目: allieus/askbot3
    def get_editor_value(self, language_code):
        setting = None
        try:
            setting = self.get_setting(language_code)
        except SettingNotSet:
            if language_code == django_settings.LANGUAGE_CODE:
                try:
                    setting = find_setting(self.group.key, self.key)
                except SettingNotSet:
                    pass

        if setting:
            raw_value = setting.value
        else:
            raw_value = self.get_default_editor_value(language_code)

        return self.to_python(raw_value)
示例#3
0
文件: values.py 项目: allieus/askbot3
    def update(self, value, language_code=None):
        use_db, overrides = get_overrides()

        if use_db:
            current_value = self.value

            new_value = self.to_python(value)
            if current_value != new_value:
                if self.update_callback:
                    new_value = self.update_callback(current_value, new_value)

                db_value = self.get_db_prep_save(new_value)

                try:
                    settings_ = self.get_setting(language_code)
                    settings_.value = db_value
                except SettingNotSet:
                    settings_ = self.make_setting(db_value, language_code=language_code)

                if self.use_default and self.default == new_value:
                    if settings_.id:
                        logger.info("Deleted setting %s.%s", self.group.key, self.key)
                        settings_.delete()
                else:
                    logger.info("Updated setting(id=%s) %s.%s = %s", settings_.id, self.group.key, self.key, value)
                    settings_.save()

                if self.localized:
                    try:
                        unlocalized_setting = find_setting(self.group.key, self.key)
                        unlocalized_setting.delete()
                    except SettingNotSet:
                        pass

                configuration_value_changed.send(
                    None, old_value=current_value, new_value=new_value, setting=self, language_code=language_code
                )

                if self.clear_cache:
                    cache.clear()

                return True
        else:
            logger.debug("not updating setting %s.%s - livesettings db is disabled", self.group.key, self.key)

        return False
示例#4
0
    def update(self, value, language_code=None):
        use_db, overrides = get_overrides()

        if use_db:
            current_value = self.value

            new_value = self.to_python(value)
            if current_value != new_value:
                if self.update_callback:
                    new_value = self.update_callback(current_value, new_value)

                db_value = self.get_db_prep_save(new_value)

                try:
                    settings_ = self.get_setting(language_code)
                    settings_.value = db_value
                except SettingNotSet:
                    settings_ = self.make_setting(db_value, language_code=language_code)

                if self.use_default and self.default == new_value:
                    if settings_.id:
                        logger.info("Deleted setting %s.%s", self.group.key, self.key)
                        settings_.delete()
                else:
                    logger.info("Updated setting(id=%s) %s.%s = %s", settings_.id, self.group.key, self.key, value)
                    settings_.save()

                if self.localized:
                    try:
                        unlocalized_setting = find_setting(self.group.key, self.key)
                        unlocalized_setting.delete()
                    except SettingNotSet:
                        pass

                configuration_value_changed.send(None, old_value=current_value, new_value=new_value,
                                                 setting=self, language_code=language_code)

                if self.clear_cache:
                    cache.clear()

                return True
        else:
            logger.debug('not updating setting %s.%s - livesettings db is disabled', self.group.key, self.key)

        return False
示例#5
0
 def _setting(self):
     return find_setting(self.group.key, self.key)
 def _setting(self):
     key = self.key
     if self.localized:
         key += '_' + format_setting_name(get_language())
     return find_setting(self.group.key, key)
示例#7
0
    def _value(self):
        use_db, overrides = get_overrides()

        lang = get_language()

        key = self.key
        if self.localized:
            key += '_' + format_setting_name(lang)

        if not use_db:
            try:
                val = overrides[self.group.key][key]
            except KeyError:
                if self.use_default:
                    val = self.default
                else:
                    raise SettingNotSet('%s.%s is not in your LIVESETTINGS_OPTIONS' % (self.group.key, key))
        else:
            try:
                val = self.setting.value
            except SettingNotSet:
                if self.localized and lang == django_settings.LANGUAGE_CODE:
                    try:
                        unlocalized_setting = find_setting(self.group.key, self.key)
                        return unlocalized_setting.value
                    except SettingNotSet:
                        pass

                if self.use_default:
                    val = self.default
                    if overrides:
                        # maybe override the default
                        grp = overrides.get(self.group.key, {})
                        if key in grp:
                            val = grp[self.key]
                else:
                    val = NOTSET

            except AttributeError as ae:
                logger.error("Attribute error: %s", ae)
                logger.error("%s: Could not get _value of %s", key, self.setting)
                raise(ae)

            except Exception as e:
                global _WARN
                logger.error(e)
                if str(e).find("configuration_setting") > -1:
                    if 'configuration_setting' not in _WARN:
                        logger.warn('Error loading setting %s.%s from table, OK if you are in syncdb', self.group.key, key)
                        _WARN['configuration_setting'] = True

                    if self.use_default:
                        val = self.default
                    else:
                        raise ImproperlyConfigured("All settings used in startup must have defaults, %s.%s does not",
                                                   self.group.key, key)
                else:
                    traceback.print_exc()
                    logger.warn("Problem finding settings %s.%s, %s", self.group.key, key, e)
                    raise SettingNotSet("Startup error, couldn't load %s.%s" % (self.group.key, key))
        return val
示例#8
0
 def get_setting(self, language_code=None):
     key = self.key
     if self.localized and language_code:
         key += '_' + format_setting_name(language_code)
     return find_setting(self.group.key, key)
示例#9
0
 def _setting(self):
     return find_setting(self.group.key, self.key)
示例#10
0
文件: values.py 项目: allieus/askbot3
    def _value(self):
        use_db, overrides = get_overrides()

        lang = get_language()

        key = self.key
        if self.localized:
            key += "_" + format_setting_name(lang)

        if not use_db:
            try:
                val = overrides[self.group.key][key]
            except KeyError:
                if self.use_default:
                    val = self.default
                else:
                    raise SettingNotSet("%s.%s is not in your LIVESETTINGS_OPTIONS" % (self.group.key, key))
        else:
            try:
                val = self.setting.value
            except SettingNotSet:
                if self.localized and lang == django_settings.LANGUAGE_CODE:
                    try:
                        unlocalized_setting = find_setting(self.group.key, self.key)
                        return unlocalized_setting.value
                    except SettingNotSet:
                        pass

                if self.use_default:
                    val = self.default
                    if overrides:
                        # maybe override the default
                        grp = overrides.get(self.group.key, {})
                        if key in grp:
                            val = grp[self.key]
                else:
                    val = NOTSET

            except AttributeError as ae:
                logger.error("Attribute error: %s", ae)
                logger.error("%s: Could not get _value of %s", key, self.setting)
                raise (ae)

            except Exception as e:
                global _WARN
                logger.error(e)
                if str(e).find("configuration_setting") > -1:
                    if "configuration_setting" not in _WARN:
                        logger.warn(
                            "Error loading setting %s.%s from table, OK if you are in syncdb", self.group.key, key
                        )
                        _WARN["configuration_setting"] = True

                    if self.use_default:
                        val = self.default
                    else:
                        raise ImproperlyConfigured(
                            "All settings used in startup must have defaults, %s.%s does not", self.group.key, key
                        )
                else:
                    traceback.print_exc()
                    logger.warn("Problem finding settings %s.%s, %s", self.group.key, key, e)
                    raise SettingNotSet("Startup error, couldn't load %s.%s" % (self.group.key, key))
        return val
示例#11
0
文件: values.py 项目: allieus/askbot3
 def get_setting(self, language_code=None):
     key = self.key
     if self.localized and language_code:
         key += "_" + format_setting_name(language_code)
     return find_setting(self.group.key, key)
示例#12
0
文件: values.py 项目: allieus/askbot3
 def _setting(self):
     key = self.key
     if self.localized:
         key += "_" + format_setting_name(get_language())
     return find_setting(self.group.key, key)