コード例 #1
0
ファイル: apply.py プロジェクト: bobff/Tiny-ERP
    def ajax_reject(self, request, template):
        dicts = self._get_role(request)
        if not dicts.has_key('is_alloter'):
            return HttpResponseRedirect(self._get_login_url(request))

        if request.method == 'POST':
            uuid = request.POST.get('uuid')
            content = request.POST.get('content')
            ok = True
            try:
                app = self.ApplicationModel.objects.get(uuid=uuid)
            except:
                ok = False

            if not app.reject(request, request.user, content):
                ok = False
            else:
                self._do_reject(request, app)

            if ok:
                #给申请人发送通知邮件
                app.evaluatelink = '/helpdesk/apply/evaluate?uuid=' + str(app.uuid) + '&e='
                app.link         = '/helpdesk/apply/query?uuid=' + str(app.uuid)
                app.evaluatelist = app.evaluate_choices
                send_mail(request, app, get_template('%smail_user_status.html'%self.template_dir), [app.email])
                return render_to_response_json({'res':1})
            else:
                return render_to_response_json({'res':0})

        return HttpResponseNotFound()
コード例 #2
0
ファイル: __init__.py プロジェクト: jixl2/gsprodegree
def login(request, template='auth/userlogin.html', redirect_field_name=REDIRECT_FIELD_NAME):
    if request.GET.has_key('admin'):
        template = 'auth/adminlogin.html'

    if request.method == 'POST':
        redirect_to = request.REQUEST.get(redirect_field_name, '')
        loginname = request.POST.get('loginname', None)
        password = request.POST.get('password', None)

        user = authenticate(loginname = loginname, password = password)

        if user:

#            if user.is_alias():
#                __user = user
#                user = __user.alias_user
#                user.backend = __user.backend

            from auth import login
            login(request, user)

            if not redirect_to:
                redirect_to = settings.LOGIN_REDIRECT_URL

            if request.is_ajax():
                return render_to_response_json({"location": redirect_to, "errcode":0})

            return HttpResponseRedirect(redirect_to)

        if request.is_ajax():
            return render_to_response_json({"errcode":101})

    redirect_to =  request.META.get('HTTP_REFERER', "")
    return render_to_response(request, template, {redirect_field_name: redirect_to})
コード例 #3
0
ファイル: apply.py プロジェクト: bobff/Tiny-ERP
    def ajax_reject(self, request, template):
        dicts = self._get_role(request)
        if not dicts.has_key('is_alloter'):
            return HttpResponseRedirect(self._get_login_url(request))

        if request.method == 'POST':
            uuid = request.POST.get('uuid')
            content = request.POST.get('content')
            ok = True
            try:
                app = self.ApplicationModel.objects.get(uuid=uuid)
            except:
                ok = False

            if not app.reject(request, request.user, content):
                ok = False
            else:
                self._do_reject(request, app)

            if ok:
                #给申请人发送通知邮件
                app.evaluatelink = '/helpdesk/apply/evaluate?uuid=' + str(
                    app.uuid) + '&e='
                app.link = '/helpdesk/apply/query?uuid=' + str(app.uuid)
                app.evaluatelist = app.evaluate_choices
                send_mail(
                    request, app,
                    get_template('%smail_user_status.html' %
                                 self.template_dir), [app.email])
                return render_to_response_json({'res': 1})
            else:
                return render_to_response_json({'res': 0})

        return HttpResponseNotFound()
コード例 #4
0
ファイル: apply.py プロジェクト: bobff/Tiny-ERP
    def ajax_allot(self, request, template):
        dicts = self._get_role(request)
        if not dicts.has_key('is_alloter'):
            return HttpResponseRedirect(self._get_login_url(request))

        if request.method == 'POST':
            uuid = request.POST.get('uuid')
            operator = request.POST.getlist('operator[]')
            try:
                app = self.ApplicationModel.objects.get(uuid = uuid)
            except:
                return render_to_response_json({'res':0})
            res = False
            for o in operator:
                o = o.split(',')
                res = app.allot(request, request.user, o[0], o[1])
                if res:
                    #给执行人发送通知邮件
                    app.link = '/helpdesk/apply/task?id=' + str(res.pk)
                    app.taskobj = res
                    op = HelpDeskUser.objects.filter(user__username=o[1], duty=o[0])
                    if op.exists():
                        send_mail(request, app, get_template('%smail_op_task.html'%self.template_dir), [op[0].email], u'HelpDesk通知 【' + app.name +'】')
            if res:
                self._do_allot(request, app)
                app.update_status(request, '2')
                #给申请人发送通知邮件
                app.evaluatelink = '/helpdesk/apply/evaluate?uuid=' + str(app.uuid) + '&e='
                app.link = '/helpdesk/apply/query?uuid=' + str(app.uuid)
                app.evaluatelist = app.evaluate_choices
                send_mail(request, app, get_template('%smail_user_status.html'%self.template_dir), [app.email])
                
            return render_to_response_json({'res':1})
        return HttpResponseNotFound()
