コード例 #1
0
ファイル: ProductManagement.py プロジェクト: sauditore/FCRM
def view_equipment_state_list(request):
    if not check_ajax(request):
        return render(request, 'equipment/state_list/StateListManagement.html', {'has_nav': True, 'get': request.GET})
    fields = ['pk', 'name', 'description', 'ext']
    order = get_full_sort(request.GET, fields)
    states = search_equipment_state_list(request.GET).values(*fields).order_by(order)
    res = get_paginate(states, request.GET.get('current'), request.GET.get('rowCount'))
    return HttpResponse(res)
コード例 #2
0
ファイル: ProductManagement.py プロジェクト: sauditore/FCRM
def view_equipment_type(request):
    if not check_ajax(request):
        return render(request, 'equipment/equipment_type/TypeManagement.html', {'has_nav': True})
    fields = ['pk', 'ext', 'name']
    sort = get_full_sort(request.GET, fields)
    res = search_equipment_type(request.GET).values(*fields).order_by(sort)
    p = get_paginate(res, request.GET.get('current'), request.GET.get('rowCount'))
    return HttpResponse(p)
コード例 #3
0
ファイル: ProductManagement.py プロジェクト: sauditore/FCRM
def view_equipment_code(request):
    if not check_ajax(request):
        return render(request, 'equipment/codes/CodeManagement.html', {'has_nav': False})
    fields = ['pk', 'ext', 'code', 'sell_price', 'used_sell_price', 'name']
    sort = get_full_sort(request.GET, fields)
    ec = search_equipment_code(request.GET).values(*fields).order_by(sort)
    rs = get_paginate(ec, request.GET.get('current'), request.GET.get("rowCount"))
    return HttpResponse(rs)
コード例 #4
0
ファイル: ProductManagement.py プロジェクト: sauditore/FCRM
def equipment_operation(request):
    equipment = get_equipment_ext(request.GET.get('pk'))
    if not equipment:
        return send_error(request, _('invalid item'))
    data = equipment.fk_involved_equipment_equipment.all().values('pk', 'ext', 'item_text',
                                                                  'order__personnel__first_name',
                                                                  'order__request_date')
    res = get_paginate(data, request.GET.get('current'), request.GET.get('rowCount'))
    return HttpResponse(res)
コード例 #5
0
ファイル: ProductManagement.py プロジェクト: sauditore/FCRM
def view_equipment_group(request):
    if not check_ajax(request):
        return render(request, 'equipment/group/GroupManagement.html', {'has_nav': False})
    fields = ['name', 'pk', 'description', 'ext', 'equipment_type__name', 'remain_items', 'used_remain_items',
              'code__code']
    sort = get_full_sort(request.GET, fields)
    groups = search_equipment_group(request.GET).values(*fields).order_by(sort)
    rs = get_paginate(groups, request.GET.get('current'), request.GET.get('rowCount'))
    return HttpResponse(rs)
コード例 #6
0
ファイル: ProductManagement.py プロジェクト: sauditore/FCRM
def view_equipment(request):
    if not check_ajax(request):
        groups = EquipmentGroup.objects.all()
        return render(request, 'equipment/ViewEquipment.html', {'has_nav': True, 'equipment_groups': groups})
    fields = ['ext', 'description', 'group__name', 'last_update',
              'is_involved', 'is_used', 'pk', 'serial', 'fk_equipment_state_equipment__state__name']
    order = get_full_sort(request.GET, fields)
    res = search_equipment(request.GET).values(*fields).order_by(order)
    x = get_paginate(res, request.GET.get('current'), request.GET.get('rowCount'))
    return HttpResponse(x)
コード例 #7
0
ファイル: ProductManagement.py プロジェクト: sauditore/FCRM
def get_type_sub_group(request):
    ext = get_uuid(request.GET.get('pk'))
    if not ext:
        return send_error(request, _('invalid item'))
    fields = ['ext', 'pk', 'name', 'remain_items', 'used_remain_items',
              'code__sell_price', 'code__used_sell_price', 'code__code']
    sort = get_full_sort(request.GET, fields)
    groups = EquipmentGroup.objects.filter(Q(remain_items__gt=0) | Q(used_remain_items__gt=0),
                                           equipment_type__ext=ext).values(*fields).order_by(sort)
    return HttpResponse(get_paginate(groups, request.GET.get('current'), request.GET.get('rowCount')))
コード例 #8
0
ファイル: ProductManagement.py プロジェクト: sauditore/FCRM
def view_equipment_order_select(request):
    order = get_equipment_order_item_ext(request.GET.get('pk'))
    if not order:
        return send_error(request, _('invalid item'))
    fields = ['pk', 'ext', 'is_used', 'description', 'group__name', 'serial']
    sort = get_full_sort(request.GET, fields)
    init_eq = get_equipment_by_group_pk(order.equipment_id).filter(is_used=order.is_used)
    res = search_equipment(request.GET, init_eq).values(*fields).order_by(sort)
    x = get_paginate(res, request.GET.get('current'), request.GET.get('rowCount'),
                     {'is_borrow': order.order.is_borrow})
    return HttpResponse(x)
