Example #1
0
    def get_show_attributes(type_id):
        if not isinstance(type_id, six.integer_types):
            type_id = CITypeCache.get(type_id).id

        attrs = db.session.query(
            PreferenceShowAttributes, CITypeAttribute.order).join(
                CITypeAttribute,
                CITypeAttribute.attr_id == PreferenceShowAttributes.attr_id
            ).filter(PreferenceShowAttributes.uid == g.user.uid).filter(
                PreferenceShowAttributes.type_id == type_id).filter(
                    PreferenceShowAttributes.deleted.is_(False)).filter(
                        CITypeAttribute.deleted.is_(False)).filter(
                            CITypeAttribute.type_id == type_id).order_by(
                                CITypeAttribute.order).all()
        result = [i.PreferenceShowAttributes.attr.to_dict() for i in attrs]
        is_subscribed = True
        if not attrs:
            attrs = db.session.query(CITypeAttribute).filter(
                CITypeAttribute.type_id == type_id).filter(
                    CITypeAttribute.deleted.is_(False)).filter(
                        CITypeAttribute.default_show.is_(True)).order_by(
                            CITypeAttribute.order)
            result = [i.attr.to_dict() for i in attrs]
            is_subscribed = False

        for i in result:
            if i["is_choice"]:
                i.update(
                    dict(choice_value=AttributeManager.get_choice_values(
                        i["id"], i["value_type"])))

        return is_subscribed, result
Example #2
0
 def __check_is_choice(attr, value_type, value):
     choice_values = AttributeManager.get_choice_values(attr.id, value_type)
     if value not in choice_values:
         return abort(400, "{0} does not existed in choice values".format(value))