コード例 #5
0
ファイル: apply.py プロジェクト: bobff/Tiny-ERP
    def ajax_del_op(self, request, template):
        '''在任务分配界面 删除任务'''
        dicts = self._get_role(request)
        if not dicts.has_key('is_alloter'):
            return HttpResponseRedirect(self._get_login_url(request))

        if request.method == 'POST':
            uuid = request.POST.get('uuid')
            id = request.POST.get('id')
            try:
                Task.objects.filter(uuid=uuid, pk=id).delete()
                obj = self.ApplicationModel.objects.get(uuid=uuid)
                if obj.update_status(request):
                    #给申请人发送通知邮件
                    obj.evaluatelink = '/helpdesk/apply/evaluate?uuid=' + str(
                        obj.uuid) + '&e='
                    obj.link = '/helpdesk/apply/query?uuid=' + str(obj.uuid)
                    obj.evaluatelist = obj.evaluate_choices
                    tdir = self._get_template_dir(obj)
                    send_mail(request, obj, tdir + 'mail_user_status.html',
                              [obj.email])
            except:
                return render_to_response_json({'res': 0})
            return render_to_response_json({'res': 1})
        return HttpResponseNotFound()
コード例 #6
0
ファイル: calendar.py プロジェクト: bobff/Tiny-ERP
def add(request):
    id = request.POST.get('id', None)
    start_time = request.POST.get('start_date', None)
    end_time = request.POST.get('end_date', None)
    remarks = request.POST.get('remarks')
    public = request.POST.get('public')
    if not public:
        public = False
    else:
        public = True

    if not id or not start_time or not end_time:
        return render_to_response_json({'res':False})

    ap = Schedule()
    ap.id = id
    ap.user = request.user
    ap.start_time = make_aware(datetime.strptime(start_time,'%Y-%m-%d %H:%M:%S'), get_current_timezone())
    ap.end_time = make_aware(datetime.strptime(end_time,'%Y-%m-%d %H:%M:%S'), get_current_timezone())
    ap.remarks = remarks
    ap.public = public
    try:
        ap.save()
    except:
        return render_to_response_json({'res':False, 'msg': '保存失败'})
    return render_to_response_json({'res':True})
コード例 #7
0
ファイル: calendar.py プロジェクト: bobff/Tiny-ERP
def update(request):
    id = request.POST.get('id', None)
    start_time = request.POST.get('start_date', None)
    end_time = request.POST.get('end_date', None)
    remarks = request.POST.get('remarks')
    public = request.POST.get('public')

    if public == 'false':
        public = False
    else:
        public = True

    if not id or not start_time or not end_time:
        return render_to_response_json({'res':False})

    try:
        obj = Schedule.objects.get(pk=id)
    except:
        return render_to_response_json({'res':False, 'msg':'参数有误'})

    if obj.user != request.user:
        data = {'res':False, 'msg': '您没有权限修改该记录'}
        return render_to_response_json(data)

    obj.start_time = make_aware(datetime.strptime(start_time, '%Y-%m-%d %H:%M:%S'), get_current_timezone())
    obj.end_time = make_aware(datetime.strptime(end_time, '%Y-%m-%d %H:%M:%S'), get_current_timezone())
    obj.remarks = remarks
    obj.public = public
    try:
        obj.save()
    except:
        return render_to_response_json({'res':False, 'msg': '保存失败'})    
    return render_to_response_json({'res':True})
コード例 #8
0
ファイル: calendar.py プロジェクト: bobff/Tiny-ERP
def delete(request):
    id = request.POST.get('id')
    obj = Schedule.objects.filter(pk=id)
    if not id or not obj:
        return render_to_response_json({'res':-1})

    obj = obj[0]
    if obj.user != request.user:
        return render_to_response_json({'res':False, 'msg':'您没有权限删除该记录'})

    try:
        obj.delete()
        return render_to_response_json({'res':True, 'msg':'删除成功'})
    except:
        return render_to_response_json({'res':False, 'msg':'删除失败'}) 
