Example #1
0
def index(request, template_name='wash/index.html'):
    img_list = IndexBanner.objects.filter(is_show=True).order_by("index")
    imgs, page_numbers = adjacent_paginator(img_list, page=request.GET.get('page', 1))
    return render(request, template_name, {
        'imgs': imgs,
        'page_numbers': page_numbers
    })
Example #2
0
def order(request, template_name="wash/manage/order.html"):
    """
    订单概览列表
    :param request:
    :param template_name:
    :return:
    """
    if request.method == "POST":
        next = request.POST.get('next', None)
        oid = request.POST.get('oid', None)
        cancel = request.POST.get('cancel', None)
        close = request.POST.get('close', None)
        verify_code = request.POST.get('verify_code', None)
        hour = request.POST.get('hour', None)
        if next:
            status = Order.status_next(oid, verify_code=verify_code, hour=hour)
            if not status:
                messages.error(request, u'验证码错误')
        if cancel:
            Order.status_back(oid)
        if close:
            Order.status_close(oid, is_buyer=False)

    order_list = Order.objects.all().order_by("-updated")
    orders, page_numbers = adjacent_paginator(order_list,
                                              page=request.GET.get('page', 1))

    return render(request, template_name, {
        'orders': orders,
        'page_number': page_numbers,
    })
Example #3
0
def bookmark(request, template_name='bookmark/bookmark.html'):
    """ 个人书签展示"""
    bookmark_list = BookMark.objects.filter(user=request.user)
    bookmarks, bookmark_page_numbers = adjacent_paginator(
        bookmark_list, page=request.GET.get('page'))

    return render(request, template_name, {'bookmarks': bookmark_list})
Example #4
0
def bookmark(request, template_name='bookmark/bookmark.html'):
    """ 个人书签展示"""
    bookmark_list = BookMark.objects.filter(user=request.user)
    bookmarks, bookmark_page_numbers = adjacent_paginator(bookmark_list, page=request.GET.get('page'))

    return render(request, template_name, {
        'bookmarks': bookmark_list
    })
Example #5
0
File: views.py Project: jacsice/hr
def property_detail(request, template_name='labour/company_property_detail.html'):
    """ 该公司资金详情"""

    year = request.GET.get('year', str(datetime.datetime.now().year))
    print year
    company_id = request.GET.get('id')
    try:
        company = CompanyProfile.objects.get(pk=company_id)
    except CompanyProfile.DoesNotExist:
        return HttpResponseRedirect(reverse('company.views.property'))

    if request.method == 'POST':
        company_id = request.POST.get('company_id', None)
        actual = request.POST.get('actual', None)
        date = request.POST.get('date', None)
        year = date.split(':')[0]
        month = date.split(':')[1]
        if company_id:
            record = MoneyRecord.objects.get(company__id=company_id, year=year, month=month)
            record.actual = actual
            record.balance = str(float(record.actual) - float(record.deserve))
            record.save()
            Data = {
                'result': True,
            }
            UserAction(
                user=request.user,
                ip=request.META['REMOTE_ADDR'],
                table_name='工资管理表',
                modified_type=1,
                modified_id=record.id,
                action='公司实到金额',
            ).save()
            data = u'操作员=%s, ModifyTable=MoneyRecord, action=公司实到金额, money=%s'  % (request.user.username, actual)
            INFO_LOG.info(data)

            return HttpResponse(json.dumps(Data))

    record_list = MoneyRecord.objects.filter(company=company, year=year)
    deserve_sum = 0.0
    actual_sum = 0.0
    for record in record_list:
        deserve_sum = deserve_sum + float(record.deserve)
        actual_sum = actual_sum + float(record.actual)
    
    balance_sum = actual_sum - deserve_sum
    records, page_numbers = adjacent_paginator(record_list, request.GET.get('page', 1))

    return render(request, template_name, {
        'records': records,
        'page_numbers': page_numbers,
        'months': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
        'deserve_sum': deserve_sum,
        'actual_sum': actual_sum,
        'balance_sum': balance_sum,
        'year': year,
        'company_id': company_id
    })
Example #6
0
def wash_img(request, template_name='wash/manage/index_imgs.html'):
    img_list = IndexBanner.objects.all().order_by("-updated")
    imgs, page_numbers = adjacent_paginator(img_list,
                                            page=request.GET.get('page', 1))

    return render(request, template_name, {
        'imgs': imgs,
        'page_numbers': page_numbers
    })
