Example #1
0
 def get_detail(cls, **kwargs):
     instance = cls.get_object(**kwargs)
     if isinstance(instance, Exception):
         return instance
     detail = model_to_dict(instance)
     detail['dishes_ids'] = json.loads(detail['dishes_ids'])
     return detail
Example #2
0
    def perfect_detail(self):
        is_recommend = self.is_recommend
        reply_message = ''
        if is_recommend:
            reply = ReplyComment.get_object(comment_id=self.pk)
            reply_message = reply.message

        source_ins = self.get_source_object(source_type=self.source_type,
                                            source_id=self.source_id)
        if isinstance(source_ins, Exception):
            return source_ins
        else:
            source_title = source_ins.title

        user = User.get_object(pk=self.user_id)
        user_nickname = ''
        if not isinstance(user, Exception):
            user_nickname = user.nickname

        detail = model_to_dict(self)
        detail['is_recommend'] = is_recommend
        detail['reply_message'] = reply_message
        detail['source_title'] = source_title
        detail['user_nickname'] = user_nickname
        detail['user_head_picture'] = user.head_picture
        return detail
Example #3
0
 def perfect_data(self):
     detail = model_to_dict(self)
     try:
         detail['access_token_data'] = json.loads(
             detail['access_token_data'])
     except:
         pass
     return detail
Example #4
0
 def perfect_detail(self):
     report_detail = Report.get_detail(pk=self.report_id)
     if isinstance(report_detail, Exception):
         return report_detail
     detail = model_to_dict(self)
     for pop_key in ['created', 'updated']:
         report_detail.pop(pop_key)
     detail.update(**report_detail)
     return detail
Example #5
0
 def get_detail(cls, **kwargs):
     instance = cls.get_object(**kwargs)
     if isinstance(instance, Exception):
         return instance
     detail = model_to_dict(instance)
     detail['dishes_ids'] = json.loads(detail['dishes_ids'])
     detail['is_master'] = True
     detail['consumer_id'] = None
     detail['notes'] = None
     return detail
Example #6
0
    def get_detail(cls, **kwargs):
        instance = cls.get_object(**kwargs)
        if isinstance(instance, Exception):
            return instance

        dime_instance = Dimension.get_object(pk=instance.dimension_id)
        if isinstance(dime_instance, Exception):
            return dime_instance
        detail = model_to_dict(instance)
        detail['dimension_name'] = dime_instance.name
        return detail
Example #7
0
    def make_instances_to_dict(cls, orders_list, set_payment_mode=None):
        if isinstance(orders_list, cls):
            orders_list = list(orders_list)
        detail_list = []
        for orders in orders_list:
            item_dict = model_to_dict(orders)
            item_dict['dishes_ids'] = json.loads(item_dict['dishes_ids'])
            item_dict['is_master'] = False
            if set_payment_mode:
                item_dict['payment_mode'] = set_payment_mode

            detail_list.append(item_dict)
        return detail_list
Example #8
0
 def make_instances_to_dict(cls, orders_list):
     if isinstance(orders_list, cls):
         orders_list = [orders_list]
     detail_list = []
     for orders in orders_list:
         item_dict = model_to_dict(orders)
         item_dict['dishes_ids'] = json.loads(item_dict['dishes_ids'])
         item_dict['is_master'] = True
         item_dict['consumer_id'] = None
         item_dict['notes'] = None
         if orders.payment_status == ORDERS_PAYMENT_STATUS['paid']:
             item_dict['payment_status'] = ORDERS_PAYMENT_STATUS['paid']
         detail_list.append(item_dict)
     return detail_list
Example #9
0
    def make_orders_by_dishes_ids(cls, request, dishes_ids, created=None):
        meal_ids = []
        total_amount = '0'
        member_discount = '0'
        other_discount = '0'
        for item in dishes_ids:
            object_data = cls.get_dishes_by_id(item['dishes_id'])
            if isinstance(object_data, Exception):
                return object_data

            object_dict = model_to_dict(object_data)
            object_dict['count'] = item['count']
            meal_ids.append(object_dict)
            total_amount = str(
                Decimal(total_amount) +
                Decimal(object_data.price) * item['count'])

        food_court_obj = FoodCourt.get_object(pk=request.user.food_court_id)
        if isinstance(food_court_obj, Exception):
            return food_court_obj

        orders_data = {
            'user_id':
            request.user.id,
            'orders_id':
            OrdersIdGenerator.get_orders_id(),
            'food_court_id':
            request.user.food_court_id,
            'food_court_name':
            food_court_obj.name,
            'business_name':
            request.user.business_name,
            'dishes_ids':
            json.dumps(meal_ids, ensure_ascii=False, cls=DatetimeEncode),
            'total_amount':
            total_amount,
            'member_discount':
            member_discount,
            'other_discount':
            other_discount,
            'payable':
            str(
                Decimal(total_amount) - Decimal(member_discount) -
                Decimal(other_discount))
        }
        if created:
            orders_data['created'] = created
        return orders_data