コード例 #9
0
def ajax_get_undo(request):
    if request.method == 'POST':
        dicts = get_undo(request)
        # general = Task.objects.filter(operator = request.user, result='0', uuid__category='GeneralApplication').count()
        # vm = Task.objects.filter(operator = request.user, result = '0', uuid__category = 'VmApplication').count()
        # vpn = Task.objects.filter(operator = request.user, result = '0', uuid__category = 'VpnApplication').count()
        return render_to_response_json(dicts)
    return HttpResponseNotFound()
コード例 #10
0
ファイル: __init__.py プロジェクト: bobff/Tiny-ERP
def ajax_get_undo(request):
    if request.method == 'POST':
        dicts = get_undo(request)
        # general = Task.objects.filter(operator = request.user, result='0', uuid__category='GeneralApplication').count()
        # vm = Task.objects.filter(operator = request.user, result = '0', uuid__category = 'VmApplication').count()
        # vpn = Task.objects.filter(operator = request.user, result = '0', uuid__category = 'VpnApplication').count()
        return render_to_response_json(dicts)
    return HttpResponseNotFound()
コード例 #11
0
ファイル: views.py プロジェクト: bobff/appointment
def delete(request):
    id = request.POST.get('id')
    obj = Appointment.objects.filter(pk=id)
    if not id or not obj:
        return render_to_response_json({'res': -1})

    obj = obj[0]
    if not request.user.is_staff and obj.user != request.user:
        return render_to_response_json({'res': False, 'msg': '您没有权限删除该记录'})

    if obj.status == 1:
        return render_to_response_json({'res': False, 'msg': '管理员已锁定的预约不能删除'})

    now = datetime.now()
    if localtime(
            obj.start_time).strftime('%Y-%m-%d') == now.strftime('%Y-%m-%d'):
        return render_to_response_json({'res': False, 'msg': '当天不能再删除'})
    if localtime(obj.start_time).replace(tzinfo=None) < now:
        return render_to_response_json({'res': False, 'msg': '历史记录不可删除'})

    try:
        obj.delete()
        return render_to_response_json({'res': True, 'msg': '删除成功'})
    except:
        return render_to_response_json({'res': False, 'msg': '删除失败'})
コード例 #12
0
ファイル: views.py プロジェクト: bobff/appointment
def update(request):
    id = request.POST.get('id', None)
    start_time = request.POST.get('start_date', None)
    end_time = request.POST.get('end_date', None)
    remarks = request.POST.get('remarks')
    if not id or not start_time or not end_time:
        return render_to_response_json({'res':False})

    try:
        obj = Appointment.objects.get(pk=id)
    except:
        return render_to_response_json({'res':False, 'msg':'参数有误'})

    if not request.user.is_staff and obj.user != request.user:
        data = {'res':False, 'msg': '您没有权限修改该记录'}
        return render_to_response_json(data)

    if obj.status == 1:
        return render_to_response_json({'res':False, 'msg':'管理员已锁定的预约不能修改'})

    start_time = datetime.strptime(start_time, '%Y-%m-%d %H:%M:%S')
    end_time = datetime.strptime(end_time, '%Y-%m-%d %H:%M:%S')

    now = datetime.now()
    if localtime(obj.start_time).strftime('%Y-%m-%d') == now.strftime('%Y-%m-%d') or start_time.strftime('%Y-%m-%d') == now.strftime('%Y-%m-%d'):
        return render_to_response_json({'res':False, 'msg':'当天不能再更改'})
    if localtime(obj.start_time).replace(tzinfo=None) < now or start_time < now:
        return render_to_response_json({'res':False, 'msg':'历史记录不可更改'})

    obj.start_time = start_time
    obj.end_time = end_time
    obj.remarks = remarks
    res, msg = obj.save()
    return render_to_response_json({'res':res, 'msg': msg})
コード例 #13
0
ファイル: views.py プロジェクト: jixl2/gsprodegree
def ajax_get_staff(request):
    os = []
    name = request.POST.get('name',None)
    if name:
        staffs = Staff.objects.filter(name__contains = name)
        
        for s in staffs:
            os.append({'name':s.name,'jobnum':s.jobnum})
       
    return render_to_response_json(os)
