Пример #1
0
def phonecab_login(request):
    if request.user.is_authenticated():
        return redirect("/phonecab/", RequestContext(request, {}))

    print "Entering phonecab_login..."
    if request.POST:
        username = request.POST.get("username")
        password = request.POST.get("password")

        user = authenticate(username=username, password=password)
        if user is not None:
            if user.is_active:
                login(request, user)
                # dobbiamo verificare se utente ha privilegi cdr
                privs = Acl.get_permissions_for_user(user.id, user.is_staff)
                if privs["priv_cdr"] > 0:
                    return redirect("/phonecab/", RequestContext(request, {}))
                return redirect("/phoneusers/", RequestContext(request, {}))
            else:
                return render_to_response(
                    "registration/login.html", RequestContext(request, {"error": True, "err_msg": "Utente non attivo"})
                )
        else:
            return render_to_response(
                "registration/login.html",
                RequestContext(request, {"error": True, "err_msg": "Le credenziali inserite non sono corrette."}),
            )
    else:
        return render_to_response("registration/login.html", RequestContext(request, {}))
Пример #2
0
def phonecab_realtime(request):
    """Show current calls"""
    import time
    import datetime

    variables = Acl.get_permissions_for_user(request.user.id, request.user.is_staff)
    variables["actual_nightmode"] = Helper.get_nightmode()

    return render_to_response("realtime.html", RequestContext(request, variables))
Пример #3
0
def __phonecab_home(request):
    """Show main page"""
    user = request.user
    variables = Acl.get_permissions_for_user(user.id, user.is_staff)
    variables["user"] = user
    variables["realtime_table"] = phonecab_realtime(request)
    variables["custom_msg"] = custom_msg

    return render_to_response("base.html", RequestContext(request, variables))
Пример #4
0
def profile_home(request):
    d = request.GET.dict()
    user = request.user
    variables = Acl.get_permissions_for_user(user.id, user.is_staff)
    variables['profiles'] = profile_items(request)
    variables['d'] = d

    return render_to_response(
        'profiles/home.html', RequestContext(request, variables))
Пример #5
0
def archive_phoneuser_home(request):
    """Phoneusers page"""
    import time
    d = request.GET.dict()
    user = request.user
    variables = Acl.get_permissions_for_user(user.id, user.is_staff)
    variables['phoneusers'] = archive_phoneuser_items(request)
    variables['d'] = d

    return render_to_response(
        'archives/phoneusers/home.html', RequestContext(request, variables))
Пример #6
0
def profile_edit(request):
    variables = {}
    profile_id = int(request.POST.get("id", "0"))

    if profile_id:
        try:
            profile = User.objects.get(pk=profile_id)
            variables = Acl.get_permissions_for_user(profile.id, profile.is_staff)
            variables['profile'] = profile
        except ObjectDoesNotExist:
            raise Http404

    return render_to_response('profiles/profile.html', variables)
Пример #7
0
def phoneuser_save(request):
    """Save or update user"""
    phoneuser_id = int(request.POST.get("data[phoneuser_id]", "0"))
    enabled = int(request.POST.get("data[enabled]", "0"))
    first_name = request.POST.get("data[first_name]", "")
    last_name = request.POST.get("data[last_name]", "")
    serial_no = request.POST.get("data[serial_no]", "")
    pincode = request.POST.get("data[pincode]", "")
    four_bis_limited = int(request.POST.get("data[four_bis_limited]", "0"))
    listening_enabled = int(request.POST.get("data[listening_enabled]", "0"))
    recording_enabled = int(request.POST.get("data[recording_enabled]", "0"))
    language = request.POST.get("data[language]", "")
    vipaccount = int(request.POST.get("data[vipaccount]", "0"))

    variables = Acl.get_permissions_for_user(request.user.id, request.user.is_staff)
    is_new = False
    action = "Creazione"
    try:
        if phoneuser_id:
            phoneuser = PhoneUser.objects.get(pk=phoneuser_id)
            action = "Modifica"
        else:
            phoneuser = PhoneUser()
            is_new = True

        phoneuser.enabled = enabled
        phoneuser.first_name = first_name.title()
        phoneuser.last_name = last_name.title()
        phoneuser.serial_no = serial_no
        phoneuser.pincode = pincode
        phoneuser.four_bis_limited = four_bis_limited
        phoneuser.listening_enabled = listening_enabled
        phoneuser.recording_enabled = recording_enabled
        phoneuser.language = language
        phoneuser.vipaccount = vipaccount

        phoneuser.save()

        # log azione
        audit = Audit()
        audit.log(user=request.user,
            what="%s anagrafica: %s" % (action, phoneuser))
        
        if is_new:
            return phoneuser_items(request)
        variables['phoneuser'] = phoneuser
        return render_to_response(
            'phoneusers/phoneuser_data.html', RequestContext(request, variables))
    except Exception as e:
        return HttpResponse(status=400, content=json.dumps({'err_msg': format(e)}), content_type='application/json')