Example #7
0
def share(request, template_name='share/share_list.html'):
    """ 分享展示"""
    share_list = Share.objects.exclude(content='').order_by("-created")
    shares, page_numbers = adjacent_paginator(share_list, request.GET.get('page', 1), page_num=10)

    # 浏览最多
    clickes_maxs = Share.objects.exclude(content='').order_by('-read_sum')[:10]
    return render(request, template_name, {
        'shares': shares,
        'page_numbers': page_numbers,
        'clickes_maxs': clickes_maxs,
    })
Example #8
0
File: views.py Project: jacsice/hr
def employee_audit(request, template_name='manager/employee_audit.html'):
    """ 企业人员导入,人员审核"""
    if request.method == 'POST':
        employees_id = request.POST.get('employees_id')
        id_arr = employees_id.lstrip(',').split(',')
        EmployeeProfile.objects.filter(id__in=id_arr).update(is_active=True)
        return HttpResponse(json.dumps({'result': True}))

    empoyees_list = EmployeeProfile.objects.filter(is_active=False)
    empoyees, page_numbers = adjacent_paginator(empoyees_list, request.GET.get('page', 1))

    return render(request, template_name, {
        'employees': empoyees,
    })
Example #9
0
def wash_type(request, template_name="wash/manage/wash_type.html"):
    """
    洗刷类型清单
    :param request:
    :param template_name:
    :return:
    """
    wash_list = WashType.objects.all().order_by("-updated")
    wash_types, page_numbers = adjacent_paginator(wash_list,
                                                  page=request.GET.get(
                                                      'page', 1))
    return render(request, template_name, {
        'wash_types': wash_types,
        'page_numbers': page_numbers
    })
Example #10
0
def discount(request, template_name="wash/manage/discount.html"):
    """
    优惠券列表
    :param request:
    :param template_name:
    :return:
    """
    discounts_list = Discount.objects.all().order_by("-updated")
    discounts, page_numbers = adjacent_paginator(discounts_list,
                                                 page=request.GET.get(
                                                     'page', 1))

    return render(request, template_name, {
        'discounts': discounts,
        'page_numbers': page_numbers
    })
Example #11
0
File: views.py Project: jacsice/hr
def login_log(request, template_name='manager/login_log.html'):
    """ 登录日志查看"""
    user = request.user
    username = request.GET.get('username', '')

    if username == '':
        login_list = LoginLog.objects.all()
    else:
        user_list = User.objects.filter(username__contains=username)
        login_list = LoginLog.objects.filter(user__id__in=user_list)
    login_logs, page_numbers = adjacent_paginator(login_list, request.GET.get('page', 1))

    return render(request, template_name, {
        'user': user,
        'login_logs': login_logs,
        'page_numbers': page_numbers,
        'username': username,
    })
Example #12
0
File: views.py Project: jacsice/hr
def company_employees(request, company_id, template_name='manager/company_employees.html'):
    """ 公司人员信息-删除"""
    user = request.user
    name = request.GET.get('name', None)
    id_no = request.GET.get('id_no', None)
    health_card = request.GET.get('health_card', None)
    search = request.GET.get('search', None)
    search_dict = {}
    extra_kwargs = {}

    if search is not None:
        if name != '':
            search_dict['name__contains'] = name
        if id_no != '':
            search_dict['id_no__contains'] = id_no
        if health_card != '':
            search_dict['health_card__contains'] = health_card

        UserAction(
            user=user,
            ip=request.META['REMOTE_ADDR'],
            table_name='雇员信息表',
            modified_type=2,
            modified_id=None,
            action='搜索',
        ).save()
        data = u'user=%s, search_table=EmployeeProfile,  action=搜索, search_name=%s, search_id_no=%s, search_health_card=%s' % (user.username, name, id_no, health_card)
        INFO_LOG.info(data)

        employee_list = EmployeeProfile.objects.filter(company_id=company_id, is_deleted=0, **search_dict)
    else:
        employee_list = EmployeeProfile.objects.filter(company_id=company_id, is_deleted=0, **extra_kwargs)

    employees, page_numbers = adjacent_paginator(employee_list, request.GET.get('page', 1))

    return render(request, template_name, {
        'employees': employees,
        'user': request.user,
        'name': name,
        'id_no': id_no,
        'health_card': health_card,
    })