コード例 #14
0
ファイル: apply.py プロジェクト: bobff/Tiny-ERP
    def ajax_allot(self, request, template):
        dicts = self._get_role(request)
        if not dicts.has_key('is_alloter'):
            return HttpResponseRedirect(self._get_login_url(request))

        if request.method == 'POST':
            uuid = request.POST.get('uuid')
            operator = request.POST.getlist('operator[]')
            try:
                app = self.ApplicationModel.objects.get(uuid=uuid)
            except:
                return render_to_response_json({'res': 0})
            res = False
            for o in operator:
                o = o.split(',')
                res = app.allot(request, request.user, o[0], o[1])
                if res:
                    #给执行人发送通知邮件
                    app.link = '/helpdesk/apply/task?id=' + str(res.pk)
                    app.taskobj = res
                    op = HelpDeskUser.objects.filter(user__username=o[1],
                                                     duty=o[0])
                    if op.exists():
                        send_mail(
                            request, app,
                            get_template('%smail_op_task.html' %
                                         self.template_dir), [op[0].email],
                            u'HelpDesk通知 【' + app.name + '】')
            if res:
                self._do_allot(request, app)
                app.update_status(request, '2')
                #给申请人发送通知邮件
                app.evaluatelink = '/helpdesk/apply/evaluate?uuid=' + str(
                    app.uuid) + '&e='
                app.link = '/helpdesk/apply/query?uuid=' + str(app.uuid)
                app.evaluatelist = app.evaluate_choices
                send_mail(
                    request, app,
                    get_template('%smail_user_status.html' %
                                 self.template_dir), [app.email])

            return render_to_response_json({'res': 1})
        return HttpResponseNotFound()
コード例 #15
0
ファイル: views.py プロジェクト: bobff/appointment
def add(request):
    id = request.POST.get('id', None)
    start_time = request.POST.get('start_date', None)
    end_time = request.POST.get('end_date', None)
    remarks = request.POST.get('remarks')
    if not id or not start_time or not end_time:
        return render_to_response_json({'res':False})

    ap = Appointment()
    ap.id = id
    ap.user = request.user
    ap.start_time = datetime.strptime(start_time,'%Y-%m-%d %H:%M:%S')
    ap.end_time = datetime.strptime(end_time,'%Y-%m-%d %H:%M:%S')
    ap.status = 0
    ap.remarks = remarks
    now = datetime.now()
    if ap.start_time < now or ap.start_time.strftime('%Y-%m-%d') == now.strftime('%Y-%m-%d'):
        return render_to_response_json({'res':False, 'msg': '请至少提前一天提交预约!'})
    res, msg = ap.save()
    return render_to_response_json({'res':res, 'msg': msg})
コード例 #16
0
ファイル: apply.py プロジェクト: bobff/Tiny-ERP
    def ajax_result(self, request, template):
        '''任务处理结果'''
        dicts = self._get_role(request)
        if not dicts.has_key('is_operator'):
            return HttpResponseRedirect(self._get_login_url(request))

        if request.method == 'POST':
            id = request.POST.get('id')
            result = request.POST.get('result')
            remarks = request.POST.get('remarks')

            app = None
            try:
                al = Task.objects.get(pk=id, operator=request.user)
            except:
                return render_to_response_json({'res': 0})

            al.result = result
            al.operate_remark = remarks
            al.operate_time = datetime.now()

            app = self.ApplicationModel.objects.get(pk=al.uuid_id)
            app.taskobj = al

            if self._do_result(request, app):
                al.save()

                if app.update_status(request):
                    #给申请人发送通知邮件
                    app.evaluatelink = '/helpdesk/apply/evaluate?uuid=' + str(
                        app.uuid) + '&e='
                    app.link = '/helpdesk/apply/query?uuid=' + str(app.uuid)
                    app.evaluatelist = app.evaluate_choices
                    send_mail(
                        request, app,
                        get_template('%smail_user_status.html' %
                                     self.template_dir), [app.email])

                return render_to_response_json({'res': 1})
            return render_to_response_json({'res': 0})
        return HttpResponseNotFound()
コード例 #17
0
ファイル: views.py プロジェクト: bobff/appointment
def add(request):
    id = request.POST.get('id', None)
    start_time = request.POST.get('start_date', None)
    end_time = request.POST.get('end_date', None)
    remarks = request.POST.get('remarks')
    if not id or not start_time or not end_time:
        return render_to_response_json({'res': False})

    ap = Appointment()
    ap.id = id
    ap.user = request.user
    ap.start_time = datetime.strptime(start_time, '%Y-%m-%d %H:%M:%S')
    ap.end_time = datetime.strptime(end_time, '%Y-%m-%d %H:%M:%S')
    ap.status = 0
    ap.remarks = remarks
    now = datetime.now()
    if ap.start_time < now or ap.start_time.strftime(
            '%Y-%m-%d') == now.strftime('%Y-%m-%d'):
        return render_to_response_json({'res': False, 'msg': '请至少提前一天提交预约!'})
    res, msg = ap.save()
    return render_to_response_json({'res': res, 'msg': msg})