コード例 #9
0
def get_send_history(request):
    dm = DedicatedInvoiceManager(request)
    dm.set_get()
    try:
        res = dm.get_send_history(True).values(
            'pk', 'user__first_name', 'change_date', 'receiver',
            'send_type__name').order_by('-pk')
        x = get_paginate(res, 1, -1)
        return HttpResponse(x)
    except RequestProcessException as e:
        return send_error(request, e.message)
コード例 #10
0
ファイル: CRMUserManager.py プロジェクト: sauditore/FCRM
def view_reseller_profit_change(request):
    rsl = get_reseller(request)
    if not rsl:
        return send_error(request, _('invalid user'))
    fields = ['pk', 'update_date', 'new_value', 'old_value']
    sort = get_full_sort(request.GET, fields)
    data = ResellerProfitHistory.objects.filter(user_id=rsl.pk).values(
        *fields).order_by(sort)
    x = get_paginate(data, request.GET.get('current'),
                     request.GET.get('rowCount'))
    return HttpResponse(x)
コード例 #11
0
def view_transport(request):
    if not check_ajax(request):
        return render(request, 'transportation/TransportMain.html',
                      {'has_nav': True})
    data = search_transports(request.GET,
                             None).values('pk', 'name', 'description',
                                          'last_update',
                                          'transport_type__name', 'external')
    res = get_paginate(data, request.GET.get('current'),
                       request.GET.get('rowCount'))
    return HttpResponse(res)
コード例 #12
0
def get_state_history(request):
    dm = DedicatedInvoiceManager(request)
    dm.set_get()
    try:
        res = dm.get_state_change().values('pk', 'state', 'update_time',
                                           'extra_data',
                                           'user__first_name').order_by('-pk')
        x = get_paginate(res, 1, -1)
        return HttpResponse(x)
    except RequestProcessException as e:
        return send_error(request, e.message)
コード例 #13
0
def view_charge_packages(request):
    if not check_ajax(request):
        return render(request, 'finance/debit/ChargePackageManagement.html',
                      {'groups': Group.objects.all()})
    name = get_string(request.GET.get('searchPhrase'))
    fields = ['pk', 'name', 'ext', 'amount']
    sort = get_full_sort(request.GET, fields)
    packs = PricePackage.objects.filter(is_deleted=False)
    if name:
        packs = packs.filter(name__icontains=name)
    packs = packs.values(*fields).order_by(sort)
    res = get_paginate(packs, request.GET.get('current'),
                       request.GET.get('rowCount'))
    return HttpResponse(res)
コード例 #14
0
ファイル: TowerManagement.py プロジェクト: sauditore/FCRM
def view_towers_json(request):
    towers = search_tower(
        request.GET).annotate(users=Count('fk_user_tower_tower__user'))
    sort = get_sort(request.GET)
    data_fields = ('pk', 'name', 'description', 'address', 'users')
    if sort[0]:
        if sort[0] in data_fields:
            if 'desc' in sort[1][0]:
                order = '-%s' % sort[0]
            else:
                order = sort[0]
            towers = towers.order_by(order)
    return HttpResponse(
        get_paginate(towers.values(*data_fields), request.GET.get('current'),
                     request.GET.get('rowCount')))
コード例 #15
0
ファイル: CRMUserManager.py プロジェクト: sauditore/FCRM
def view_users(request):
    user_type = get_integer(request.GET.get('t'))
    if not user_type:
        return send_error(request, _('invalid user'))
    if not check_ajax(request):
        return render(request, 'user/ViewUsers.html', {
            'has_nav': False,
            'user_type': user_type
        })
    users = UserProfile.objects.all()
    sp = get_string(request.GET.get('searchPhrase'))
    if sp:
        users = users.filter(user__first_name__icontains=sp)
    if user_type == 1 and request.user.has_perm('CRM.view_admins'):  # admins
        users = users.filter(user__is_staff=True, user__is_superuser=True)
    elif user_type == 2 and request.user.has_perm(
            'CRM.view_personnel'):  # personnel but not resellers!
        users = users.filter(user__is_staff=True,
                             user__is_superuser=False,
                             user__fk_reseller_profile_user__isnull=True)
    elif user_type == 3 and request.user.has_perm('CRM.view_resellers') and not \
            request.user.fk_user_profile_user.is_reseller:    # Resellers
        users = users.filter(is_reseller=True)
    elif user_type == 4 and request.user.has_perm(
            'CRM.view_normal_users'):  # Internet users
        users = users.filter(user__is_staff=False, user__is_superuser=False)
    elif user_type == 5 and request.user.has_perm('CRM.view_dedicated_user'):
        users = users.filter(is_dedicated=True)
    elif user_type == 6:
        users = users.filter(user__fk_user_owner_user__owner=request.user.pk)
    elif user_type == 7 and request.user.has_perm('CRM.view_visitors'):
        users = users.filter(is_visitor=True)
    if request.RSL_ID is not None:
        users = users.filter(user__fk_user_owner_user__owner=request.RSL_ID)
    fields = [
        'address', 'user__pk', 'user__first_name', 'user__username',
        'user__email', 'gender', 'mobile', 'telephone', 'user__is_active',
        'user__fk_ibs_user_info_user__ibs_uid',
        'user__fk_user_debit_user__amount',
        'user__fk_user_current_service_user__service__name',
        'user__fk_user_current_service_user__expire_date'
    ]
    sort = get_full_sort(request.GET, fields)
    users = users.values(*fields).distinct().order_by(sort)
    res = get_paginate(users, request.GET.get('current'),
                       request.GET.get('rowCount'))
    return HttpResponse(res)