Example #13
0
def note(request, template_name='bookmark/notes.html'):
    """ 便签显示"""
    if request.method == "POST":
        if request.user.is_authenticated():
            if request.POST.get('note'):
                title = request.POST.get('note')
                if len(title) > 250:
                    messages.error(request, 'shout out内容过长!')
                else:
                    if not NotePad.objects.filter(title=title).exists():
                        note = NotePad(
                            user=request.user,
                            title=title,
                            updated=datetime.datetime.now(),
                        )
                        note.save()
                        # 对关注者发送邮件提醒
                        interests = SpecialCare.objects.filter(
                            care=request.user)
                        for interest in interests:
                            context = {
                                'username': note.user.username,
                                'action': '发布了新的状态:',
                                'content': note.title,
                            }
                            async_send_html_email.delay(
                                '新状态提醒', [
                                    interest.user.username,
                                ], 'new_action_template.html', context)
            else:
                messages.error(request, 'shout out不能为空')
        else:
            messages.info(request, '请登录后才能shout out')
    node_list = NotePad.objects.all().select_related().order_by("-updated")
    nodes, page_numbers = adjacent_paginator(node_list,
                                             request.GET.get('page', 1))
    return render(request, template_name, {
        'nodes': nodes,
        'pages': page_numbers,
    })
Example #14
0
def order_detail(request,
                 order_id='0',
                 template_name="wash/manage/order_detail.html"):
    """
    订单概览列表
    :param request:
    :param template_name:
    :return:
    """
    if request.method == "POST":
        pass
    if order_id == '0':
        detail_list = OrderDetail.objects.all().order_by('-created')
    else:
        detail_list = OrderDetail.objects.filter(order_id=order_id)

    details, page_numbers = adjacent_paginator(detail_list,
                                               page=request.GET.get('page', 1))

    return render(request, template_name, {
        'details': details,
    })
Example #15
0
File: views.py Project: jacsice/hr
def companys(request, template_name='manager/companys.html'):
    """ 公司信息-删除"""
    user = request.user

    if request.method == "POST":
        if request.is_ajax():
            try:
                company_id = request.POST.get("company_id")
                if not EmployeeProfile.objects.filter(company_id=company_id, is_deleted=0).exists():
                    company = CompanyProfile.objects.get(id=company_id)
                    company.is_deleted = 1
                    company.save()
                    UserAction(
                        user=request.user,
                        ip=request.META['REMOTE_ADDR'],
                        table_name='公司信息表',
                        modified_type=1,
                        modified_id=None,
                        action='删除',
                    ).save()
                    data = u'user=%s, delete_table=CompanyProfile,  action=删除, \
                             delete_name=%s, delete_id=%s' % (user.username, company.name, company.id)
                    INFO_LOG.info(data)
                    return HttpResponse(json.dumps({"result": True, "msg": "删除成功"}))
                else:
                    return HttpResponse(json.dumps({"result": False, "msg": "请先删除全部员工信息再删除公司"}))
            except CompanyProfile.DoesNotExist:
                pass

    company_list = CompanyProfile.objects.filter(is_deleted=0)

    companys, page_numbers = adjacent_paginator(company_list, request.GET.get('page', 1))

    return render(request, template_name, {
        'companys': companys,
        'page_numbers': page_numbers,
    })
Example #16
0
def note(request, template_name='bookmark/notes.html'):
    """ 便签显示"""
    if request.method == "POST":
        if request.user.is_authenticated():
            if request.POST.get('note'):
                title = request.POST.get('note')
                if len(title) > 250:
                    messages.error(request, 'shout out内容过长!')
                else:
                    if not NotePad.objects.filter(title=title).exists():
                        note = NotePad(
                            user=request.user,
                            title=title,
                            updated=datetime.datetime.now(),
                        )
                        note.save()
                        # 对关注者发送邮件提醒
                        interests = SpecialCare.objects.filter(care=request.user)
                        for interest in interests:
                            context = {
                                'username': note.user.username,
                                'action': '发布了新的状态:',
                                'content': note.title,
                            }
                            async_send_html_email.delay('新状态提醒', [interest.user.username,], 'new_action_template.html', context)
            else:
                messages.error(request, 'shout out不能为空')
        else:
            messages.info(request, '请登录后才能shout out')
    node_list = NotePad.objects.all().select_related().order_by("-updated")
    nodes, page_numbers = adjacent_paginator(node_list, request.GET.get('page', 1))
    return render(request, template_name, {
        'nodes': nodes,
        'pages': page_numbers,
    })
        