Example #10
0
    def get_detail(cls, **kwargs):
        instance = cls.get_object(**kwargs)
        if isinstance(instance, Exception):
            return instance

        tag_ins = Tag.get_object(pk=instance.tag_id)
        if isinstance(tag_ins, Exception):
            return tag_ins
        attr_ins = Attribute.get_object(pk=instance.attribute_id)
        if isinstance(attr_ins, Exception):
            return attr_ins

        detail = model_to_dict(instance)
        detail['tag_name'] = tag_ins.name
        detail['attribute_name'] = attr_ins.name
        return detail
Example #11
0
    def perfect_detail(self):
        detail = model_to_dict(self)
        if hasattr(self, 'AdminMeta'):
            if hasattr(self.AdminMeta, 'json_fields'):
                for field in self.AdminMeta.json_fields:
                    if field == 'tags':
                        tag_ids = json.loads(detail[field])
                        detail[field] = self.get_perfect_tags(tag_ids)
                    else:
                        detail[field] = json.loads(detail[field])

        media = MediaCache().get_media_by_id(self.media_id)
        if isinstance(media, Exception):
            return media
        detail['media_picture'] = media.picture
        return detail
Example #12
0
    def filter_details(cls, **kwargs):
        instances = cls.filter_objects(**kwargs)
        if isinstance(instances, Exception):
            return instances

        details = []
        dime_dict = {}
        for ins in instances:
            dime_ins = dime_dict.get(ins.dimension_id)
            if not dime_ins:
                dime_ins = Dimension.get_object(pk=ins.dimension_id)
                if isinstance(dime_ins, Exception):
                    continue
                dime_dict[ins.dimension_id] = dime_ins

            item_detail = model_to_dict(ins)
            item_detail['dimension_name'] = dime_ins.name
            details.append(item_detail)
        return details
Example #13
0
 def filter_perfect_objects(cls, **kwargs):
     instances = cls.filter_objects(**kwargs)
     if isinstance(instances, Exception):
         return instances
     details = []
     coupons_dict = {}
     for ins in instances:
         coupons = coupons_dict.get(ins.coupons_id)
         if not coupons:
             coupons = CouponsConfig.get_object(pk=ins.coupons_id)
             coupons_dict[ins.coupons_id] = coupons
         detail = model_to_dict(ins)
         update_dict = {
             'coupons_name': coupons.name,
             'coupons_type': coupons.type,
         }
         detail.update(update_dict)
         details.append(detail)
     return details
Example #14
0
 def perfect_detail(self):
     is_recommend = self.is_recommend
     reply_message = ''
     created_for_admin = None
     if is_recommend:
         reply = ReplyComment.get_object(comment_id=self.pk)
         reply_message = reply.message
         created_for_admin = reply.updated
     source_ins = self.get_source_object(source_type=self.source_type,
                                         source_id=self.source_id)
     if isinstance(source_ins, Exception):
         source_title = ''
     else:
         source_title = source_ins.title
     item_dict = model_to_dict(self)
     item_dict['is_recommend'] = is_recommend
     item_dict['reply_message'] = reply_message
     item_dict['source_title'] = source_title
     item_dict['created_for_user'] = item_dict['created']
     item_dict['created_for_admin'] = created_for_admin
     return item_dict
Example #15
0
    def filter_details(cls, **kwargs):
        instances = cls.filter_objects(**kwargs)
        if isinstance(instances, Exception):
            return instances

        tag_ins_dict = {}
        attr_ins_dict = {}
        details = []
        for ins in instances:
            tag_ins = tag_ins_dict.get(ins.tag_id)
            if not tag_ins:
                tag_ins = Tag.get_object(pk=ins.tag_id)
                if isinstance(tag_ins, Exception):
                    continue
            attr_ins = attr_ins_dict.get(ins.attribute_id)
            if not attr_ins:
                attr_ins = Attribute.get_object(pk=ins.attribute_id)
                if isinstance(attr_ins, Exception):
                    continue
            item_detail = model_to_dict(ins)
            item_detail['tag_name'] = tag_ins.name
            item_detail['attribute_name'] = attr_ins.name
            details.append(item_detail)
        return details