예제 #1
0
파일: models.py 프로젝트: thecocce/phonecab
 def save(self, user, *args, **kwargs):
     """Override funzione save per loggare azione"""
     try:
         super(Pref, self).save(*args, **kwargs)
         audit = Audit()
         audit.user = user
         audit.what = "L'utente %s ha modificato la preferenza %s impostandola al valore %s" % (
             user.username,
             self.key,
             str(self.value),
         )
         audit.save()
     except Exception as e:
         print "%s (%s)" % (e.message, type(e))
예제 #2
0
파일: models.py 프로젝트: thecocce/phonecab
    def save(self, user, *args, **kwargs):
        """Override della funzione save per impostare correttamente le espressioni regolari
        e loggare azione"""
        self._create_regexp_from_prefix_list()

        try:
            super(Fare, self).save(*args, **kwargs)
            audit = Audit()
            audit.user = user
            detail = "Scatto: %s - Tariffa: %s - Lista Prefissi: %s" % (
                self.connection_charge,
                self.fee_per_second,
                self.prefix_list,
            )
            audit.what = "Modifica direttrice %s : %s" % (self.direction, detail)
            audit.save()
        except Exception as e:
            print "%s (%s)" % (e.message, type(e))  # TODO gestire errore
예제 #3
0
파일: views.py 프로젝트: thecocce/phonecab
def _single_record_export(request, record_id="0"):
    """Esportazione singolo file"""
    import os

    record_id = int(record_id)
    try:
        record = Record.objects.get(pk=record_id)
    except ObjectDoesNotExist:
        pass

    path = os.path.join(settings.RECORDS_ROOT, record.filename)
    response = Helper.file_export(path)

    # logghiamo azione
    audit = Audit()
    audit.user = request.user
    audit.what = "L'utente %s ha scaricato il seguente file: %s" \
        % (request.user.username, record.filename)
    audit.save()

    return response
예제 #4
0
파일: views.py 프로젝트: thecocce/phonecab
def archive_cdrs_export_excel(request):
    import time
    import xlwt
    book = xlwt.Workbook(encoding='utf8')
    sheet = book.add_sheet('Esportazione')

    default_style = xlwt.Style.default_style
    datetime_style = xlwt.easyxf(num_format_str='dd/mm/yyyy hh:mm')

    start_date = request.GET.get("start_date", "")
    end_date = request.GET.get("end_date", "")
    start_time = request.GET.get("start_time", "00:00")
    end_time = request.GET.get("end_time", "23:59")
    accountcode = request.GET.get("accountcode", "")
    dst = request.GET.get("dst", "")

    q_obj = Q(accountcode__icontains=accountcode)
    q_obj.add(Q(custom_dst__icontains=dst), Q.AND)
    q_obj.add(Q(dcontext='cabs-dial-number')|Q(dcontext='outgoing-operator-dial-number')|Q(dcontext='incoming-operator-dial-number'), Q.AND)
    q_obj.add(Q(custom_valid=1), Q.AND) # esportiamo solo le chiamate ritenute valide
    
    if start_date != '':
        start_date = Helper.convert_datestring_format(
            start_date, "%d-%m-%Y", "%Y-%m-%d")
        start_date = "%s %s:00" % (start_date, start_time)
        q_obj.add(Q(calldate__gte=start_date), Q.AND)

    if end_date != '':
        end_date = Helper.convert_datestring_format(
            end_date, "%d-%m-%Y", "%Y-%m-%d")
        end_date = "%s %s:59" % (end_date, end_time)
        q_obj.add(Q(calldate__lte=end_date), Q.AND)

    details = ArchivedDetail.objects.filter(q_obj).order_by('-calldate')

    sheet.write(0, 0, "Data e ora", style=default_style)
    sheet.write(0, 1, "Codice", style=default_style)
    sheet.write(0, 2, "Matricola", style=default_style)
    sheet.write(0, 3, "Cognome e Nome", style=default_style)
    sheet.write(0, 4, "Sorgente", style=default_style)
    sheet.write(0, 5, "Destinazione", style=default_style)
    sheet.write(0, 6, "Numero Autorizzato", style=default_style)
    sheet.write(0, 7, "Durata", style=default_style)
    sheet.write(0, 8, "Costo", style=default_style)

    for row, rowdata in enumerate(details):
        try:
            archived_phoneuser = ArchivedPhoneUser.objects.get(pincode=rowdata.accountcode)
            fullname = archived_phoneuser.get_full_name()
            matricola = archived_phoneuser.serial_no
            whitelist = ArchivedWhitelist.objects.get(phonenumber=rowdata.custom_dst,
                archived_phoneuser_id=archived_phoneuser.id)
            whitelist_label = whitelist.label
        except:
            fullname = '-'
            matricola = '-'
            whitelist_label = '-'

        calldate = time.strftime("%d-%m-%Y %H:%M:%S",
                                 time.strptime(str(rowdata.calldate),
                                               "%Y-%m-%d %H:%M:%S"))
        billsec = "%sm %ss" % (int(rowdata.billsec / 60), rowdata.billsec % 60)
        rowdata.price = rowdata.price > 0 and rowdata.price or 0
        sheet.write(row + 1, 0, calldate, style=datetime_style)
        sheet.write(row + 1, 1, rowdata.accountcode, style=default_style)
        sheet.write(row + 1, 2, matricola, style=default_style)
        sheet.write(row + 1, 3, fullname, style=default_style)
        sheet.write(row + 1, 4, rowdata.custom_src, style=default_style)
        sheet.write(row + 1, 5, rowdata.custom_dst, style=default_style)
        sheet.write(row + 1, 6, whitelist_label, style=default_style)
        sheet.write(row + 1, 7, billsec, style=default_style)
        sheet.write(row + 1, 8, rowdata.price, style=default_style)

    response = HttpResponse(content_type='application/vnd.ms-excel')
    filename = 'Dettaglio_chiamate_archiviate.xls'
    response[
        'Content-Disposition'] = 'attachment; filename=%s' % filename
    book.save(response)

    # logghiamo azione
    audit = Audit()
    audit.user = request.user
    d = request.GET.dict()
    audit.what = "Esportazione lista chiamate archiviate corrispondenti ai seguenti criteri: %s" \
        % (urlencode(d))
    audit.save()

    return response