Example #17
0
File: views.py Project: jacsice/hr
def update(request, template_name="manager/index.html"):
    """ 账号管理"""
    user = request.user
    update_type = request.POST.get('update_type', None)
    username = request.GET.get("username", '')

    if request.method == 'POST':
        user_id = request.POST.get('user_id')
        try:
            update_user = User.objects.get(id=user_id)
        except User.DoesNotExist:
            return HttpResponse(json.dumps('user_not_exist'))

        if update_type == 'reset_pwd':
            update_user.set_password('111111')
            update_user.save()
            Data = {
                'result': True,
                'name': update_user.username,
            }
            UserAction(
                user=request.user,
                ip=request.META['REMOTE_ADDR'],
                table_name='User',
                modified_type=0,
                modified_id=update_user.id,
                action='重置密码',
            ).save()
            data = u'user=%s, ModifyTable=User, action=重置密码, modified_username=%s'  % (request.user.username, update_user.username)
            INFO_LOG.info(data)
            return HttpResponse(json.dumps(Data))
        elif update_type == 'disabled_user':
            update_user.is_active = False
            update_user.save()
            Data = {
                'result': True,
                'name': update_user.username,
            }
            UserAction(
                user=request.user,
                ip=request.META['REMOTE_ADDR'],
                table_name='User',
                modified_type=0,
                modified_id=update_user.id,
                action='禁止用户',
            ).save()
            data = u'user=%s, ModifyTable=User, action=禁止用户, modified_username=%s'  % (request.user.username, update_user.username)
            INFO_LOG.info(data)
            return HttpResponse(json.dumps(Data))
        elif update_type == 'del_user':
            try:
                account = UserProfile.objects.get(user=update_user)
                if account.level == 1:
                    company = CompanyProfile.objects.get(profile=account)
                    company.profile = None
                    company.save()
            except Exception:
                pass
            
            update_user.delete()
            Data = {
                'result': True,
                'name': update_user.username,
            }
            UserAction(
                user=request.user,
                ip=request.META['REMOTE_ADDR'],
                table_name='User',
                modified_type=0,
                modified_id=update_user.id,
                action='删除用户',
            ).save()
            data = u'user=%s, ModifyTable=User, action=删除用户, modified_username=%s'  % (request.user.username, update_user.username)
            INFO_LOG.info(data)
            return HttpResponse(json.dumps(Data))
        elif update_type == 'active_user':
            update_user.is_active = True
            update_user.save()
            Data = {
                'result': True,
                'name': update_user.username,
            }
            UserAction(
                user=request.user,
                ip=request.META['REMOTE_ADDR'],
                table_name='User',
                modified_type=0,
                modified_id=update_user.id,
                action='解禁用户',
            ).save()
            data = u'user=%s, ModifyTable=User, action=解禁用户, modified_username=%s'  % (request.user.username, update_user.username)
            INFO_LOG.info(data)
        return HttpResponse(json.dumps(Data))

    self_id = user.id
    if username is None:
        user_list = User.objects.all().exclude(id=self_id)
    else:
        user_list = User.objects.filter(username__contains=username).exclude(id=self_id)

    users, page_numbers = adjacent_paginator(user_list, request.GET.get('page', 1))

    return render(request, template_name, {
        'user': user,
        'users': users,
        'page_numbers': page_numbers,
    })
