from django.http import JsonResponse from django.views.decorators.csrf import csrf_exempt from django.forms import model_to_dict from .model_handler import SettingHandler, CaseAttachmentHandler from .models import CaseAttachment from Info.model_handler import CompanyHandler, UserHandler from Info.func import file_upload, get_file def attachment_maxsize(request): # 获取BOM附件大小限制 company = CompanyHandler.get_by_id(request.session.get('company_id')) result = {'code': 1, 'content': None, 'msg': None} company_setting = SettingHandler.get_by_company(company) if company_setting: result['code'] = 0 result['content'] = { 'company_id': company_setting.company.id, 'attachment_maxsize': company_setting.max_attachment_size } return JsonResponse(result) def user_info(request): # 从user数据中读取默认的姓名和手机号码 user = UserHandler.get_by_id(request.session.get('user_id')) result = {'code': 1, 'content': None, 'msg': None} result['code'] = 0 result['content'] = { 'contact_name': user.name, 'contact_mobile': user.mobile } return JsonResponse(result) @csrf_exempt def file(request): result = {'code': 1, 'content': None} company = CompanyHandler.get_by_id(request.session.get('company_id')) user = UserHandler.get_by_id(request.session.get('user_id')) if request.method == 'GET': return get_file(request) if request.method == 'POST': upload_result = file_upload(request, ['IT_service', 'case']) if upload_result['code'] == 0: case_attachment = CaseAttachment() case_attachment.company = company case_attachment.creator = user case_attachment.display_name = upload_result['target_file_name'] case_attachment.url = upload_result['target_file_path'] + \ upload_result['target_file_name'] case_attachment.save() content = {'id': case_attachment.id, 'url': case_attachment.url, 'display_name': case_attachment.display_name} result['code'] = 0 result['content'] = content else: result['content'] = '上传失败' return JsonResponse(result) if request.method == 'DELETE': post_data = eval(request.body) if CaseAttachmentHandler.del_by_id(post_data['delete_attachment_id']): result = {'code': 0, 'content': None} else: result = {'code': 1, 'content': '删除失败'} return JsonResponse(result)