Пример #8
0
def phoneuser_data(request, phoneuser_id="0"):
    """Recupera e visualizza le informazioni sul phoneuser - pannello anagrafica"""
    variables = Acl.get_permissions_for_user(request.user.id, request.user.is_staff) # TODO solo priv_anagrafica
    if int(phoneuser_id):
        try:
            phoneuser = PhoneUser.objects.get(pk=phoneuser_id)
        except:
            raise Http404
    variables['phoneuser'] = phoneuser
    if request.is_ajax():
        return render_to_response(
            'phoneusers/phoneuser_data.html', RequestContext(request, variables))
    return render_to_string(
        'phoneusers/phoneuser_data.html', RequestContext(request, variables))
Пример #9
0
def archive_phoneuser_data(request, archived_phoneuser_id):
    """Recupera e visualizza le informazioni sul phoneuser archiviato"""
    variables = Acl.get_permissions_for_user(request.user.id, request.user.is_staff)
    if int(archived_phoneuser_id):
        try:
            phoneuser = ArchivedPhoneUser.objects.get(pk=archived_phoneuser_id)
        except:
            raise Http404
    variables['phoneuser'] = phoneuser
    if request.is_ajax():
        return render_to_response(
            'archives/phoneusers/phoneuser.html', RequestContext(request, variables))
    return render_to_string(
        'archives/phoneusers/phoneuser.html', RequestContext(request, variables))
Пример #10
0
def archive_phoneuser_view(request, archived_phoneuser_id):
    """Visualizza la pagina di anagrafica"""
    archived_phoneuser_id = int(archived_phoneuser_id)
    if not archived_phoneuser_id:
        raise Http404

    variables = Acl.get_permissions_for_user(request.user.id, request.user.is_staff)
    phoneuser = archive_phoneuser_data(request, archived_phoneuser_id)
    whitelists = archive_whitelist_items(request, archived_phoneuser_id)
    credits = archive_credit_items(request, archived_phoneuser_id)
   
    variables['phoneuser'] = phoneuser
    variables['whitelists'] = whitelists
    variables['credits'] = credits
    return render_to_response('archives/phoneusers/page.html',
        RequestContext(request,variables))
Пример #11
0
def phoneuser_edit(request):
    """Gestisce sia il new che l'edit"""
    variables = Acl.get_permissions_for_user(request.user.id, request.user.is_staff)
    phoneuser_id = request.POST.get("id", "0")
    if int(phoneuser_id):
        try:
            phoneuser = PhoneUser.objects.get(pk=phoneuser_id)
        except:
            raise Http404
    else:
        phoneuser = PhoneUser
        phoneuser.id = 0

    variables['phoneuser'] = phoneuser
    return render_to_response('phoneusers/phoneuser.html',
        RequestContext(request,variables))
