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, {}))
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))
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))
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))
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))
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)
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')
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))
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))
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))
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))
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))
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))
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))
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
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))
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))
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))