|
|
|
@ -1,10 +1,8 @@
|
|
|
|
|
import codecs |
|
|
|
|
import copy |
|
|
|
|
from itertools import chain |
|
|
|
|
from datetime import datetime |
|
|
|
|
|
|
|
|
|
from django.db import models |
|
|
|
|
from django.http import HttpResponse |
|
|
|
|
|
|
|
|
|
from common.utils.timezone import as_current_tz |
|
|
|
|
from common.utils import validate_ip, get_ip_city, get_logger |
|
|
|
@ -13,25 +11,6 @@ from .const import DEFAULT_CITY
|
|
|
|
|
logger = get_logger(__name__) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get_excel_response(filename): |
|
|
|
|
excel_response = HttpResponse(content_type='text/csv') |
|
|
|
|
excel_response[ |
|
|
|
|
'Content-Disposition'] = 'attachment; filename="%s"' % filename |
|
|
|
|
excel_response.write(codecs.BOM_UTF8) |
|
|
|
|
return excel_response |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def write_content_to_excel(response, header=None, login_logs=None, fields=None): |
|
|
|
|
writer = csv.writer(response, dialect='excel', quoting=csv.QUOTE_MINIMAL) |
|
|
|
|
if header: |
|
|
|
|
writer.writerow(header) |
|
|
|
|
if login_logs: |
|
|
|
|
for log in login_logs: |
|
|
|
|
data = [getattr(log, field.name) for field in fields] |
|
|
|
|
writer.writerow(data) |
|
|
|
|
return response |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def write_login_log(*args, **kwargs): |
|
|
|
|
from audits.models import UserLoginLog |
|
|
|
|
|
|
|
|
|