コード例 #18
0
ファイル: apply.py プロジェクト: bobff/Tiny-ERP
    def  ajax_type(self, request, template):
        '''添加或删除申请类型标签'''
        dicts = self._get_role(request)
        if not dicts.has_key('is_alloter'): 
            return HttpResponseRedirect(self._get_login_url(request))

        if request.method == 'POST':
            uuid = request.POST.get('uuid')
            atype = request.POST.get('type')
            isadd = request.POST.get('isadd')
            if isadd == '1':
                try:
                    if not ApplyType.objects.filter(uuid=uuid, type=atype).exists():
                        a = ApplyType()
                        a.uuid_id = uuid
                        a.type = atype
                        a.save()
                except:
                    return render_to_response_json({'res':0})
            else:
                ApplyType.objects.filter(uuid=uuid, type=atype).delete()
            return render_to_response_json({'res':1})
        return HttpResponseNotFound()
コード例 #19
0
ファイル: apply.py プロジェクト: bobff/Tiny-ERP
    def ajax_del_op(self, request, template):
        '''在任务分配界面 删除任务'''
        dicts = self._get_role(request)
        if not dicts.has_key('is_alloter'):
            return HttpResponseRedirect(self._get_login_url(request))

        if request.method == 'POST':
            uuid = request.POST.get('uuid')
            id   = request.POST.get('id')
            try:
                Task.objects.filter(uuid=uuid, pk=id).delete()
                obj = self.ApplicationModel.objects.get(uuid=uuid)
                if obj.update_status(request):
                    #给申请人发送通知邮件
                    obj.evaluatelink = '/helpdesk/apply/evaluate?uuid=' + str(obj.uuid) + '&e='
                    obj.link = '/helpdesk/apply/query?uuid=' + str(obj.uuid)
                    obj.evaluatelist = obj.evaluate_choices
                    tdir = self._get_template_dir(obj)
                    send_mail(request, obj, tdir + 'mail_user_status.html', [obj.email])
            except:
                return render_to_response_json({'res':0})
            return render_to_response_json({'res':1})
        return HttpResponseNotFound()
コード例 #20
0
ファイル: apply.py プロジェクト: bobff/Tiny-ERP
    def ajax_result(self, request, template):
        '''任务处理结果'''
        dicts = self._get_role(request)
        if not dicts.has_key('is_operator'):
            return HttpResponseRedirect(self._get_login_url(request))

        if request.method == 'POST':
            id      = request.POST.get('id')
            result  = request.POST.get('result')
            remarks = request.POST.get('remarks')

            app = None
            try:
                al = Task.objects.get(pk = id, operator = request.user)
            except:
                return render_to_response_json({'res':0})

            al.result = result
            al.operate_remark = remarks
            al.operate_time = datetime.now()
            
            app = self.ApplicationModel.objects.get(pk=al.uuid_id)
            app.taskobj = al

            if  self._do_result(request, app):
                al.save()

                if app.update_status(request):
                    #给申请人发送通知邮件
                    app.evaluatelink = '/helpdesk/apply/evaluate?uuid=' + str(app.uuid) + '&e='
                    app.link = '/helpdesk/apply/query?uuid=' + str(app.uuid)
                    app.evaluatelist = app.evaluate_choices
                    send_mail(request, app, get_template('%smail_user_status.html'%self.template_dir), [app.email])
                    
                return render_to_response_json({'res':1})
            return render_to_response_json({'res':0})
        return HttpResponseNotFound()
コード例 #21
0
ファイル: apply.py プロジェクト: bobff/Tiny-ERP
    def ajax_type(self, request, template):
        '''添加或删除申请类型标签'''
        dicts = self._get_role(request)
        if not dicts.has_key('is_alloter'):
            return HttpResponseRedirect(self._get_login_url(request))

        if request.method == 'POST':
            uuid = request.POST.get('uuid')
            atype = request.POST.get('type')
            isadd = request.POST.get('isadd')
            if isadd == '1':
                try:
                    if not ApplyType.objects.filter(uuid=uuid,
                                                    type=atype).exists():
                        a = ApplyType()
                        a.uuid_id = uuid
                        a.type = atype
                        a.save()
                except:
                    return render_to_response_json({'res': 0})
            else:
                ApplyType.objects.filter(uuid=uuid, type=atype).delete()
            return render_to_response_json({'res': 1})
        return HttpResponseNotFound()
