from django.contrib.auth.decorators import login_required, permission_required from django.http import JsonResponse, Http404 from django.shortcuts import render, get_object_or_404, redirect from django.template.loader import render_to_string from django.urls import reverse from application.opa_mgnt.forms import * from application.opa_mgnt.models import * from common.utils.page_helper import paginate_query_and_assign_numbers @login_required @permission_required('opa_mgnt.view_socialmediaaccountregistration', raise_exception=True) def sma_reg_list_view(request): query_set = SocialMediaAccountRegistration.objects.filter().order_by('-record_id') platform = request.GET.get('platform', '') if platform: query_set = query_set.filter(platform__icontains=platform) items = paginate_query_and_assign_numbers(request=request, queryset=query_set, per_page=10) query_params = '&platform={}'.format(platform) template_name = "运营管理-新媒体账号登记-Excel上传模板.xlsx" context = { "model_config": 'opa_mgnt.SocialMediaAccountRegistration', "items": items, "breadcrumb_list": [ {"title": "首页", "name": "index"}, {"title": "运营管理", "name": "index"}, {"title": "新媒体账号登记", "name": "sma_reg_list"} ], "filters": [ {"type": "text", "id": "platform", "name": "platform", "label": "所属平台", "placeholder": "请输入所属平台"} ], "excel_upload_config": { "template_url": reverse("download_template", kwargs={'template_name': template_name}), "parse_url": reverse("common_excel_parse"), "save_url": reverse("save_excel_table_data"), "fields_preview_config": { "record_id": {"type": "text", "width": "180px"}, "platform": {"type": "text", "width": "180px"}, "account_name": {"type": "text", "width": "180px"}, "primary_department": {"type": "text", "width": "180px"}, "secondary_department": {"type": "text", "width": "180px"}, "operation_account": {"type": "text", "width": "180px"}, "password": {"type": "text", "width": "180px"}, "operator": {"type": "text", "width": "180px"}, "actions": {"type": "actions", "width": "100px"} } }, "query_params": query_params, "table_exclude_field_name": ['record_id'], "form_action_url": 'sma_reg_list', "modify_url": reverse("sma_reg_list_modify"), "add_url": reverse("sma_reg_list_add"), "delete_url": reverse("sma_reg_list_delete"), } return render(request, 'items_list.html', context) @login_required @permission_required('opa_mgnt.add_socialmediaaccountregistration', raise_exception=True) def sma_reg_list_add(request): if request.method == 'POST': form = SocialMediaAccountRegistrationForm(request.POST) if form.is_valid(): form.save() return JsonResponse({"message": "添加成功"}) else: form_html = render_to_string('form_partial.html', {'form': form}, request) return JsonResponse({"form_html": form_html, "errors": form.errors}, status=400) elif request.method == 'GET': form = SocialMediaAccountRegistrationForm() form_html = render_to_string('form_partial.html', {'form': form}, request) return JsonResponse({"form_html": form_html}) else: return JsonResponse({"message": "无效的请求方法"}, status=405) @login_required @permission_required('opa_mgnt.change_socialmediaaccountregistration', raise_exception=True) def sma_reg_list_modify(request): if request.method == 'POST': if 'id' in request.POST: instance = SocialMediaAccountRegistration.objects.get(record_id=request.POST['id']) form = SocialMediaAccountRegistrationForm(request.POST, instance=instance) else: form = SocialMediaAccountRegistrationForm(request.POST) if form.is_valid(): form.save() return JsonResponse({"message": "保存成功"}) else: form_html = render_to_string('form_partial.html', {'form': form}, request) return JsonResponse({"form_html": form_html, "errors": form.errors}, status=400) elif request.method == 'GET': if 'record_id' in request.GET: try: instance = SocialMediaAccountRegistration.objects.get(record_id=request.GET['record_id']) form = SocialMediaAccountRegistrationForm(instance=instance) except SocialMediaAccountRegistration.DoesNotExist: raise Http404("对象不存在") else: form = SocialMediaAccountRegistrationForm() form_html = render_to_string('form_partial.html', {'form': form}, request) return JsonResponse({"form_html": form_html}) else: return JsonResponse({"message": "无效的请求方法"}, status=405) @login_required @permission_required('opa_mgnt.delete_socialmediaaccountregistration', raise_exception=True) def sma_reg_list_delete(request): if request.method == 'GET': target_id = request.GET.get('target_id') SocialMediaAccountRegistration.objects.filter(record_id=target_id).delete() return JsonResponse({"message": "删除成功"}) return JsonResponse({"message": "无效的请求方法"}, status=405) @login_required @permission_required('opa_mgnt.view_accountoperationmanagement', raise_exception=True) def acc_op_mgmt_list_view(request): query_set = AccountOperationManagement.objects.filter().order_by('-record_id') platform = request.GET.get('platform', '') if platform: query_set = query_set.filter(platform__icontains=platform) items = paginate_query_and_assign_numbers(request=request, queryset=query_set, per_page=10) query_params = '&platform={}'.format(platform) template_name = "运营管理-账号运营管理记录-Excel上传模板.xlsx" context = { "model_config": 'opa_mgnt.AccountOperationManagement', "items": items, "breadcrumb_list": [ {"title": "首页", "name": "index"}, {"title": "运营管理", "name": "index"}, {"title": "账号运营管理记录", "name": "acc_op_mgmt_list"} ], "filters": [ {"type": "text", "id": "platform", "name": "platform", "label": "所属平台", "placeholder": "请输入所属平台"} ], "excel_upload_config": { "template_url": reverse("download_template", kwargs={'template_name': template_name}), "parse_url": reverse("common_excel_parse"), "save_url": reverse("save_excel_table_data"), "fields_preview_config": { "record_id": {"type": "text", "width": "180px"}, "platform": {"type": "text", "width": "180px"}, "account_name": {"type": "text", "width": "180px"}, "content_title": {"type": "text", "width": "180px"}, "publication_time": {"type": "datetime", "width": "180px"}, "views": {"type": "number", "width": "180px"}, "favorites": {"type": "number", "width": "180px"}, "comments": {"type": "number", "width": "180px"}, "shares": {"type": "number", "width": "180px"}, "likes": {"type": "number", "width": "180px"}, "followers": {"type": "number", "width": "180px"}, "update_time": {"type": "datetime", "width": "180px"}, "actions": {"type": "actions", "width": "100px"} } }, "query_params": query_params, "form_action_url": 'acc_op_mgmt_list', "modify_url": reverse("acc_op_mgmt_list_modify"), "add_url": reverse("acc_op_mgmt_list_add"), "delete_url": reverse("acc_op_mgmt_list_delete"), "table_exclude_field_name": [], # Add any fields you want to exclude } return render(request, 'items_list.html', context) @login_required @permission_required('opa_mgnt.add_accountoperationmanagement', raise_exception=True) def acc_op_mgmt_list_add(request): if request.method == 'POST': form = AccountOperationManagementForm(request.POST) if form.is_valid(): form.save() return JsonResponse({"message": "添加成功"}) else: form_html = render_to_string('form_partial.html', {'form': form}, request) return JsonResponse({"form_html": form_html, "errors": form.errors}, status=400) elif request.method == 'GET': form = AccountOperationManagementForm() form_html = render_to_string('form_partial.html', {'form': form}, request) return JsonResponse({"form_html": form_html}) else: return JsonResponse({"message": "无效的请求方法"}, status=405) @login_required @permission_required('opa_mgnt.change_accountoperationmanagement', raise_exception=True) def acc_op_mgmt_list_modify(request): if request.method == 'POST': if 'record_id' in request.POST: instance = AccountOperationManagement.objects.get(record_id=request.POST['record_id']) form = AccountOperationManagementForm(request.POST, instance=instance) else: form = AccountOperationManagementForm(request.POST) if form.is_valid(): form.save() return JsonResponse({"message": "保存成功"}) else: form_html = render_to_string('form_partial.html', {'form': form}, request) return JsonResponse({"form_html": form_html, "errors": form.errors}, status=400) elif request.method == 'GET': if 'record_id' in request.GET: try: instance = AccountOperationManagement.objects.get(record_id=request.GET['record_id']) form = AccountOperationManagementForm(instance=instance) except AccountOperationManagement.DoesNotExist: raise Http404("对象不存在") else: form = AccountOperationManagementForm() form_html = render_to_string('form_partial.html', {'form': form}, request) return JsonResponse({"form_html": form_html}) else: return JsonResponse({"message": "无效的请求方法"}, status=405) @login_required @permission_required('opa_mgnt.delete_accountoperationmanagement', raise_exception=True) def acc_op_mgmt_list_delete(request): if request.method == 'GET': target_id = request.GET.get('target_id') AccountOperationManagement.objects.filter(record_id=target_id).delete() return JsonResponse({"message": "删除成功"}) return JsonResponse({"message": "无效的请求方法"}, status=405) @login_required @permission_required('opa_mgnt.view_websiteregistration', raise_exception=True) def web_reg_list_view(request): query_set = WebsiteRegistration.objects.filter().order_by('-record_id') website_name = request.GET.get('website_name', '') if website_name: query_set = query_set.filter(website_name__icontains=website_name) items = paginate_query_and_assign_numbers(request=request, queryset=query_set, per_page=10) query_params = '&website_name={}'.format(website_name) template_name = "运营管理-网站登记-Excel上传模板.xlsx" context = { "model_config": 'opa_mgnt.WebsiteRegistration', "items": items, "breadcrumb_list": [ {"title": "首页", "name": "index"}, {"title": "运营管理", "name": "index"}, {"title": "网站登记", "name": "web_reg_list"} ], "filters": [ {"type": "text", "id": "website_name", "name": "website_name", "label": "官网名称", "placeholder": "请输入官网名称"} ], "excel_upload_config": { "template_url": reverse("download_template", kwargs={'template_name': template_name}), "parse_url": reverse("common_excel_parse"), "save_url": reverse("save_excel_table_data"), "fields_preview_config": { "record_id": {"type": "text", "width": "180px"}, "website_name": {"type": "text", "width": "180px"}, "primary_department": {"type": "text", "width": "180px"}, "secondary_department": {"type": "text", "width": "180px"}, "account": {"type": "text", "width": "180px"}, "password": {"type": "text", "width": "180px"}, "login_url": {"type": "text", "width": "180px"}, "tech_support": {"type": "text", "width": "180px"}, "domain": {"type": "text", "width": "180px"}, "expiration_date": {"type": "date", "width": "180px"}, "operator": {"type": "text", "width": "180px"}, "actions": {"type": "actions", "width": "100px"} } }, "query_params": query_params, "form_action_url": 'web_reg_list', "modify_url": reverse("web_reg_list_modify"), "add_url": reverse("web_reg_list_add"), "delete_url": reverse("web_reg_list_delete"), "table_exclude_field_name": [], # Add any fields you want to exclude } return render(request, 'items_list.html', context) @login_required @permission_required('opa_mgnt.add_websiteregistration', raise_exception=True) def web_reg_list_add(request): if request.method == 'POST': form = WebsiteRegistrationForm(request.POST) if form.is_valid(): form.save() return JsonResponse({"message": "添加成功"}) else: form_html = render_to_string('form_partial.html', {'form': form}, request) return JsonResponse({"form_html": form_html, "errors": form.errors}, status=400) elif request.method == 'GET': form = WebsiteRegistrationForm() form_html = render_to_string('form_partial.html', {'form': form}, request) return JsonResponse({"form_html": form_html}) else: return JsonResponse({"message": "无效的请求方法"}, status=405) @login_required @permission_required('opa_mgnt.change_websiteregistration', raise_exception=True) def web_reg_list_modify(request): if request.method == 'POST': if 'record_id' in request.POST: instance = WebsiteRegistration.objects.get(record_id=request.POST['record_id']) form = WebsiteRegistrationForm(request.POST, instance=instance) else: form = WebsiteRegistrationForm(request.POST) if form.is_valid(): form.save() return JsonResponse({"message": "保存成功"}) else: form_html = render_to_string('form_partial.html', {'form': form}, request) return JsonResponse({"form_html": form_html, "errors": form.errors}, status=400) elif request.method == 'GET': if 'record_id' in request.GET: try: instance = WebsiteRegistration.objects.get(record_id=request.GET['record_id']) form = WebsiteRegistrationForm(instance=instance) except WebsiteRegistration.DoesNotExist: raise Http404("对象不存在") else: form = WebsiteRegistrationForm() form_html = render_to_string('form_partial.html', {'form': form}, request) return JsonResponse({"form_html": form_html}) else: return JsonResponse({"message": "无效的请求方法"}, status=405) @login_required @permission_required('opa_mgnt.delete_websiteregistration', raise_exception=True) def web_reg_list_delete(request): if request.method == 'GET': target_id = request.GET.get('target_id') WebsiteRegistration.objects.filter(record_id=target_id).delete() return JsonResponse({"message": "删除成功"}) return JsonResponse({"message": "无效的请求方法"}, status=405) @login_required @permission_required('opa_mgnt.view_websitemaintenancerecord', raise_exception=True) def web_maint_rec_list_view(request): query_set = WebsiteMaintenanceRecord.objects.filter().order_by('-record_id') website_name = request.GET.get('website_name', '') if website_name: query_set = query_set.filter(website_name__icontains=website_name) items = paginate_query_and_assign_numbers(request=request, queryset=query_set, per_page=10) query_params = '&website_name={}'.format(website_name) template_name = "运营管理-网站运维记录-Excel上传模板.xlsx" context = { "model_config": 'opa_mgnt.WebsiteMaintenanceRecord', "items": items, "breadcrumb_list": [ {"title": "首页", "name": "index"}, {"title": "运营管理", "name": "index"}, {"title": "网站运维记录", "name": "web_maint_rec_list"} ], "filters": [ {"type": "text", "id": "website_name", "name": "website_name", "label": "官网名称", "placeholder": "请输入官网名称"} ], "excel_upload_config": { "template_url": reverse("download_template", kwargs={'template_name': template_name}), "parse_url": reverse("common_excel_parse"), "save_url": reverse("save_excel_table_data"), "fields_preview_config": { "record_id": {"type": "text", "width": "180px"}, "website_name": {"type": "text", "width": "180px"}, "maintenance_content": {"type": "text", "width": "180px"}, "maintenance_details": {"type": "text", "width": "180px"}, "maintenance_time": {"type": "datetime", "width": "180px"}, "maintainer": {"type": "text", "width": "180px"}, "actions": {"type": "actions", "width": "100px"} } }, "query_params": query_params, "form_action_url": 'web_maint_rec_list', "modify_url": reverse("web_maint_rec_list_modify"), "add_url": reverse("web_maint_rec_list_add"), "delete_url": reverse("web_maint_rec_list_delete"), "table_exclude_field_name": [], # Add any fields you want to exclude } return render(request, 'items_list.html', context) @login_required @permission_required('opa_mgnt.add_websitemaintenancerecord', raise_exception=True) def web_maint_rec_list_add(request): if request.method == 'POST': form = WebsiteMaintenanceRecordForm(request.POST) if form.is_valid(): form.save() return JsonResponse({"message": "添加成功"}) else: form_html = render_to_string('form_partial.html', {'form': form}, request) return JsonResponse({"form_html": form_html, "errors": form.errors}, status=400) elif request.method == 'GET': form = WebsiteMaintenanceRecordForm() form_html = render_to_string('form_partial.html', {'form': form}, request) return JsonResponse({"form_html": form_html}) else: return JsonResponse({"message": "无效的请求方法"}, status=405) @login_required @permission_required('opa_mgnt.change_websitemaintenancerecord', raise_exception=True) def web_maint_rec_list_modify(request): if request.method == 'POST': if 'record_id' in request.POST: instance = WebsiteMaintenanceRecord.objects.get(record_id=request.POST['record_id']) form = WebsiteMaintenanceRecordForm(request.POST, instance=instance) else: form = WebsiteMaintenanceRecordForm(request.POST) if form.is_valid(): form.save() return JsonResponse({"message": "保存成功"}) else: form_html = render_to_string('form_partial.html', {'form': form}, request) return JsonResponse({"form_html": form_html, "errors": form.errors}, status=400) elif request.method == 'GET': if 'record_id' in request.GET: try: instance = WebsiteMaintenanceRecord.objects.get(record_id=request.GET['record_id']) form = WebsiteMaintenanceRecordForm(instance=instance) except WebsiteMaintenanceRecord.DoesNotExist: raise Http404("对象不存在") else: form = WebsiteMaintenanceRecordForm() form_html = render_to_string('form_partial.html', {'form': form}, request) return JsonResponse({"form_html": form_html}) else: return JsonResponse({"message": "无效的请求方法"}, status=405) @login_required @permission_required('opa_mgnt.delete_websitemaintenancerecord', raise_exception=True) def web_maint_rec_list_delete(request): if request.method == 'GET': target_id = request.GET.get('target_id') WebsiteMaintenanceRecord.objects.filter(record_id=target_id).delete() return JsonResponse({"message": "删除成功"}) return JsonResponse({"message": "无效的请求方法"}, status=405)