Exemple #1
0
    def post(self, request):
        option = request.GET.get('option', None)
        res = {'status': True}

        if option:
            service = request.POST.get('service', None)
            category = request.POST.get('category', None)
            time_rule = request.POST.get('time_rule', None)
            subject = request.POST.get('subject', None)
            message = request.POST.get('message', None)

            if danger.xss(service) or danger.xss(subject):
                return JsonResponse({'status': False, 'msg': 'xss'})
            if danger.xss(message):
                return JsonResponse({'status': False, 'msg': 'xss'})

            if option == 'add':
                et = models.EmailTemplate()

            if option == 'update':
                pk = request.GET.get('id', None)

                et = models.EmailTemplate.objects.get(id=pk)

            et.category = sms_modles.Category.objects.get(flag=category)
            et.service = service
            et.subject = subject
            et.message = self.sel(message)
            et.time_rule = time_rule

            et.save()

        return JsonResponse(res)
Exemple #2
0
    def post(self, request):
        option = request.GET.get('option', None)
        if option == 'delete':
            pk = request.GET.get('id', None)
            contact = user_models.Contact.objects.get(id=pk)
            contact.delete()
            return JsonResponse({'status': True})

        first_named = request.POST.get('first_named', None)
        area = request.POST.get('area', None)
        phoned = request.POST.get('phoned', None)
        email = request.POST.get('email', None)
        gender = request.POST.get('gender', None)
        bith = request.POST.get('bith', None)
        tags = request.POST.get('tags', None)

        # print('经过后台')
        if danger.xss(first_named):
            return JsonResponse({'status': False, 'msg': 'xss'})

        if option == 'update':
            pk = request.GET.get('id', None)
            if pk is None:
                return Response({'status': False})
            contact = user_models.Contact.objects.get(pk=id)
        else:

            contact = user_models.Contact()

        contact.first_named = first_named
        if area:
            contact.area = sms_models.Area.objects.get(id=area)
        else:
            contact.area = sms_models.Area.objects.all()[0]
        contact.phoned = phoned
        contact.email = email
        contact.gender = gender

        if bith:
            contact.bith = bith
        contact.save()

        if tags:
            tags = [int(i) for i in tags.split(',')]

            contact.tag.clear()
            for tag in tags:
                contact.tag.add(tag)

            contact.save()
        try:
            return JsonResponse({
                'res': True,
                'instance': model_to_dict(contact)
            })
        except:
            return JsonResponse({'res': True})
Exemple #3
0
    def post(self, request):
        option = request.GET.get('option', None)

        if option:

            area = request.POST.get('area', None)
            named = request.POST.get('named', None)
            phoned = request.POST.get('phoned', None)
            sms_template = request.POST.get('sms_template', None)

            if danger.xss(named):
                return redirect('/danger/?option=xss')

            if option == 'add':
                task = models.SmsTask()

                task.named = named
                task.phoned = phoned
                area = models.Area.objects.get(id=area)
                task.area = area
                sms_template = models.SmsTemplate.objects.get(id=sms_template)
                task.sms_template = sms_template
                task.save()

                ids = []
                contact_key = request.POST.get('contact_key', None)
                used = request.POST.get('used', None)
                used = used.split(',')

                task.save()
                for index, time_rule_belong in enumerate(
                        sms_template.service.time_rule):

                    if time_rule_belong in used:
                        every_task = models.EveryTask()
                        every_task.sms_task = task
                        every_task.numed = (index + 1)
                        every_task.contact = Contact.objects.get(
                            id=contact_key)
                        every_task.time_rule_belong = time_rule_belong
                        every_task.save()
                        ids.append(every_task.id)
                worker = APSTask.TaskProcess(ids, common.WAY[0][0])
                worker.start()

                return redirect('/task_add_success/')

        return redirect('/task/')
Exemple #4
0
    def post(self, request):
        msg = request.POST.get('message', None)
        code = 112
        sub = ''
        res = {'suc': 0, 'msg': '發送失敗!原因可能是賬戶余額不足,若非余額不足請致電 Manfulls公司。'}

        if danger.xss(msg):
            return JsonResponse({'status': False, 'msg': 'xss'})

        for i in common.SYSTEMMSGTYPED:
            if i[0] == code:
                sub = i[1]

        for au in settings.AUTHOR:

            suc = mail(sub, msg, code, au)
            if suc:
                res['suc'] = res['suc'] + 1

        return JsonResponse(res)