Example #18
0
File: views.py Project: jacsice/hr
def property(request, template_name='labour/company_property.html'):
    """ 企业资金管理"""
    filter_company = {}
    if request.user.account.level == 1:
        filter_company['company'] = request.user.account.profile

    today = datetime.datetime.now()
    year = today.year
    month = today.month

    if request.method == 'POST':
        company_id = request.POST.get('company_id', None)
        actual = request.POST.get('actual', None)
        if company_id:
            record = MoneyRecord.objects.get(company__id=company_id, year=year, month=month)
            record.actual = actual
            record.balance = str(float(record.actual) - float(record.deserve))
            record.save()
            Data = {
                'result': True,
            }
            UserAction(
                user=request.user,
                ip=request.META['REMOTE_ADDR'],
                table_name='工资管理表',
                modified_type=1,
                modified_id=record.id,
                action='公司实到金额',
            ).save()
            data = u'操作员=%s, ModifyTable=MoneyRecord, action=公司实到金额, money=%s'  % (request.user.username, actual)
            INFO_LOG.info(data)

            return HttpResponse(json.dumps(Data))

    else:
        company_list = CompanyProfile.objects.all()
        for company in company_list:
            if not MoneyRecord.objects.filter(year=year, month=month, company=company).exists():

                employee_count = EmployeeProfile.objects.filter(company=company).count()
                contracts = Contract.objects.filter(employee__company=company)
                employee_salary_sum = 0.0
                for contract in contracts:
                    employee_salary_sum = employee_salary_sum + float(contract.real_salary)
                deserve = float(company.service_cost) * employee_count + employee_salary_sum
                actual = 0.0
                balance = 0.0
                #history_balance = MoneyRecord.objects.filter(company=company, year=year)
                #for history in history_balance:
                #    balance = balance + float(history.balance)

                balance = balance + actual - deserve
                MoneyRecord(
                    company=company,
                    deserve=str(deserve),
                    actual=str(actual),
                    balance=str(balance),
                    year=year,
                    month=month,
                ).save()

    money_list = MoneyRecord.objects.filter(year=year, month=month, **filter_company)

    companys, page_numbers = adjacent_paginator(money_list, request.GET.get('page', 1))

    return render(request, template_name, {
        'companys': companys,
        'page_numbers': page_numbers,
    })
Example #19
0
File: views.py Project: jacsice/hr
def insurance(request, template_name='labour/company_insurance_search.html'):
    """ 保险搜索"""
    search_args = {}
    filter_company = {}
    if request.user.account.level == 1:
        filter_company['pk'] = request.user.account.profile.id
        search_args['company__id'] = request.user.account.profile.id

    name = request.GET.get('name', '')
    id_no = request.GET.get('id_no', '')
    company_id = request.GET.get('company_id', '')
    export = request.GET.get('export_s', None)
    if name:
        search_args['name__contains'] = name
    if id_no:
        search_args['id_no__contains'] = id_no
    if company_id:
        search_args['company__id'] = company_id

    try:
        int(company_id)
    except:
        company_id = 0

    # 批量修改工资发放时间
    if request.method == 'POST':
        change_date = request.POST.get("change_date", None)
        select_ids = request.POST.get("select_ids", None)
        insurance_type = request.POST.get('insurance_type', None)

        if change_date:
            id_attr = select_ids.split(',')[1:]
            employees = EmployeeProfile.objects.filter(id__in=id_attr)
            for employee in employees:
                if insurance_type == 'health':
                    employee.health_payment_end = change_date
                elif insurance_type == 'endowment':
                    employee.endowment_payment_end = change_date
                elif insurance_type == 'born':
                    employee.born_payment_end = change_date
                elif insurance_type == 'industrial':
                    employee.industrial_payment_end = change_date
                elif insurance_type == 'unemployed':
                    employee.unemployed_payment_end = change_date
                elif insurance_type == 'reserved':
                    employee.reserved_payment_end = change_date
                employee.save()
                UserAction(
                    user=request.user,
                    ip=request.META['REMOTE_ADDR'],
                    table_name='员工信息表',
                    modified_type=3,
                    modified_id=employee.id,
                    action=u'%s保险截止时间修改' % insurance_type,
                ).save()
                data = u'操作员=%s, ModifyTable=EmployeeProfile, action=%s保险截止时间修改, modified_username=%s, company_name=%s'  % (request.user.username, insurance_type, employee.name, employee.company.name)
                INFO_LOG.info(data)

    employee_list = EmployeeProfile.objects.filter(company__isnull=False, **search_args)
    companys = CompanyProfile.objects.filter(**filter_company)
    employees, page_numbers = adjacent_paginator(employee_list, request.GET.get('page', 1))

    # 导出
    if export:
        book = xlwt.Workbook(encoding='utf-8')
        ws = book.add_sheet('保险管理信息')
        style = xlwt.XFStyle()
        font = xlwt.Font()
        font.name = 'SimSun'
        style.font = font

        x_count = 0
        y_count = 0

        ws.write(x_count, y_count, '姓名', style)
        y_count += 1
        ws.write(x_count, y_count, '用工单位', style)
        y_count += 1
        ws.write(x_count, y_count, '养老保险截止时间', style)
        y_count += 1
        ws.write(x_count, y_count, '医疗保险截止时间', style)
        y_count += 1
        ws.write(x_count, y_count, '生育保险截止时间', style)
        y_count += 1
        ws.write(x_count, y_count, '工伤保险截止时间', style)
        y_count += 1
        ws.write(x_count, y_count, '失业保险截止时间', style)
        y_count += 1
        ws.write(x_count, y_count, '公积金截止时间', style)
        y_count += 1

        x_count += 1
        y_count = 0

        for employee in employees:
            ws.write(x_count, y_count, employee.name, style)
            y_count += 1
            ws.write(x_count, y_count, employee.company.name, style)
            y_count += 1
            ws.write(x_count, y_count, str(employee.endowment_payment_end)[:10], style)
            y_count += 1
            ws.write(x_count, y_count, str(employee.health_payment_end)[:10], style)
            y_count += 1
            ws.write(x_count, y_count, str(employee.born_payment_end)[:10], style)
            y_count += 1
            ws.write(x_count, y_count, str(employee.industrial_payment_end)[:10], style)
            y_count += 1
            ws.write(x_count, y_count, str(employee.unemployed_payment_end)[:10], style)
            y_count += 1
            ws.write(x_count, y_count, str(employee.reserved_payment_end)[:10], style)
            y_count = 0
            x_count += 1
            
        response = HttpResponse(mimetype='application/vnd.ms-excel')
        response['Content-Disposition'] = 'attachment; filename=保险管理信息.xls'
        book.save(response)
        UserAction(
            user=request.user,
            ip=request.META['REMOTE_ADDR'],
            table_name='User',
            modified_type=3,
            modified_id=None,
            action='工资导出',
        ).save()
        data = u'操作者=%s, ModifyTable=Contract, action=工资导出'  % (request.user.username)
        INFO_LOG.info(data)

        return response

    return render(request, template_name, {
        'employees': employees,
        'page_numbers': page_numbers,
        'companys': companys,
        'name': name,
        'id_no': id_no,
        'company_id': int(company_id),
    })