Пример #12
0
def archive_credit_items(request, archived_phoneuser_id):
    archived_phoneuser_id = int(archived_phoneuser_id)
    archivedphoneuser = ArchivedPhoneUser.objects.get(pk=archived_phoneuser_id)
    user = request.user
    variables = Acl.get_permissions_for_user(user.id, user.is_staff)
    credits = ArchivedCredit.objects.filter(
        archived_phoneuser_id=archived_phoneuser_id).order_by('-recharge_date')

    variables['items'] = credits
    variables['balance'] = archivedphoneuser.balance
    variables['archived_phoneuser_id'] = archived_phoneuser_id

    if request.is_ajax():
        return render_to_response(
            'archives/phoneusers/credits/table.html', RequestContext(request, variables))

    return render_to_string(
        'archives/phoneusers/credits/table.html', RequestContext(request, variables))
Пример #13
0
def archive_whitelist_items(request, archived_phoneuser_id):
    archived_phoneuser_id = int(archived_phoneuser_id)
    user = request.user
    variables = Acl.get_permissions_for_user(user.id, user.is_staff)
    whitelists = ArchivedWhitelist.objects.filter(
        archived_phoneuser_id=archived_phoneuser_id).order_by('label')

    for wl in whitelists:
        if wl.frequency == 0 or wl.frequency == 3:
            wl.times = '-'

    variables['whitelists'] = whitelists

    if request.is_ajax():
        return render_to_response(
            'archives/phoneusers/whitelists/table.html', RequestContext(request, variables))

    return render_to_string(
        'archives/phoneusers/whitelists/table.html', RequestContext(request, variables))
Пример #14
0
def record_home(request):
    import time
    d = request.GET.dict()
    user = request.user
    variables = Acl.get_permissions_for_user(user.id, user.is_staff)
    variables['records'] = record_items(request)
    variables['d'] = d

    data_inizio_cal = time.strftime("%d-%m-%Y")
    if 'start_date' in d.keys():
        data_inizio_cal = d['start_date']
    data_fine_cal = time.strftime("%d-%m-%Y")
    if 'end_date' in d.keys():
        data_fine_cal = d['end_date']

    variables['data_inizio_cal'] = data_inizio_cal
    variables['data_fine_cal'] = data_fine_cal

    return render_to_response(
        'records/home.html', RequestContext(request, variables))
Пример #15
0
def record_action(request, action, item, record_id=0):
    """Unica funzione per gestire azioni diverse"""
    # verifichiamo che l'utente possieda i privilegi
    # e che non abbia digitato la url direttamente
    if Acl.get_permission_for_function(
            request.user.id, Acl.FUNCTION_RECORD) or request.user.is_staff:
        if action == 'remove':
            if item == 'single':
                return _single_record_remove(request, record_id)
            else:
                return _multi_record_remove(request)
        elif action == 'download':
            if item == 'single':
                return _single_record_export(request, record_id)
            else:
                return _multi_record_export_as_zip_file(request)
        else:
            raise Http404
    else:
        raise Http403
Пример #16
0
def prefs_edit(request):
    # recuperiamo le preferenze e le tariffe
    min_duration = Pref.get("min_duration")
    alert_before_end = Pref.get("alert_before_end")
    enable_first_in = Pref.get("enable_first_in")
    change_threshold = Pref.get("change_threshold")
    threshold = int(Pref.get("threshold")) / 60
    header = Pref.get("header")
    fares = Fare.objects.filter(position__gt=0).order_by("position")

    variables = {
        "min_duration": min_duration,
        "alert_before_end": alert_before_end,
        "enable_first_in": enable_first_in,
        "change_threshold": change_threshold,
        "threshold": threshold,
        "fares": fares,
        "header": header,
    }

    variables.update(Acl.get_permissions_for_user(request.user.id, request.user.is_staff))

    return render_to_response("prefs.html", RequestContext(request, variables))