コード例 #16
0
ファイル: PopSiteManagement.py プロジェクト: sauditore/FCRM
def view_pop_sites(request):
    if not check_ajax(request):
        return render(request, 'pop_site/PopSiteManagement.html', {
            'request': request,
            'has_nav': True
        })
    pops = PopSite.objects.filter(is_deleted=False)
    name = get_string(request.GET.get('searchPhrase'))
    pk = get_uuid(request.GET.get('pk'))
    if name:
        pops = pops.filter(name__icontains=name)
    if pk:
        pops = pops.filter(pk=pk)
    vls = pops.values('pk', 'name', 'description')
    res = get_paginate(vls, request.GET.get('current'),
                       request.GET.get('rowCount'))
    return HttpResponse(res)
コード例 #17
0
ファイル: DashboardManagement.py プロジェクト: sauditore/FCRM
def view_dashboard(request):
    ia = check_ajax(request)
    if request.method == 'GET':
        if not ia:
            # cud = get_current_user_dashboard(request.user)
            cud = Dashboard.objects.all()
            senders = cud.values_list('sender', flat=True)
            senders = User.objects.filter(pk__in=senders).distinct()
            groups = Group.objects.all()
            titles = Dashboard.objects.values('title').distinct()
            return render(
                request, 'dashboard/UserDashboard.html', {
                    'has_nav': True,
                    'get': request.GET,
                    'senders': senders,
                    'groups': groups,
                    'url_params': request.GET.urlencode,
                    'titles': titles,
                    'pre_search': request.GET.urlencode,
                    'uploader_address': '/dashboard/upload/'
                })
        # dashboard = deepcopy(dashboard_x)
        target_user_ibs = request.GET.get('tu')
        target_user_id = request.GET.get('tiu')
        # report_edit = request.GET.get('re')
        is_single_user = False
        upk = None
        if validate_integer(target_user_ibs):
            if IBSUserInfo.objects.filter(ibs_uid=target_user_ibs).exists():
                is_single_user = True
                upk = IBSUserInfo.objects.get(ibs_uid=target_user_ibs).user_id
        elif validate_integer(target_user_id):
            if User.objects.filter(pk=target_user_id).exists():
                is_single_user = True
                upk = int(target_user_id)
                # summery = __create_job_summery__(detail_to_show)
        if is_single_user:
            dashboard_x = Dashboard.objects.filter(target_user_id=upk)
        else:
            dashboard_x = Dashboard.objects.all()
            # dashboard_x = get_current_user_dashboard(request.user)
        dashboard2 = __search_dashboard__(request.GET, dashboard_x)
        sort = get_sort(request.GET)
        if ia:
            fields = [
                'pk', 'title', 'sender__first_name', 'group__name',
                'reader__username', 'target_user__first_name', 'create_date',
                'done_date', 'last_state', 'target_text',
                'fk_calendar_dashboard__priority',
                'fk_dashboard_current_group_dashboard__group__name'
            ]
            order = '-create_date'
            if sort[0]:
                if sort[0] in fields:
                    if 'desc' in sort[1][0]:
                        order = '-%s' % sort[0]
                    else:
                        order = sort[0]
            res = get_paginate(
                dashboard2.order_by(order).values(*fields),
                request.GET.get('current'), request.GET.get('rowCount'), {
                    'single_user': is_single_user,
                    'upk': upk
                })
            return HttpResponse(res)
        return render(request, 'dashboard/UserDashboard.html')
    else:
        return render(request, 'errors/AccessDenied.html')
コード例 #18
0
ファイル: ServiceManager.py プロジェクト: sauditore/FCRM
 def get_all(self):
     sort = get_full_sort(self.req.GET, self.fields)
     x = self.search().values(*self.fields).order_by(sort)
     return get_paginate(x, self.req.GET.get('current'),
                         self.req.GET.get('rowCount'))
コード例 #19
0
 def paginate(self, l):
     rex = get_paginate(l, self.get_int('current', default=1),
                        self.get_int('rowCount', default=10))
     return rex