132 lines
5.6 KiB
Python
132 lines
5.6 KiB
Python
import csv
|
|
import os
|
|
import re
|
|
import time
|
|
from datetime import datetime
|
|
|
|
import xlrd
|
|
from django.contrib import messages
|
|
from django.http import HttpResponse, HttpResponseRedirect
|
|
from django.shortcuts import render
|
|
|
|
# Create your views here.
|
|
from xlrd import xldate_as_tuple, xldate_as_datetime
|
|
|
|
from NewMediaMonitoring import settings
|
|
from dashboard.models import TimelinessMonitoring, Wrongly, Comment, Area_code_2020
|
|
|
|
|
|
def backstage_new_media_public_opinion(request):
|
|
if request.method == 'POST':
|
|
filename = request.FILES.get('file')
|
|
date = request.POST.get("date")
|
|
date_length = request.POST.get("date_length")
|
|
if not os.path.exists(settings.MEDIA_ROOT):
|
|
os.makedirs(settings.MEDIA_ROOT)
|
|
if filename is None:
|
|
messages.error(request, '请选择要上传的文件!!!')
|
|
return HttpResponseRedirect('/backstage/backstage/newmedia/public/opinion/')
|
|
|
|
data = xlrd.open_workbook(filename=None, file_contents=filename.read())
|
|
table = data.sheets()[0]
|
|
for row in range(table.nrows):
|
|
v = table.row_values(row)[1]
|
|
if v != '单位全称':
|
|
try:
|
|
identificationcode = table.row_values(row)[3]
|
|
n_type = table.row_values(row)[7]
|
|
results = table.row_values(row)[21]
|
|
update = table.row_values(row)[22]
|
|
silent = table.row_values(row)[23]
|
|
start_data = table.row_values(row)[24]
|
|
d = datetime(*xldate_as_tuple(start_data, 0))
|
|
cell_start = d.strftime('%Y-%m-%d')
|
|
end_data = table.row_values(row)[25]
|
|
e = datetime(*xldate_as_tuple(end_data, 0))
|
|
cell_end = e.strftime('%Y-%m-%d')
|
|
city = table.row_values(row)[10]
|
|
cell_city = Area_code_2020.objects.get(name=city).code
|
|
district = table.row_values(row)[11]
|
|
cell_district = Area_code_2020.objects.get(name=district).code
|
|
timelinessmonitoring = TimelinessMonitoring(identificationcode=identificationcode, n_type=n_type,
|
|
results=results, update=update, silent=silent,
|
|
start_data=cell_start, end_data=cell_end, date=date,
|
|
date_length=date_length,city=cell_city,district=cell_district)
|
|
timelinessmonitoring.save()
|
|
except:
|
|
pass
|
|
messages.success(request,"上传成功")
|
|
return render(request, 'backstage/backstage_new_media_public_opinion.html')
|
|
|
|
|
|
def backstage_error(request):
|
|
if request.method == 'POST':
|
|
filename = request.FILES.get('file')
|
|
city = request.POST.get('city')
|
|
jc_date = request.POST.get('jc_date')
|
|
if not os.path.exists(settings.MEDIA_ROOT):
|
|
os.makedirs(settings.MEDIA_ROOT)
|
|
if filename is None:
|
|
messages.error(request, '请选择要上传的文件!!!')
|
|
return HttpResponseRedirect('/backstage/backstage/error/')
|
|
data = xlrd.open_workbook(filename=None, file_contents=filename.read())
|
|
table = data.sheets()[0]
|
|
for row in range(table.nrows):
|
|
v = table.row_values(row)[1]
|
|
if v != '建议':
|
|
try:
|
|
error = table.row_values(row)[0]
|
|
idea = table.row_values(row)[1]
|
|
site = table.row_values(row)[4]
|
|
n_type = table.row_values(row)[2]
|
|
n_name = table.row_values(row)[3]
|
|
date = table.row_values(row)[5]
|
|
d = datetime(*xldate_as_tuple(date, 0))
|
|
cell_date = d.strftime('%Y-%m-%d')
|
|
title = table.row_values(row)[6]
|
|
wrongly = Wrongly(error=error, idea=idea, site=site, n_type=n_type, n_name=n_name, date=cell_date,
|
|
title=title, city=city, jc_date=jc_date)
|
|
wrongly.save()
|
|
except:
|
|
pass
|
|
messages.success(request,'上传成功')
|
|
|
|
return render(request, 'backstage/backstage-error.html')
|
|
|
|
|
|
def backstage_comment(request):
|
|
if request.method == 'POST':
|
|
filename = request.FILES.get('file')
|
|
if not os.path.exists(settings.MEDIA_ROOT):
|
|
os.makedirs(settings.MEDIA_ROOT)
|
|
if filename is None:
|
|
messages.error(request, '请选择要上传的文件!!!')
|
|
return HttpResponseRedirect('/backstage/backstage/comment/')
|
|
if str(filename).split('.')[1] == 'csv':
|
|
data = filename.read().decode("utf-8")
|
|
line = str(data).split('\n')
|
|
for l in line:
|
|
v = l.split(',')
|
|
try:
|
|
if v[0] != '评论':
|
|
comment = v[0]
|
|
reply = v[1]
|
|
name = v[2]
|
|
title = v[3]
|
|
date = v[4]
|
|
url = v[5]
|
|
comment = Comment(comment=comment, reply=reply, name=name, title=title, date=date, url=url)
|
|
comment.save()
|
|
|
|
except:
|
|
print(v)
|
|
|
|
else:
|
|
messages.error(request, '请上传正确的文件类型!!!')
|
|
return HttpResponseRedirect('/backstage/backstage/comment/')
|
|
return render(request, 'backstage/backstage-comment.html')
|
|
|
|
|
|
def backstage_user(request):
|
|
return render(request, '')
|