コード例 #22
0
ファイル: views.py プロジェクト: bobff/mutil-docker
    def ajax_action(self, request, template):
        ids = request.POST.getlist('id[]')
        action = request.POST.get('action')
        failed = []
        if hasattr(self, '_'+action):
            func = getattr(self,'_'+action)
            if callable(func):
                if ids:
                    for i in ids:
                        if not func(i):
                            failed.append(i)

        if len(failed) == 0:
            res = { 'next_url':'reload'}
        else:
            res = {'msg':u'操作失败,失败记录ID:' + u','.join(failed)}
        return render_to_response_json(res)
コード例 #23
0
    def ajax_action(self, request, template):
        ids = request.POST.getlist('id[]')
        action = request.POST.get('action')
        failed = []
        if hasattr(self, '_' + action):
            func = getattr(self, '_' + action)
            if callable(func):
                if ids:
                    for i in ids:
                        if not func(i):
                            failed.append(i)

        if len(failed) == 0:
            res = {'next_url': 'reload'}
        else:
            res = {'msg': u'操作失败,失败记录ID:' + u','.join(failed)}
        return render_to_response_json(res)
コード例 #24
0
ファイル: views.py プロジェクト: bobff/appointment
def update(request):
    id = request.POST.get('id', None)
    start_time = request.POST.get('start_date', None)
    end_time = request.POST.get('end_date', None)
    remarks = request.POST.get('remarks')
    if not id or not start_time or not end_time:
        return render_to_response_json({'res': False})

    try:
        obj = Appointment.objects.get(pk=id)
    except:
        return render_to_response_json({'res': False, 'msg': '参数有误'})

    if not request.user.is_staff and obj.user != request.user:
        data = {'res': False, 'msg': '您没有权限修改该记录'}
        return render_to_response_json(data)

    if obj.status == 1:
        return render_to_response_json({'res': False, 'msg': '管理员已锁定的预约不能修改'})

    start_time = datetime.strptime(start_time, '%Y-%m-%d %H:%M:%S')
    end_time = datetime.strptime(end_time, '%Y-%m-%d %H:%M:%S')

    now = datetime.now()
    if localtime(obj.start_time).strftime('%Y-%m-%d') == now.strftime(
            '%Y-%m-%d') or start_time.strftime('%Y-%m-%d') == now.strftime(
                '%Y-%m-%d'):
        return render_to_response_json({'res': False, 'msg': '当天不能再更改'})
    if localtime(
            obj.start_time).replace(tzinfo=None) < now or start_time < now:
        return render_to_response_json({'res': False, 'msg': '历史记录不可更改'})

    obj.start_time = start_time
    obj.end_time = end_time
    obj.remarks = remarks
    res, msg = obj.save()
    return render_to_response_json({'res': res, 'msg': msg})
コード例 #25
0
ファイル: views.py プロジェクト: bobff/appointment
def delete(request):
    id = request.POST.get('id')
    obj = Appointment.objects.filter(pk=id)
    if not id or not obj:
        return render_to_response_json({'res':-1})

    obj = obj[0]
    if not request.user.is_staff and obj.user != request.user:
        return render_to_response_json({'res':False, 'msg':'您没有权限删除该记录'})

    if obj.status == 1:
        return render_to_response_json({'res':False, 'msg':'管理员已锁定的预约不能删除'})

    now = datetime.now()
    if localtime(obj.start_time).strftime('%Y-%m-%d') == now.strftime('%Y-%m-%d'):
        return render_to_response_json({'res':False, 'msg':'当天不能再删除'})
    if localtime(obj.start_time).replace(tzinfo=None) < now:
        return render_to_response_json({'res':False, 'msg':'历史记录不可删除'})

    try:
        obj.delete()
        return render_to_response_json({'res':True, 'msg':'删除成功'})
    except:
        return render_to_response_json({'res':False, 'msg':'删除失败'}) 
コード例 #26
0
ファイル: views.py プロジェクト: lixiaoyuner/by6_order_system
def help(request):
    '''我的预约统计视图函数'''
    obj = Help.objects.all()[0]
    data = obj.content
    return render_to_response_json({'content': data})
コード例 #27
0
ファイル: __init__.py プロジェクト: bobff/Tiny-ERP
def ajax_get_unallot(request):
    if request.method == 'POST':
        dicts = get_unallot(request)
        return render_to_response_json(dicts)
    return HttpResponseNotFound()
