Beispiel #1
0
def logs(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponseRedirect("/admin/max_stock/login/")
    keywords = request.GET.get('keywords', '').replace('amp;', '')
    res = StockLogs.objects.all().order_by('-created')
    if keywords:
        res = res.filter(
            Q(fun__contains=keywords) | Q(user__username__contains=keywords)
            | Q(description__contains=keywords))
    data = {
        'data': res,
        'title': "Logs",
        'user': user,
    }
    return render(request, "Stocks/users_sku/logs.html", data)
Beispiel #2
0
def edit_children(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponse(json.dumps({'code': 66, 'msg': u'login error!'}), content_type='application/json')
    if request.method == 'POST':
        child_employee = request.POST.get('child_employee', '')
        child_obj = Employee.objects.filter(parent_user=user.user_id)
        if child_obj:
            child_obj.update(parent_user=0)
        if child_employee:
            child_employees = Employee.objects.filter(id__in=eval(child_employee))
            if child_employees:
                child_employees.update(parent_user=user.user_id)

        return HttpResponse(json.dumps({'code': 1, 'msg': u'Successfully!'}),
                                content_type='application/json')
Beispiel #3
0
def get_role_by_user(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponse(json.dumps({'code': 66}), content_type='application/json')
    if request.method == 'POST':
        user_id = request.POST.get('user_id', '')
        user_obj = User.objects.filter(id=user_id)
        if not user_obj:
            return HttpResponse(json.dumps({'code': 0, 'msg': 'User is not exits!'}),
                                content_type='application/json')
        try:
            return HttpResponse(json.dumps({'code': 1, 'data': {'role_code': user_obj[0].userprofile.stocks_role}}),
                                    content_type='application/json')
        except:
            return HttpResponse(json.dumps({'code': 0, 'msg': 'User/role is not exits!'}),
                                content_type='application/json')
Beispiel #4
0
def update_menus(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponse(json.dumps({'code': 66}),
                            content_type='application/json')
    menus0 = update_res.MENUS0
    menus = update_res.MENUS
    roles = update_res.ROLES
    querysetlist0 = []
    querysetlist = []
    Menus.objects.all().delete()
    for val in menus0:
        menu = Menus.objects.filter(name=val['name'], elem_id=val['elem_id'])
        if not menu:
            querysetlist0.append(
                Menus(name=val['name'], elem_id=val['elem_id'],
                      url=val['url']))
    if querysetlist0:
        Menus.objects.bulk_create(querysetlist0)
    for val in menus:
        menu = Menus.objects.filter(name=val['name'], elem_id=val['elem_id'])
        parent = Menus.objects.filter(name=val['parent'])
        if not menu:
            querysetlist.append(
                Menus(name=val['name'],
                      elem_id=val['elem_id'],
                      url=val['url'],
                      parent_id=parent[0].id))
    if querysetlist:
        Menus.objects.bulk_create(querysetlist)
    for val in roles:
        role = Roles.objects.filter(code=val['code'])
        if not role:
            role_obj = Roles()
            role_obj.id
            role_obj.name = val['name']
            role_obj.code = val['code']
            role_obj.save()
            menu_obj = Menus.objects.filter(name__in=val['menus'])
            if menu_obj:
                for menu in menu_obj:
                    menu.roles.add(role_obj)
    return HttpResponse(json.dumps({
        'code': 1,
        'msg': 'Work is done!'
    }),
                        content_type='application/json')
Beispiel #5
0
    def question_answer(self):
        user = App.get_user_info(self)
        if not user:
            return HttpResponse(json.dumps({
                'code': 0,
                'msg': '用户未登录'
            }),
                                content_type='application/json')

        asin = self.GET.get('asin', '')
        listing_max = Listings.objects.filter(asin=asin).aggregate(
            Max('created'))
        if not listing_max or not listing_max['created__max']:
            listing_max = Listings.objects.aggregate(Max('created'))
        start_time = datetime.datetime.now().strftime("%Y-%m-1")
        end_time = listing_max['created__max'].strftime("%Y-%m-%d")
        if int(datetime.datetime.now().strftime("%d")) <= 5:
            mid_time = datetime.datetime.now() - relativedelta(months=+1)
            mid_days = calendar.monthrange(mid_time.year, mid_time.month)
            start_time = mid_time.strftime("%Y-%m-1")
            end_time = mid_time.strftime("%Y-%m-" + str(mid_days[1]))
        listing = Listings.objects.filter(asin=asin).filter(
            created__gte=start_time).filter(
                created__lte=end_time).order_by('-created')
        if not listing:
            item = Listings.objects.filter(asin=asin).filter(
                created__icontains=listing_max['created__max'].strftime(
                    "%Y-%m-%d"))[0]
        else:
            item = listing[0]
        qa_max = Questions.objects.filter(asin=asin).aggregate(Max('created'))
        if not qa_max or not qa_max['created__max']:
            qa_max = Questions.objects.aggregate(Max('created'))
        question_count = Questions.objects.filter(
            asin=asin,
            created__icontains=qa_max['created__max'].strftime("%Y-%m-%d"))
        answer_count = item.answered
        if question_count and question_count[0].count:
            qa_count = question_count[0].count
        else:
            qa_count = question_count.count()
        question_answer = str(answer_count) + '/' + str(qa_count)
        return HttpResponse(json.dumps({
            'code': 1,
            'question_answer': question_answer
        }),
                            content_type='application/json')
Beispiel #6
0
    def user_detail(self):
        user = App.get_user_info(self)
        if not user:
            return HttpResponseRedirect("/admin/maxlead_site/login/")

        id = self.GET.get('id')
        member_group = list(UserProfile.objects.filter(role=1,state=1))

        if not id:
            user_info = user
            return render(self, 'user/userinfo.html', {'user': user,'avator': user.user.username[0],'user_info': user_info,'member_groups':member_group,})

        if not user.role == 2:
            return HttpResponseRedirect("/admin/maxlead_site/index/")

        user_info = UserProfile.objects.get(id=id)
        return render(self, 'user/userinfo.html', {'user': user,'avator': user.user.username[0],'user_info': user_info,'member_groups':member_group,})
Beispiel #7
0
def check_order_import(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponse(json.dumps({'code': 66, 'msg': u'login error!'}), content_type='application/json')

    if request.method == 'POST':
        myfile = request.FILES.get('myfile','')
        if not myfile:
            return HttpResponse(json.dumps({'code': 0, 'msg': u'File is empty!'}),content_type='application/json')
        file_path = os.path.join(settings.BASE_DIR, settings.DOWNLOAD_URL, 'excel_stocks', myfile.name)
        f = open(file_path, 'wb')
        for chunk in myfile.chunks():
            f.write(chunk)
        f.close()
        res = read_excel_file1(NoSendRes, file_path, 'no_send_res')
        os.remove(file_path)
        return HttpResponse(json.dumps(res), content_type='application/json')
Beispiel #8
0
    def export_dash_reviews(self):
        user = App.get_user_info(self)
        if not user:
            return HttpResponseRedirect("/admin/maxlead_site/login/")

        revBgn = self.GET.get('revBgn', '')
        revEnd = self.GET.get('revEnd', '')
        viewRange = self.GET.get('viewRange', '')

        asins = Dashboard._get_asins(self, user, user_id=viewRange)
        review_max = Reviews.objects.filter(asin__in=asins).aggregate(
            Max('created'))
        if review_max and review_max['created__max']:
            reviews = Reviews.objects.filter(
                created__icontains=review_max['created__max'],
                score__lte=3,
                asin__in=asins).order_by('-review_date')
            if revBgn:
                reviews = reviews.filter(review_date__gte=revBgn)
            if revEnd:
                reviews = reviews.filter(review_date__lte=revEnd)
            data = []
            for val in reviews:
                re = {
                    'title': val.title,
                    'variation': val.variation,
                    'asin': val.asin,
                    'name': val.name,
                    'score': val.score,
                    'is_vp': val.is_vp,
                    'review_date': val.review_date.strftime("%Y-%m-%d"),
                    'content': val.content,
                    'review_link': val.review_link,
                    'created': val.created.strftime("%Y-%m-%d"),
                }
                data.append(re)

            fields = [
                'Title', 'Variation', 'Asin', 'Name', 'Score', 'VP',
                'Review Date', 'Content', 'Review Link', 'Created'
            ]
            data_fields = [
                'title', 'variation', 'asin', 'name', 'score', 'is_vp',
                'review_date', 'content', 'review_link', 'created'
            ]
            return get_excel_file(self, data, fields, data_fields)
Beispiel #9
0
def no_send_list(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponseRedirect("/admin/max_stock/login/")

    keywords = request.GET.get('search_words', '').replace('amp;', '')
    list = NoSendRes.objects.all()
    if keywords:
        list = list.filter(sku__contains=keywords)

    data = {
        'list': list,
        'user': user,
        'keywords': keywords,
        'title': 'Order List',
    }
    return render(request, "Stocks/send_email/no_send_list.html", data)
Beispiel #10
0
def contact_list(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponseRedirect("/admin/max_stock/login/")
    keywords = request.GET.get('search_words','').replace('amp;','')
    list = EmailContacts.objects.filter(expired_time__gt=datetime.now(),customer_num=user.menu_child_type).order_by('-id', '-expired_time')
    if not user.user.is_superuser:
        list = list.filter(user_id=user.user.id)
    if keywords:
        list = list.filter(Q(email_address__contains=keywords)|Q(email__contains=keywords))
    data = {
        'list': list,
        'user': user,
        'keywords': keywords,
        'title': 'Email Contacts',
    }
    return render(request, "Stocks/send_email/contact_list.html", data)
Beispiel #11
0
def orders_del(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponse(json.dumps({'code': 66, 'msg': u'login error!'}), content_type='application/json')
    if request.method == 'POST':
        data = request.POST.get('data','')
        is_email = request.POST.get('is_email','')
        customer_num = request.POST.get('customer_num','')
        if is_email == '1':
            obj = OldOrderItems.objects.filter(order_id__in=eval(data))
        else:
            obj = OrderItems.objects.filter(order_id__in=eval(data))
        obj = obj.filter(customer_num=int(customer_num))
        if obj:
            re = obj.delete()
            if not re:
                return HttpResponse(json.dumps({'code': 0, 'msg': 'Work is Faild!'}), content_type='application/json')
            return HttpResponse(json.dumps({'code': 1, 'msg': 'Work is Done!'}), content_type='application/json')
Beispiel #12
0
def _set_user_sku(request=None):
    sku_list = []
    file_name = 'userSkus_txt.txt'
    if request:
        user = App.get_user_info(request)
    user_skus = SkuUsers.objects.filter().all()
    if request and not user.user.is_superuser:
        user_skus = user_skus.filter(user=user.user)
        file_name = 'userSkus_txt_%s.txt' % user.user.username
    if user_skus:
        for val in user_skus:
            sku_list.append(val.sku)
        file_path = os.path.join(settings.BASE_DIR, settings.THRESHOLD_TXT, file_name)
        with open(file_path, "w+") as f:
            sku_list = str(sku_list)
            f.write(sku_list)
            f.close()
    return True
Beispiel #13
0
 def ajax_get_task_data(self):
     user = App.get_user_info(self)
     tasks = Task.objects.filter(is_new=1, file_path='',user_id=user.user_id)
     if not tasks:
         return HttpResponse(json.dumps({'code': 0, 'data': 1}), content_type='application/json')
     work_path = settings.SPIDER_URL
     os.chdir(work_path)
     os.system('scrapyd-deploy')
     for val in tasks:
         for aid in eval(val.asins):
             aid = aid.replace('\n', '')
             if val.type == 0:
                 cmd_str = 'curl http://localhost:6800/schedule.json -d project=maxlead_scrapy -d spider=review_spider -d asin=%s' % aid
             else:
                 cmd_str = 'curl http://localhost:6800/schedule.json -d project=maxlead_scrapy -d spider=qa_spider -d asin=%s' % aid
             os.system(cmd_str)
             os.chdir(settings.ROOT_PATH)
     return HttpResponse(json.dumps({'code': 1, 'data': 1}), content_type='application/json')
Beispiel #14
0
    def ajax_get_asins(self):
        user = App.get_user_info(self)
        if not user:
            return HttpResponse(json.dumps({
                'code': 1,
                'msg': u'用户未登录!'
            }),
                                content_type='application/json')
        ids = self.POST.get('ids')
        asins = UserAsins.objects.values(
            'aid', 'sku', 'ownership', 'keywords1', 'keywords2', 'keywords3',
            'cat1', 'cat2', 'cat3', 'review_watcher', 'listing_watcher',
            'is_use').filter(id__in=eval(ids)).all()
        aid_str = ''
        sku_str = ''
        data = ''
        for i, val in enumerate(asins, 1):
            if i == len(asins):
                aid_str += val['aid']
                sku_str += val['sku']
            else:
                aid_str += val['aid'] + '|'
                sku_str += val['sku'] + '|'
            if len(asins) == 1:
                data = {
                    'ownership': val['ownership'],
                    'keywords1': val['keywords1'],
                    'keywords2': val['keywords2'],
                    'keywords3': val['keywords3'],
                    'cat1': val['cat1'],
                    'cat2': val['cat2'],
                    'cat3': val['cat3'],
                    'review_watcher': val['review_watcher'],
                    'listing_watcher': val['listing_watcher'],
                    'is_use': val['is_use'],
                }

        return HttpResponse(json.dumps({
            'code': 1,
            'aid_str': aid_str,
            'sku_str': sku_str,
            'data': data
        }),
                            content_type='application/json')
Beispiel #15
0
    def ajax_radar(self):
        user = App.get_user_info(self)
        if not user:
            return HttpResponse(json.dumps({
                'code': 0,
                'msg': '用户未登录'
            }),
                                content_type='application/json')

        page = self.GET.get('page', 1)
        viewRange = self.GET.get('viewRange', '')
        offset = (int(page) - 1) * 6
        asins = Dashboard._get_asins(self,
                                     user,
                                     ownership='Others',
                                     user_id=viewRange)
        res = Dashboard._get_activity_radar(self, asins, param=self.GET)
        is_page = 1
        if len(res) < 6:
            is_page = 0
        data = []
        if res:
            res = res[offset:offset + 6]
            for val in res:
                re = {
                    'asin': val.asin,
                    'created': val.created,
                    'changed': val.changed,
                    'buy_box_res': val.buy_box_res
                }
                data.append(re)
            data = {'data': data, 'page': page, 'is_page': is_page}
            return HttpResponse(json.dumps({
                'code': 1,
                'data': data
            }),
                                content_type='application/json')
        else:
            data = {'data': [], 'page': page, 'is_page': is_page}
            return HttpResponse(json.dumps({
                'code': 1,
                'data': data
            }),
                                content_type='application/json')
def tmp_export(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponseRedirect("/admin/max_stock/login/")
    keywords = request.GET.get('keywords', '').replace('amp;', '')
    send_time = request.GET.get('send_time', '')
    order_status = request.GET.get('order_status', '')
    list = EmailTemplates.objects.filter(customer_num=user.menu_child_type)
    if not user.user.is_superuser:
        list = list.filter(user_id=user.user.id)
    if keywords:
        list = list.filter(
            Q(sku__contains=keywords) | Q(title__contains=keywords)
            | Q(content__contains=keywords))
    if send_time:
        list = list.filter(send_time=send_time)
    if order_status:
        list = list.filter(order_status=order_status)

    data = []
    if list:
        for val in list:
            re = {
                'sku': val.sku,
                'keywords': val.keywords,
                'title': val.title,
                'content': val.content,
                'order_status': val.order_status,
                'send_time': val.send_time,
                'created': ''
            }
            data.append(re)

        fields = [
            'SKU', 'Keywords', 'Title', 'Content', 'Order Status', 'Send Time',
            'Created'
        ]
        data_fields = [
            'sku', 'keywords', 'title', 'content', 'order_status', 'send_time',
            'created'
        ]
        return get_excel_file(request, data, fields, data_fields)
    else:
        return HttpResponse('没有数据~~')
Beispiel #17
0
    def delete_user(self):
        user = App.get_user_info(self)
        if not user:
            return HttpResponse(json.dumps({'code': 2, 'msg': u'没有登陆!'}), content_type='application/json')
        if not user.role == 2:
            return HttpResponse(json.dumps({'code': 0, 'msg': u'没有的权限!'}), content_type='application/json')

        del_id = eval(self.POST['ids'])
        res = UserProfile.objects.filter(id__in=del_id).exclude(id=user.id).update(state=0)
        if res:
            log_obj = StockLogs()
            log_obj.id
            log_obj.user_id = user.user_id
            log_obj.fun = self.path
            log_obj.description = 'User delete.'
            log_obj.save()
            return HttpResponse(json.dumps({'code': 1, 'msg': u'删除成功!'}), content_type='application/json')
        else:
            return HttpResponse(json.dumps({'code': 0, 'msg': u'删除失败!'}), content_type='application/json')
Beispiel #18
0
def no_send_list(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponseRedirect("/admin/max_stock/login/")

    keywords = request.GET.get('search_words', '').replace('amp;', '')
    list = NoSendRes.objects.filter(customer_num=user.menu_child_type)
    if not user.user.is_superuser:
        list = list.filter(user_id=user.user.id)
    if keywords:
        list = list.filter(Q(sku__contains=keywords)|Q(order_id__contains=keywords)|Q(status__contains=keywords))

    data = {
        'list': list,
        'user': user,
        'keywords': keywords,
        'title': 'Order List',
    }
    return render(request, "Stocks/send_email/no_send_list.html", data)
Beispiel #19
0
def index(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponseRedirect("/admin/max_stock/login/")
    user_id = request.GET.get('user_id', '')
    list = Menus.objects.all()
    user_list = User.objects.filter()
    index_user = user_list[0]
    if user_id:
        index_user = User.objects.get(id=user_id)
    role_list = Roles.objects.all()
    checked_role_code = 0
    checked_role_id = 0
    for val in role_list:
        val.is_checked = 0
        if val.code == index_user.userprofile.stocks_role:
            val.is_checked = 1
            checked_role_code = val.code
            checked_role_id = val.id
    role_menus = Menus.objects.filter(roles__id=checked_role_id)
    for val in user_list:
        val.is_checked = 0
        if val.userprofile.stocks_role == checked_role_code:
            val.is_checked = 1
    role_ids = []
    if role_menus:
        for val in role_menus:
            role_ids.append(val.elem_id)

    for val in list:
        val.is_checked = 0
        if val.elem_id in role_ids:
            val.is_checked = 1

    data = {
        'list': list,
        'user': user,
        'user_id': user_id,
        'user_list': user_list,
        'role_list': role_list,
        'title': 'Setting',
    }
    return render(request, "Stocks/settings/index.html", data)
Beispiel #20
0
 def ajax_update_list(self):
     user = App.get_user_info(self)
     if not user:
         return HttpResponse(json.dumps({
             'code': 1,
             'msg': u'用户未登录!'
         }),
                             content_type='application/json')
     work_path = settings.SPIDER_URL
     os.chdir(work_path)
     os.system('scrapyd-deploy')
     cmd_str1 = 'curl http://localhost:6800/schedule.json -d project=maxlead_scrapy -d spider=listing_spider -d asin=%s -d user=%s' % (
         100, user.user_id)
     os.system(cmd_str1)
     os.chdir(settings.ROOT_PATH)
     return HttpResponse(json.dumps({
         'code': 1,
     }),
                         content_type='application/json')
Beispiel #21
0
def brand_import(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponse(json.dumps({'code': 66, 'msg': u'login error!'}), content_type='application/json')

    if request.method == 'POST':
        myfile = request.FILES.get('my_file','')
        if not myfile:
            return HttpResponse(json.dumps({'code': 0, 'msg': u'File is empty!'}),content_type='application/json')
        file_path = os.path.join(settings.BASE_DIR, settings.DOWNLOAD_URL, 'excel_stocks', myfile.name)
        f = open(file_path, 'wb')
        for chunk in myfile.chunks():
            f.write(chunk)
        f.close()
        handleEncoding(file_path)
        file = open(file_path, 'r', encoding='UTF-8')
        csv_files = csv.reader(file)
        msg = 'Successfully!\n'
        for i, val in enumerate(csv_files, 0):
            try:
                if i == 0 and not val[0] == 'SKU' and not val[1] == 'ASIN':
                    return HttpResponse(json.dumps({'code': 0, 'msg': u'文件错误~'}),
                                        content_type='application/json')
                if i > 0:
                    brand_check = AdsBrand.objects.filter(user=user.user, sku=val[0], asin=val[1])
                    val[2] = val[2].upper()
                    if brand_check:
                        brand_check.update(brand=val[2])
                    else:
                        brand_obj = AdsBrand()
                        brand_obj.id
                        brand_obj.user = user.user
                        brand_obj.sku = val[0]
                        brand_obj.asin = val[1]
                        brand_obj.brand = val[2]
                        brand_obj.save()
            except:
                msg += '第%s行添加有误。\n' % (i + 1)
                continue
        file.close()
        res = {'code': 1, 'msg': msg}
        os.remove(file_path)
    return HttpResponse(json.dumps(res), content_type='application/json')
Beispiel #22
0
    def ajax_get_reviews(self):
        user = App.get_user_info(self)
        if not user:
            return HttpResponse(json.dumps({'code': 0, 'msg': '用户未登录'}),content_type='application/json')
        revBgn = self.GET.get('revBgn', '')
        revEnd = self.GET.get('revEnd', '')
        page = self.GET.get('page', 1)
        viewRange = self.GET.get('viewRange', '')
        offset = (int(page)-1)*6

        asins = Dashboard._get_asins(self,user,review_watcher=1,user_id=viewRange)
        review_max = Reviews.objects.filter(asin__in=asins).aggregate(Max('created'))
        if not review_max or not review_max['created__max']:
            return HttpResponse(json.dumps({'code': 0, 'msg': '没有数据!'}), content_type='application/json')
        reviews = Reviews.objects.filter(created__icontains=review_max['created__max'],score__lte=3, asin__in=asins).order_by('-review_date')

        if revBgn:
            reviews = reviews.filter(review_date__gte=revBgn)
        if revEnd:
            reviews = reviews.filter(review_date__lte=revEnd)
        if reviews:
            reviews = reviews[offset:offset+6]
        if not reviews:
            return HttpResponse(json.dumps({'code': 1, 'data': []}), content_type='application/json')

        data = []
        for val in reviews:
            if val.review_date:
                val.review_date = val.review_date.strftime("%Y-%m-%d")
            a = model_to_dict(val)
            a['sku'] = UserAsins.objects.filter(aid=val.asin)[0].sku
            data.append(a)
        is_page = 1
        if len(reviews) < 6:
            is_page = 0

        re = {
            'data':data,
            'review_page':page,
            'is_page':is_page
        }

        return HttpResponse(json.dumps({'code': 1, 'data': re}), content_type='application/json')
Beispiel #23
0
def sync_barcode(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponse(json.dumps({
            'code': 66,
            'msg': u'login error!'
        }),
                            content_type='application/json')
    if request.method == 'POST':
        start_date = request.POST.get('start_date', '')
        start_date = start_date[0:16]
        time.sleep(3)
        t = threading.Timer(1.0, run_update_barcode, [user, start_date])
        t.start()
    return HttpResponse(json.dumps({
        'code': 1,
        'msg': u'Task is running!'
    }),
                        content_type='application/json')
Beispiel #24
0
def add_role(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponse(json.dumps({'code': 66}), content_type='application/json')
    if request.method == 'POST':
        role_name = request.POST.get('role_name','')
        role_code = request.POST.get('role_code','')
        menu_ids = request.POST.get('menu_ids','')
        if not role_code or not role_name or not menu_ids:
            return HttpResponse(json.dumps({'code': 0, 'msg': 'Code/Name is empty!'}), content_type='application/json')
        role_obj = Roles()
        role_obj.id
        role_obj.name = role_name
        role_obj.code = role_code
        role_obj.save()
        for val in eval(menu_ids):
            menu_obj = Menus.objects.get(id=int(val))
            menu_obj.roles.add(role_obj)
        return HttpResponse(json.dumps({'code': 1, 'msg': 'Work is done!'}), content_type='application/json')
Beispiel #25
0
def import_stemp(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponse(json.dumps({'code': 66, 'msg': u'login error!'}), content_type='application/json')
    if request.method == 'POST':
        myfile = request.FILES.get('myfile', '')
        if not myfile:
            return HttpResponse(json.dumps({'code': 0, 'msg': u'File is empty!'}), content_type='application/json')
        file_path = os.path.join(settings.BASE_DIR, settings.DOWNLOAD_URL, 'excel_stocks', myfile.name)
        f = open(file_path, 'wb')
        for chunk in myfile.chunks():
            f.write(chunk)
        f.close()
        if not os.path.isfile(file_path):
            return HttpResponse(json.dumps({'code': 0, 'msg': 'File is not found!'}), content_type='application/json')
        data = xlrd.open_workbook(file_path)  # 打开fname文件
        data.sheet_names()  # 获取xls文件中所有sheet的名称
        table = data.sheet_by_index(0)  # 通过索引获取xls文件第0个sheet
        nrows = table.nrows
        msg = ''
        querylist = []
        check_data = []
        for i in range(nrows):
            try:
                if i + 1 < nrows:
                    sfp_temp = table.cell_value(i + 1, 0, ).strip()
                    warehouse = table.cell_value(i + 1, 1, ).strip()
                    inactive = table.cell_value(i + 1, 2, ).strip()
                    chec = SfpTemps.objects.filter(sfp_temp=sfp_temp)
                    if chec:
                        chec.update(warehouse=warehouse, inactive=inactive, user=user.user)
                    else:
                        if sfp_temp not in check_data:
                            check_data.append(sfp_temp)
                            querylist.append(SfpTemps(sfp_temp=sfp_temp, warehouse=warehouse, inactive=inactive, user=user.user))
            except:
                msg += '第%s行添加有误。<br>' % (i + 1)
            continue
        if querylist:
            SfpTemps.objects.bulk_create(querylist)
        os.remove(file_path)
        return HttpResponse(json.dumps({'code': 1, 'msg': msg}), content_type='application/json')
Beispiel #26
0
 def ajax_export(self):
     user = App.get_user_info(self)
     if not user:
         return HttpResponse(json.dumps({
             'code': 0,
             'msg': u'用户未登录!'
         }),
                             content_type='application/json')
     data = eval(self.POST.get('data'))
     fields = [
         'Image Thumbs', 'Title', 'Asin', 'Sku', 'Brand', 'Price',
         'Total Review', 'Rvw Ecore', 'Category Rank', 'Buy Box', 'Status',
         'Review Watcher', 'Listing Watcher', 'Last Check'
     ]
     data_fields = [
         'title', 'asin', 'sku', 'brand', 'price', 'total_review',
         'rvw_score', 'category_rank', 'buy_box', 'status',
         'review_watcher', 'listing_watcher', 'last_check'
     ]
     return get_excel_file(self, data, fields, data_fields)
Beispiel #27
0
def sku_list(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponseRedirect("/admin/max_stock/login/")
    keywords = request.GET.get('keywords', '').replace('amp;', '')
    res = SkuUsers.objects.all()
    if keywords:
        res = res.filter(
            Q(sku__contains=keywords) | Q(user__username__contains=keywords))
    user_list = User.objects.filter(userprofile__role=99)
    if not user.user.is_superuser and not user.stocks_role == 66:
        res = res.filter(user_id=user.user.id)
        user_list = user_list.filter(id=user.user_id)
    data = {
        'data': res,
        'title': "User Sku",
        'user': user,
        'user_list': user_list,
    }
    return render(request, "Stocks/users_sku/skus.html", data)
Beispiel #28
0
def export_stocks(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponseRedirect("/admin/max_stock/login/")
    keywords = request.GET.get('keywords', '').replace('amp;', '')
    warehouse = request.GET.get('warehouse', '')
    sel_new = request.GET.get('sel_new', '')
    stocks = WarehouseStocks.objects.all()
    if not user.user.is_superuser and not user.stocks_role == 66:
        skus = SkuUsers.objects.filter(user_id=user.user.id).values_list('sku')
        stocks = stocks.filter(sku__in=skus)
    if keywords:
        stocks = stocks.filter(sku__contains=keywords)
    if warehouse:
        stocks = stocks.filter(warehouse=warehouse)
    if not sel_new:
        sel_new = 0
    stocks = stocks.filter(is_new=sel_new)
    stocks = stocks.values('sku',
                           'warehouse').annotate(count=Count('sku'),
                                                 count2=Count('warehouse'))

    data = []
    if stocks:
        for val in stocks:
            qty = WarehouseStocks.objects.filter(sku=val['sku'],
                                                 warehouse=val['warehouse'],
                                                 is_new=sel_new)
            if qty:
                re = {
                    'sku': val['sku'],
                    'warehouse': val['warehouse'],
                    'qty': qty[0].qty,
                    'created': qty[0].created.strftime("%Y-%m-%d %H:%M:%S"),
                }
                data.append(re)
        fields = ['SKU', 'Warehouse', 'QTY', 'Created']
        data_fields = ['sku', 'warehouse', 'qty', 'created']
        return get_excel_file(request, data, fields, data_fields)
    else:
        return HttpResponse('没有数据~~')
Beispiel #29
0
def get_role_user(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponse(json.dumps({'code': 66}), content_type='application/json')
    if request.method == 'POST':
        role_code = request.POST.get('role_code', '')
        user_list = User.objects.filter()
        if not user_list:
            return HttpResponse(json.dumps({'code': 0}), content_type='application/json')
        left_str = ''
        right_str = ''
        for val in user_list:
            try:
                if role_code and val.userprofile.stocks_role == role_code:
                    right_str += '<option value="%s">%s</option>' % (val.id, val.username)
                elif (val.userprofile.stocks_role == '0' or not val.userprofile.stocks_role) and not val.is_superuser:
                    left_str += '<option value="%s">%s</option>' % (val.id, val.username)
            except:
                continue
        data = {'right_str': right_str, 'left_str': left_str}
        return HttpResponse(json.dumps({'code': 1, 'data': data}), content_type='application/json')
Beispiel #30
0
def change_role(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponse(json.dumps({'code': 66}), content_type='application/json')
    if request.method == 'POST':
        user_id = request.POST.get('user_id', '')
        role_code = request.POST.get('role_user_code', '')
        box_menu_ids = request.POST.get('box_menu_ids', '')
        user_obj = UserProfile.objects.filter(user_id=user_id)
        role_obj = Roles.objects.filter(code=role_code)
        if not user_obj or not role_obj:
            return HttpResponse(json.dumps({'code': 0, 'msg': 'User/Role is not exits!'}), content_type='application/json')
        user_obj.update(stocks_role=role_code)
        res = role_obj[0].menus_set.all()
        for val in res:
            val.roles.remove(role_obj[0])
        objs = Menus.objects.filter(id__in=eval(box_menu_ids))
        if objs:
            for val in objs:
                val.roles.add(role_obj[0])
        return HttpResponse(json.dumps({'code': 1, 'msg': 'Work is done!'}), content_type='application/json')