Exemple #5
0
    def post(self, request):
        res = {'status': False}
        option = request.GET.get('option', None)
        if option:
            if option == 'add':
                addr = request.POST.get('addr', None)
                named = request.POST.get('named', None)
                newer = request.POST.get('newer', None)
                nper = request.POST.get('nper', None)
                time_rule = request.POST.get('time_rule', None)
                first_status = request.POST.get('first_status', None)

                if danger.xss(named):
                    return JsonResponse({'status': False, 'msg': 'xss'})

                if (newer == 'true') or (newer == True):
                    contact = user_modles.Contact()
                    contact.email = addr
                    contact.first_named = named
                    contact.save()
                else:
                    contact = user_modles.Contact.objects.filter(
                        Q(email=addr) & Q(status=True))
                    contact = contact[0]

                visit_time = request.POST.get('visit_time', None)
                email_template = request.POST.get('email_template', None)

                ea = models.EmailApply()

                if (first_status == 'false') or (first_status == False):
                    ea.first_status = False
                ea.nper = nper
                ea.now_time_rule = time_rule
                ea.contact = user_modles.Contact.objects.get(id=contact.id)
                ea.visit_time = visit_time
                ea.email_template = models.EmailTemplate.objects.get(
                    id=int(email_template))

                ea.save()

                connection.close()
                worker = APSTask.TaskProcess([ea.id], common.WAY[1][0])
                worker.start()

                res['id'] = ea.id
                res['status'] = True

            if option == 'tasker':
                numed = settings.EVERY
                tasks = []
                index = 0
                ids = request.POST.get('ids', None)

                ids = ids.split(',')

                nper = request.POST.get('nper', None)
                time_rule = request.POST.get('time_rule', None)

                visit_time = request.POST.get('visit_time', None)
                email_template = request.POST.get('email_template', None)

                first_status = request.POST.get('first_status', None)
                if (first_status == 'false') or (first_status == False):
                    first_status = False
                else:
                    first_status = True

                for e in ids:
                    contact = user_modles.Contact.objects.filter(
                        Q(id=e) & Q(status=True))
                    if contact:
                        contact = contact[0]

                        ea = models.EmailApply()
                        ea.nper = nper
                        ea.now_time_rule = time_rule
                        ea.contact = contact
                        ea.visit_time = visit_time
                        ea.email_template = models.EmailTemplate.objects.get(
                            id=int(email_template))
                        ea.first_status = first_status
                        ea.save()

                        tasks.append(str(ea.id))
                        if len(tasks) % 5 == 0:
                            time.sleep(0.5)

                index = len(tasks)
                tasks = [
                    tasks[i:i + numed] for i in range(0, len(tasks), numed)
                ]

                for ts in tasks:
                    ts = '_'.join(ts)
                    running = web_models.Running()
                    running.way = common.WAY[1][0]
                    running.ids = ts
                    running.done_status = False
                    running.block_status = False
                    running.save()
                res['status'] = True
                res['numed'] = index

            if option == 'update':
                pk = request.POST.get('id', None)
                if pk is None:
                    return JsonResponse(res)
                send_status = request.POST.get('send_status', None)

                visit_time = request.POST.get('visit_time', None)
                if int(send_status) == 1:
                    send_status = False
                else:
                    send_status = True
                ea = models.EmailApply.objects.get(id=pk)
                ea.visit_time = visit_time
                ea.send_status = send_status
                ea.save()
                res['status'] = True
                res['instance'] = {
                    'visit_time': visit_time,
                    'send_status': send_status
                }

            if option == 'trash':
                pk = request.GET.get('id', None)
                if pk is None:
                    pk = request.POST.get('id', None)

                ea = models.EmailApply.objects.get(id=pk)
                ea.status = False
                ea.save()
                res['status'] = True
                res['instance'] = {
                    'named': ea.contact.first_named,
                    'addr': ea.contact.email,
                    'service': ea.email_template.service
                }

        return JsonResponse(res)
Exemple #6
0
    def post(self, request):
        res = {'status': True}
        option = request.GET.get('option', None)

        named = request.POST.get('named', None)

        if option:
            if option == 'update' or option == 'add':

                cate = request.POST.get('cate', None)
                cate = models.Category.objects.get(id=cate)

                time_rule = request.POST.get('time_rule', None)
                content = request.POST.get('content', None)
                content_sub = request.POST.get('content_sub', None)
                content_en = request.POST.get('content_en', None)
                content_sub_en = request.POST.get('content_sub_en', None)

                time_rule = [
                    int(i) for i in time_rule.split(',') if i is not ''
                ]

                if danger.xss(named):
                    return JsonResponse({'status': False, 'msg': 'xss'})
                if danger.xss(content):
                    return JsonResponse({'status': False, 'msg': 'xss'})
                if danger.xss(content_sub):
                    return JsonResponse({'status': False, 'msg': 'xss'})
                if danger.xss(content_en):
                    return JsonResponse({'status': False, 'msg': 'xss'})
                if danger.xss(content_sub_en):
                    return JsonResponse({'status': False, 'msg': 'xss'})

                smsT = None
                smsT_en = None
                service = None

                if option == 'add':
                    service = models.Service()
                    smsT = models.SmsTemplate()
                    smsT_en = models.SmsTemplate()

                elif option == 'update':
                    service_id = request.POST.get('service_id', None)
                    sms_template_id = request.POST.get('sms_template_id', None)
                    sms_template_en_id = request.POST.get(
                        'sms_template_en_id', None)

                    service = models.Service.objects.get(id=service_id)

                    try:
                        smsT = models.SmsTemplate.objects.get(
                            id=sms_template_id)
                    except:
                        smsT = models.SmsTemplate()
                        option = 'add'

                    try:
                        smsT_en = models.SmsTemplate.objects.get(
                            id=sms_template_en_id)
                    except:
                        smsT = models.SmsTemplate()
                        option = 'add'

                service.time_rule = time_rule
                service.named = named
                service.save()

                smsT.category = cate
                smsT.content = content
                smsT.content_sub = content_sub

                smsT_en.category = cate
                smsT_en.content = content_en
                smsT_en.content_sub = content_sub_en

                if option == 'add':

                    smsT.service = service
                    smsT.sms_id = '00'
                    smsT.sms_id_sub = '00'
                    smsT.lang = 1

                    smsT_en.service = service
                    smsT_en.sms_id = '00'
                    smsT_en.sms_id_sub = '00'
                    smsT_en.lang = 2

                smsT.save()
                smsT_en.save()

            if option == 'trash':

                pk = request.GET.get('id', None)
                service = models.Service.objects.get(id=pk)

                smsT = models.SmsTemplate.objects.filter(service=service)
                for s in smsT:
                    s.status = False
                    s.save()

                service.status = False
                service.save()

            if option == 'same':
                res['same'] = False
                service = models.Service.objects.filter(
                    Q(status=True) & Q(named=named))

                if len(service) > 0:
                    res['same'] = True

        return JsonResponse(res)