Пример #17
0
def credit_items(request, phoneuser_id):

    items_per_page = int(settings.ITEMS_PER_PAGE)

    d = request.GET.dict()
    phoneuser_id = int(phoneuser_id)
    user = request.user
    variables = Acl.get_permissions_for_user(user.id, user.is_staff)
    items_list = Credit.objects.filter(
        phoneuser_id=phoneuser_id).order_by('-recharge_date')
    total_items = items_list.count()
    try:
        phoneuser = PhoneUser.objects.get(pk=phoneuser_id)
    except ObjectDoesNotExist:
        raise Http404

    page = 1
    if 'page' in d.keys():
        page = int(d['page'])
        # elimino la pagina dal dizionario
        del d['page']

    items, items_range, items_next_page = Helper.make_pagination(
        items_list, page, items_per_page)

    prev_page = page - 1
    prev_page_disabled = ''
    if prev_page < 1:
        prev_page = 1
        prev_page_disabled = 'disabled'

    next_page = 1
    next_page_disabled = ''
    if items:
        next_page = page + 1
        if next_page > items.paginator.num_pages:
            next_page = items.paginator.num_pages
            next_page_disabled = 'disabled'

    start_item = 1
    if page > 0:
        start_item = (page - 1) * items_per_page + 1
    end_item = start_item + items_per_page - 1
    if end_item > total_items:
        end_item = total_items

    variables['items'] = items
    variables['total_items'] = total_items
    variables['prev_page'] = prev_page
    variables['next_page'] = next_page
    variables['prev_page_disabled'] = prev_page_disabled
    variables['next_page_disabled'] = next_page_disabled
    variables['current_page'] = page
    variables['start_item'] = start_item
    variables['end_item'] = end_item
    variables['d'] = d
    variables['balance'] = phoneuser.balance
    variables['phoneuser_id'] = phoneuser_id

    if request.is_ajax():
        return render_to_response(
            'phoneusers/credits/table.html', RequestContext(request, variables))
    return render_to_string(
        'phoneusers/credits/table.html', RequestContext(request, variables))
Пример #18
0
def archive_phoneuser_items(request):
    """Archived Phoneuser Items List"""
    variables = Acl.get_permissions_for_user(request.user.id, request.user.is_staff)

    items_per_page = settings.ITEMS_PER_PAGE

    keyword = request.GET.get("keyword", "")
    page = int(request.GET.get("page", "1"))

    d = request.GET.dict()

    page = 1
    if 'page' in d.keys():
        page = int(d['page'])
        # elimino la pagina dal dizionario
        del d['page']

    q_obj = Q(last_name__icontains=keyword)
    q_obj.add(Q(pincode__icontains=keyword), Q.OR)
    q_obj.add(Q(serial_no__icontains=keyword), Q.OR)

    items_list = ArchivedPhoneUser.objects.filter(q_obj).order_by('last_name')
    total_items = items_list.count()

    items, items_range, items_next_page = Helper.make_pagination(
        items_list, page, items_per_page)


    prev_page = page - 1
    prev_page_disabled = ''
    if prev_page < 1:
        prev_page = 1
        prev_page_disabled = 'disabled'

    next_page = 1
    next_page_disabled = ''
    if items:
        next_page = page + 1
        if next_page > items.paginator.num_pages:
            next_page = items.paginator.num_pages
            next_page_disabled = 'disabled'

    start_item = 1
    if page > 0:
        start_item = (page - 1) * items_per_page + 1
    end_item = start_item + items_per_page - 1
    if end_item > total_items:
        end_item = total_items

    variables['items'] = items
    variables['total_items'] = total_items
    variables['prev_page'] = prev_page
    variables['next_page'] = next_page
    variables['prev_page_disabled'] = prev_page_disabled
    variables['next_page_disabled'] = next_page_disabled
    variables['current_page'] = page
    variables['start_item'] = start_item
    variables['end_item'] = end_item
    variables['query_string'] = urlencode(d)
    variables['d'] = d

    if request.is_ajax():
        return render_to_response(
            'archives/phoneusers/table.html', RequestContext(request, variables))

    return render_to_string(
        'archives/phoneusers/table.html', RequestContext(request, variables))