Example #20
0
File: views.py Project: jacsice/hr
def user_action(request, template_name='manager/action_log.html'):
    """ 用户行为记录"""
    user = request.user
    export = request.GET.get('export', None)

    action_list = UserAction.objects.all().order_by("-created")
    user_actions, page_numbers = adjacent_paginator(action_list, request.GET.get('page', 1))

    if export:
        book = xlwt.Workbook(encoding='utf-8')
        ws = book.add_sheet('导出职员信息')
        style = xlwt.XFStyle()
        font = xlwt.Font()
        font.name = 'SimSun'
        style.font = font

        x_count = 0
        y_count = 0

        ws.write(x_count, y_count, '操作IP', style)
        y_count += 1
        ws.write(x_count, y_count, '操作账号', style)
        y_count += 1
        ws.write(x_count, y_count, '操作者姓名', style)
        y_count += 1
        ws.write(x_count, y_count, '操作内容', style)
        y_count += 1
        ws.write(x_count, y_count, '操作时间', style)
        y_count += 1

        y_count = 0
        x_count += 1
        for action in action_list:
            ws.write(x_count, y_count, action.ip, style)
            y_count += 1
            ws.write(x_count, y_count, action.user.username, style)
            y_count += 1
            ws.write(x_count, y_count, action.user.account.name, style)
            y_count += 1
            ws.write(x_count, y_count, "%s--%s" % (action.table_name, action.action), style)
            y_count += 1
            ws.write(x_count, y_count, str(action.created)[:10], style)
            y_count += 1

            x_count += 1
            y_count = 0

        response = HttpResponse(mimetype='application/vnd.ms-excel')
        response['Content-Disposition'] = 'attachment; filename=用户操作记录表.xls'
        book.save(response)

        UserAction(
            user=request.user,
            ip=request.META['REMOTE_ADDR'],
            table_name='用户行为信息表',
            modified_type=2,
            modified_id=None,
            action='导出',
        ).save()
        data = u'user=%s, Export_table=UserAction, action=导出' % (request.user.username)
        INFO_LOG.info(data)
        return response

    return render(request, template_name, {
        'user': user,
        'actions': user_actions,
        'page_numbers': page_numbers,
    })