コード例 #28
0
ファイル: calendar.py プロジェクト: bobff/Tiny-ERP
def load(request):
    mode = request.GET.get('mode')
    t = request.GET.get('t')
    try:
        t = long(t) / 1000
    except:
        t = None

    if mode == 'day':
        if t:
            start_time = datetime.fromtimestamp(t)
        else:
            now = datetime.now()
            start_time = datetime(now.year, now.month, now.day, 0, 0)
        end_time = start_time + relativedelta(days=1)
    elif mode == 'week':
        if t:
            start_time = datetime.fromtimestamp(t)
        else:
            now = datetime.now()
            start_time = datetime(now.year, now.month, now.day, 0, 0) + relativedelta(days=(-1*now.weekday()))
        end_time = start_time + relativedelta(weeks=1)
    elif mode == 'month':
        if t:
            start_time = datetime.fromtimestamp(t)
        else:
            now = datetime.now()
            start_time = datetime(now.year, now.month, 1, 0, 0)
        end_time = start_time + relativedelta(months=1)
    elif mode == 'timeline':
        if t:
            start_time = datetime.fromtimestamp(t)
        else:
            now = datetime.now()
            start_time = datetime(now.year, now.month, now.day, 0, 0) + relativedelta(days=(-1*now.weekday()))
        end_time = start_time + relativedelta(weeks=1)
    else:
        return render_to_response_json([])

    objs = Schedule.objects.filter(user=request.user, public=False, start_time__lte = end_time, end_time__gt = start_time)

    ev = []
    for obj in objs:
        ev.append({
            'id':obj.id, 
            'text':obj.remarks,
            'start_date': localtime(obj.start_time).strftime('%m/%d/%Y %H:%M'),
            'end_date': localtime(obj.end_time).strftime('%m/%d/%Y %H:%M'),
            'public': obj.public,
            'section_id': 1
            })
    public_objs = Schedule.objects.filter(public=True,start_time__lte = end_time, end_time__gt = start_time)
    for obj in public_objs:
        ev.append({
            'id':obj.id, 
            'text':((request.user != obj.user) and "【公共日程】" or "") + obj.remarks + ((request.user != obj.user) and (" (%s)" % obj.user)  or ""),
            'start_date': localtime(obj.start_time).strftime('%m/%d/%Y %H:%M'),
            'end_date': localtime(obj.end_time).strftime('%m/%d/%Y %H:%M'),
            'public': obj.public,
            'section_id': 1,
            'readonly':(request.user != obj.user),
            'color': '#808080'
            })

    return render_to_response_json(ev)
コード例 #29
0
ファイル: views.py プロジェクト: jixl2/gsprodegree
    def import_xls(self, request, template): 
        """
            xls数据导入
        """    
        os = {}
        os['finished'] = ""
        file = request.GET.get('file',None)
        upload_file = self.DefaultFileModel.objects.filter(upload_file = file)###############################
        if upload_file:
            file_type = ''
            re_search = re.search(r"\.(.*)$", str(upload_file[0].upload_file))
            
            if re_search:
                file_type = re_search.group(1)
            
            start = int(request.GET['start'])
            len = int(request.GET['len'])
            end = start + len
            
            faillist = []
            
            if file_type == 'xls':
                xls_name = settings.MEDIA_ROOT +'/'+ str(upload_file[0].upload_file)
                bk = xlrd.open_workbook(xls_name)
                sheet = bk.sheet_by_index(0)
                print 33333333,sheet
                rows = sheet.nrows
                cols = sheet.ncols
                
                title = {}
                for i in range(0,cols):
                    if not sheet.cell_value(0,i).lower() in title.keys():
                        title[sheet.cell_value(0,i).lower()] = i
               
                if rows < end:
                    end = rows
                    os['finished'] = "finished"
                    os['count'] = rows - 1
                    
                addnum = 0
                for row in range(start,end):
                    if row  == 0:
                        continue
                    
                    o = {}
                    for i in self.ImportFields:
                        if i in self.MapFields.keys():
                            o[self.MapFields[i]] = sheet.cell_value(row, title[i.lower()])
                        else:
                            o[i] =  sheet.cell_value(row, title[i.lower()])
                            
                    if settings.DEBUG == False:
                        try:
                            if self._import_verify(request,o):
                                if self._import(request,o):
                                    addnum = addnum + 1 
                                else:
                                    faillist.append(row+1)
                            else:
                                faillist.append(row+1)
                        except:
                            faillist.append(row+1)
                    else:
                        if self._import_verify(request,o):
                            if self._import(request,o):
                                addnum = addnum + 1 
                            else:
                                faillist.append(row+1)
                        else:
                            faillist.append(row+1)
                          
            if file_type == 'dbf':
                dbf_name = settings.MEDIA_ROOT + str(upload_file[0].upload_file)
                db = dbf2.Dbf(dbf_name)
                #db.openFile(dbf_name)
                rows = db.__len__()
                
                if rows < end:
                    end = rows
                    os['finished'] = "finished"
                    os['count'] = rows   
                
                addnum = 0
                for row in range(start,end):
                    d = db[row]
                    
                    
                    o={}
                    
                    fields = {}
                    for i in db.fieldNames:
                        if i.lower() in self.ImportFields:
                            fields[i.lower()] = i
                    for i in fields.keys():
                        _s = d[fields[i]]
                        try:
                            _s =_s.decode("GB18030")
                        except:
                            pass    
                            #setattr(o,i.attname, _s)
                        if i in self.MapFields.keys():
                            o[self.MapFields[i]] = _s
                        else:
                            o[i] = _s
                    
                    if settings.DEBUG == False:
                        try:
                            if self._import_verify(request, o):
                                if self._import(request, o):
                                    addnum = addnum + 1
                                else:
                                    faillist.append(row+1)
                            else:
                                faillist.append(row+1)
                        except:
                            faillist.append(row+1)
                    else:
                        if self._import_verify(request, o):
                            if self._import(request, o):
                                addnum = addnum + 1
                            else:
                                faillist.append(row+1)
                        else:
                            faillist.append(row+1)
                        
                    """
                    o = self.DefaultModel()
                    
                    oo={}
                    
                    fields = {}
                    for i in db.fieldNames():
                        if i.lower() in self.ImportFields:
                            fields[i.lower()] = i
                    for i in self.DefaultModel._meta.fields:
                        if i.name.lower() in fields.keys():
                            _s = d[fields[i.name.lower()]]
                            try:
                                _s =_s.decode("GB18030")
                            except:
                                pass    
                            setattr(o,i.attname, _s)
                            oo[i.name] = _s
                    if self._import_verify(request, o):
                        o.save()
                        self._import(request, oo)
                        addnum = addnum + 1
                   """     
            os['ret'] = (end*100)/rows
            os['addnum'] = addnum
            os['faillist'] = faillist
#            if os['finished'] == "finished":
#                for u in upload_file:
#                    try:#dbf导入完成�删除文件会报� 不知道怎么解决!!!!!!!!!!      
#                        u.upload_file.delete()
#                        u.delete()
#                    except:
#                        pass       
                                
        else:
            os['finished'] = "finished"
            
            
        return render_to_response_json(os)
コード例 #30
0
ファイル: views.py プロジェクト: jixl2/gsprodegree
 def export(self,request,template):
     print 'into export'
     os = {}
     os['finished'] = ""
     e_type = request.GET.get('type',None)
     start = request.GET.get('start',None)
     len = request.GET.get('len',None)
     print e_type,start,len
     if e_type == 'dbf' and start and len:
         print 'into app'
         def u2g(str):
             return str.decode('utf-8').encode('gb18030')
         
         def d2g(string):
             try:
                 string.decode('utf-8').encode('gb18030')
             except:
                 try:
                    string = string.encode('gb18030') 
                 except:
                     pass
             return str(string)
         
         def get_cell(p, k, index):
             if k == "forloop.count":
                 return str(index + 1)
             if type(k) == list:
                 value = p
                 for key in k:
                     if hasattr(value, key):
                         value = getattr(value, key)
                         if callable(value): value = value()
                     else:
                         value = ""
                         break
                 return  d2g(value)
             else:
                 if hasattr(p, k):
                     value = getattr(p, k)
                     if callable(value): value = value()
                     return d2g(value)
                 else:
                     return ""
         
         start = int(start)
         len = int(len)    
         end = start + len   
         ls = self._get_list(request)
         count = ls.count()
         if end > count:
             end = count
             os['finished'] = "finished"
         print start,end,count
         
         filename = settings.MEDIA_ROOT + '/tst.dbf'
         
         ls = ls[start:end]
         if start == 0:
             dbfn = dbf_new()
             for field in self.export_columns:
                 field_name = u2g(field[0])
                 dbfn.add_field(field_name, 'C', 220)
             dbfn.write(filename)
         # test new dbf
        
         dbft = Dbf()
         dbft.openFile(filename, readOnly=0)
         dbft.reportOn()
         # add a record
         for l in ls:
             rec = DbfRecord(dbft)
             for index, field in enumerate(self.export_columns):
                 field_name = u2g(field[0])
                 value = get_cell(l, field[1], index)
                 rec[field_name] = value
             rec.store()
             #dbft.append(rec)
         dbft.close()
         os['ret'] = (end*100)/count
     return render_to_response_json(os)
コード例 #31
0
def ajax_get_unallot(request):
    if request.method == 'POST':
        dicts = get_unallot(request)
        return render_to_response_json(dicts)
    return HttpResponseNotFound()