def project_user_modify(request, id): ''' @author: Xieyz @note: 项目用户修改 :return: UserChangeForm表单 ''' obj = project_user.objects.get(id=id) if request.method == "POST": change = UserChangeForm(request.POST, instance=obj) if not request.POST.get('project'): messages.add_message(request, messages.ERROR, '请选择项目!') return render(request, 'usercenter/project_user_change.html', {'form': change}) if change.is_valid(): data = change.cleaned_data # 更新日志 update_logs = UserChangeLogs() update_logs.user_id = id update_logs.content = get_name_by_id.get_name( request.user.id) + '修改了用户的信息' change.save() update_logs.save() messages.add_message( request, messages.SUCCESS, '修改用户"' + data.get('user_name') + '"的信息,修改成功!') return HttpResponseRedirect(reverse('user_manage')) else: messages.add_message(request, messages.ERROR, change.errors) return render(request, 'usercenter/project_user_change.html', {'form': change}) else: form = UserChangeForm(instance=obj) return render(request, 'usercenter/project_user_change.html', locals())
def get_all_user(): result = [] try: obj = User.objects.all().filter(is_staff=1, is_active=1) for i in obj: result.append({ 'value': i.id, 'name': get_name_by_id.get_name(i.id) }) except: result = [{'value': '', 'name': '无'}] return result
def project_group_user_change(request, gid): ''' @author: Xieyz @note: 用户添加或移出组 :param request: :param gid: 组id :return: ''' if request.method == "POST": modify_user_list = request.POST.getlist('doublebox') reduce_user = [] increase_user = [] old_user = user_group.objects.filter(group_id=gid).values_list( 'user_name_id', flat=True) new_user = [int(i) for i in modify_user_list] difference_list = list(set(old_user) ^ set(new_user)) if not difference_list: messages.add_message(request, messages.ERROR, '未作出任何修改!') return HttpResponseRedirect( reverse('project_authority_group_user_list', args=[ gid, ])) for difference in difference_list: if difference in old_user: user_group.objects.filter(user_name_id=difference, group_id=gid).delete() reduce_user.append( str(project_user.objects.get(id=difference).user_name) + "<" + str(project_user.objects.get(id=difference).name) + ">") else: add_user_group = user_group() add_user_group.group_id = gid add_user_group.user_name_id = difference add_user_group.save() increase_user.append( str(project_user.objects.get(id=difference).user_name) + "<" + str(project_user.objects.get(id=difference).name) + ">") # 更新日志 content_dict = {'添加用户': increase_user, '移出用户': reduce_user} update_logs = AuthorityGroupChangeLogs() update_logs.group_id = gid update_logs.user_id = request.user.id update_logs.content = get_name_by_id.get_name( request.user.id) + '操作: ' + str(content_dict) update_logs.save() messages.add_message(request, messages.SUCCESS, '操作成功!') return HttpResponseRedirect( reverse('project_authority_group_user_list', args=[ gid, ]))
def project_user_change_status(request, id, is_active): try: project_user.objects.filter(id=id).update(is_active=is_active) # 更新用户日志 display = '' if is_active == 1: display = '启用' elif is_active == 0: display = '禁用' update_userlogs = UserChangeLogs() update_userlogs.user_id = id update_userlogs.content = get_name_by_id.get_name( request.user.id) + '修改用户状态为' + display update_userlogs.save() return JsonResponse({'result': 'true', 'project_user_id': id}) except: return JsonResponse({'result': 'false'})
def sqlalert_apply(self): sql_alert = SQLAlert.objects.get(id=self.detail_id) project_manager_id = SQLAlert.objects.only('project').get(id=self.detail_id).project.project_manager.id build_message( **{'message_title': '申请「数据预警SQL」成功', 'message_content': '申请「' + sql_alert.title + '」成功', 'message_url': '/database/instance/sqlalert/release_detail/' + str(self.detail_id) + '/', 'message_user': sql_alert.applicant.id } ) build_message( **{'message_title': '有一条「数据预警SQL」申请需要您审批', 'message_content': get_name_by_id.get_name(sql_alert.applicant.id) + '申请了「' + sql_alert.title + '」, 下一步(项目经理审批)需要您去审批!', 'message_url': '/database/instance/sqlalert/release_detail/' + str(self.detail_id) + '/', 'message_user': project_manager_id, 'type': '审批' } )
def cron_send_ops_message(): """ :return: """ from workflow.get_name_by_id import get_name_by_id worksheet_obj = WorkSheet.objects.filter(status=2) for user in worksheet_obj: if user.is_delay: pm_message = get_name_by_id.get_name( user.operator_id ) + '有一条待办工单<div class="highlight">已延期</div>,请协助督促处理!' message = '你有一条待办工单<div class="highlight">已延期</div>,请前往运维平台处理!' send_operator_wechat_message(user.id, message) send_pm_wechat_message(user.id, pm_message) else: message = '你有一条待办工单,请前往运维平台处理!' send_operator_wechat_message(user.id, message)
def database_release_apply(self): applicant = Application.objects.only('appliant').get(id=self.detail_id).appliant project_manager_id = Application.objects.only('project').get(id=self.detail_id).project.project_manager.id build_message( **{'message_title': '申请「数据库变更」成功', 'message_content': '申请「数据库变更」成功', 'message_url': '/database/instance/release_flow/release_detail/' + str(self.detail_id), 'message_user': applicant.id } ) build_message( **{'message_title': '有一条「数据库变更」申请需要您审批', 'message_content': get_name_by_id.get_name(applicant.id) + '申请了「数据库变更」, 下一步(项目经理审批)需要您去审批!', 'message_url': '/database/instance/release_flow/release_detail/' + str(self.detail_id), 'message_user': project_manager_id, 'type': '审批' } )
def cron_apply(self): applicant = cronflow.objects.only('applicant').get(id=self.detail_id).applicant project_manager_id = cronflow.objects.only('project').get(id=self.detail_id).project.project_manager.id build_message( **{'message_title': '申请「计划任务变更」成功', 'message_content': '申请「计划任务变更」成功', 'message_url': '/flow/cronflow_manage/cronflow_details/' + str(self.detail_id), 'message_user': applicant.id } ) build_message( **{'message_title': '有一条申请「计划任务变更」工作流需要您审批', 'message_content': get_name_by_id.get_name(applicant.id) + '申请了「计划任务变更」, (项目经理审批)需要您去审批!', 'message_url': '/flow/cronflow_manage/cronflow_details/' + str(self.detail_id), 'message_user': project_manager_id, 'type': '审批' } )
def project_create(self): applicant = project.objects.only('applicant').get(id=self.detail_id).applicant project_manager_id = project.objects.only('project_manager').get(id=self.detail_id).project_manager.id build_message( **{'message_title': '申请「项目创建」成功', 'message_content': '申请「项目创建」成功', 'message_url': '/flow/project_manage/project_details/' + str(self.detail_id), 'message_user': applicant.id } ) build_message( **{'message_title': '有一条「项目创建」工作流需要您审批', 'message_content': get_name_by_id.get_name(applicant.id) + '申请了「项目创建」, 下一步(项目经理审批)需要您去审批!', 'message_url': '/flow/project_manage/project_details/' + str(self.detail_id), 'message_user': project_manager_id, 'type': '审批' } )
def migration_apply(self): migration = DataMigrate.objects.get(id=self.detail_id) project_manager_id = DataMigrate.objects.only('project').get(id=self.detail_id).project.project_manager.id build_message( **{'message_title': '申请「数据迁移」成功', 'message_content': '申请「' + migration.title + '」成功', 'message_url': '/database/instance/datamigrate/release_detail/' + str(self.detail_id) + '/', 'message_user': migration.applicant.id } ) build_message( **{'message_title': '有一条「数据迁移」申请需要您审批', 'message_content': get_name_by_id.get_name( migration.applicant.id) + '申请了「' + migration.title + '」, 下一步(项目经理审批)需要您去审批!', 'message_url': '/database/instance/datamigrate/release_detail/' + str(self.detail_id) + '/', 'message_user': project_manager_id, 'type': '审批' } )
def project_release_apply_approval(self): applicant = project_releaseflow.objects.only('applicant').get(id=self.detail_id).applicant if self.adopt == '通过': project_manager_id = project_releaseflow.objects.only('project').get( id=self.detail_id).project.project_manager.id build_message( **{'message_title': '有一条「项目变更」工作流需要您审批', 'message_content': get_name_by_id.get_name(applicant.id) + '申请了「项目变更」, 下一步(项目经理审批)需要您去审批!', 'message_url': '/flow/releaseflow_manage/releaseflow_details/' + str(self.detail_id), 'message_user': project_manager_id, 'type': '审批' } ) elif self.adopt == '不通过': build_message( **{'message_title': '您申请的「项目变更」审批不通过', 'message_content': '您申请的「项目变更」审批不通过', 'message_url': '/flow/releaseflow_manage/releaseflow_details/' + str(self.detail_id), 'message_user': applicant.id } )
def project_user_release_apply(self): applicant = ProjectUserApplyFlow.objects.only('submitter').get(id=self.detail_id).submitter depart_director_id = ProjectUserApplyFlow.objects.only('department').get( id=self.detail_id).department.depart_director_id build_message( **{'message_title': '申请「业务用户变更」成功', 'message_content': '申请「业务用户变更」成功', 'message_url': '/flow/user_apply_list/user_apply_details/' + str(self.detail_id), 'message_user': applicant.id } ) build_message( **{'message_title': '有一条申请「业务用户变更」工作流需要您审批', 'message_content': get_name_by_id.get_name(applicant.id) + '申请了「业务用户变更」, (部门负责人审批)需要您去审批!', 'message_url': '/flow/user_apply_list/user_apply_details/' + str(self.detail_id), 'message_user': depart_director_id, 'type': '审批' } )
def project_create_approval(self): applicant = project.objects.only('applicant').get(id=self.detail_id).applicant if self.adopt == '通过': userList = Group.objects.get(name=self.sector).user_set.all() for sector_user_id in userList: build_message( **{'message_title': '有一条「项目创建」工作流需要您审批', 'message_content': get_name_by_id.get_name(applicant.id) + '申请了「项目创建」工作流, 下一步('+ self.sector +'审批)需要您去审批!', 'message_url': '/flow/project_manage/project_details/' + str(self.detail_id), 'message_user': sector_user_id.id, 'type': '审批' } ) elif self.adopt == '不通过': build_message( **{'message_title': '您申请的「项目创建」审批不通过', 'message_content': '您申请的「项目创建」审批不通过', 'message_url': '/flow/project_manage/project_details/' + str(self.detail_id), 'message_user': applicant.id } )
def project_user_authority_release_apply(self): applicant = authority_flow.objects.only('applicant').get(id=self.detail_id).applicant depart_director_id = authority_flow.objects.only('department').get( id=self.detail_id).department.depart_director_id build_message( **{'message_title': '申请「业务用户权限变更」成功', 'message_content': '申请「业务用户权限变更」成功', 'message_url': '/flow/project_authority_manage/project_authority_details/' + str(self.detail_id), 'message_user': applicant.id } ) build_message( **{'message_title': '有一条申请「业务用户权限变更」工作流需要您审批', 'message_content': get_name_by_id.get_name(applicant.id) + '申请了业务用户权限变更, (部门负责人审批)需要您去审批!', 'message_url': '/flow/project_authority_manage/project_authority_details/' + str(self.detail_id), 'message_user': depart_director_id, 'type': '审批' } )
def database_release_apply_approval(self): applicant = Application.objects.only('appliant').get(id=self.detail_id).appliant if self.adopt == '通过': userList = Group.objects.get(name=self.sector).user_set.all() for sector_user_id in userList: build_message( **{'message_title': '有一条「数据库变更」申请需要您审批', 'message_content': get_name_by_id.get_name( applicant.id) + '申请了「数据库变更」, 下一步(' + self.sector + '审批)需要您去审批!', 'message_url': '/database/instance/release_flow/release_detail/' + str(self.detail_id), 'message_user': sector_user_id.id, 'type': '审批' } ) elif self.adopt == '不通过': build_message( **{'message_title': '您申请的「数据库变更」审批不通过', 'message_content': '您申请的「数据库变更」审批不通过', 'message_url': '/database/instance/release_flow/release_detail/' + str(self.detail_id), 'message_user': applicant.id } )
def migration_approval(self): migration = DataMigrate.objects.get(id=self.detail_id) if self.adopt == '通过': userList = Group.objects.get(name=self.sector).user_set.all() for sector_user_id in userList: build_message( **{'message_title': '有一条「数据迁移」申请需要您审批', 'message_content': get_name_by_id.get_name( migration.applicant.id) + '申请了「' + migration.title + '」, 下一步(' + self.sector + '审批)需要您去审批!', 'message_url': '/database/instance/datamigrate/release_detail/' + str(self.detail_id) + '/', 'message_user': sector_user_id.id, 'type': '审批' } ) elif self.adopt == '不通过': build_message( **{'message_title': '您申请的「数据迁移」审批不通过', 'message_content': '您申请的「' + migration.title + '」审批不通过', 'message_url': '/database/instance/datamigrate/release_detail/' + str(self.detail_id) + '/', 'message_user': migration.applicant.id } )
def sqlalert_approval(self): sql_alert = SQLAlert.objects.get(id=self.detail_id) if self.adopt == '通过': userList = Group.objects.get(name=self.sector).user_set.all() for sector_user_id in userList: build_message( **{'message_title': '有一条「数据预警SQL」申请需要您审批', 'message_content': get_name_by_id.get_name( sql_alert.applicant.id) + '申请了「' + sql_alert.title + '」, 下一步(' + self.sector + '审批)需要您去审批!', 'message_url': '/database/instance/sqlalert/release_detail/' + str(self.detail_id) + '/', 'message_user': sector_user_id.id, 'type': '审批' } ) elif self.adopt == '不通过': build_message( **{'message_title': '您申请的「数据预警SQL」审批不通过', 'message_content': '您申请的「' + sql_alert.title + '」审批不通过', 'message_url': '/database/instance/sqlalert/release_detail/' + str(self.detail_id) + '/', 'message_user': sql_alert.applicant.id } )
def project_release_apply(self): applicant = project_releaseflow.objects.only('applicant').get(id=self.detail_id).applicant build_message( **{'message_title': '申请「项目变更」成功', 'message_content': '申请「项目变更」成功', 'message_url': '/flow/releaseflow_manage/releaseflow_details/' + str(self.detail_id), 'message_user': applicant.id } ) try: project_id = project_releaseflow.objects.only('project').get(id=self.detail_id).project_id appoint_user_list = project_group.objects.filter(project_id=project_id,user_type__name='测试人员').values_list('user_id',flat=True) for sector_user_id in appoint_user_list: build_message( **{'message_title': '有一条「项目变更」工作流需要您测试审批', 'message_content': get_name_by_id.get_name(applicant.id) + '申请了「项目变更」工作流, 下一步(测试审批)需要您去审批!', 'message_url': '/flow/releaseflow_manage/releaseflow_details/' + str(self.detail_id), 'message_user': sector_user_id, 'type': '审批' } ) except: pass
def project_user_add(request): ''' @author: Xieyz @note: 项目用户添加 :return: UserChangeForm表单 ''' if request.method == "POST": change = UserChangeForm(request.POST) if not request.POST.get('project'): messages.add_message(request, messages.ERROR, '请选择项目!') return render(request, 'usercenter/project_user_change.html', {'form': change}) if change.is_valid(): data = change.cleaned_data change.save() # 更新日志 try: update_logs = UserChangeLogs() update_logs.user_id = project_user.objects.only('id').get( user_name=data.get('user_name'), project_id=data.get('project')).id update_logs.content = get_name_by_id.get_name( request.user.id) + '添加了新的用户' update_logs.save() except: pass messages.add_message(request, messages.SUCCESS, '添加用户"' + data.get('user_name') + '",添加成功!') return HttpResponseRedirect(reverse('user_manage')) else: messages.add_message(request, messages.ERROR, change.errors) return render(request, 'usercenter/project_user_change.html', {'form': change}) else: form = UserChangeForm() return render(request, 'usercenter/project_user_change.html', locals())
def cron_apply_approval_adopted(self): applicant = cronflow.objects.only('applicant').get(id=self.detail_id).applicant build_message( **{'message_title': '您申请的「计划任务变更」已经审批通过', 'message_content': '您申请的「计划任务变更」已经审批通过', 'message_url': '/flow/cronflow_manage/cronflow_details/' + str(self.detail_id), 'message_user': applicant.id } ) try: project_id = cronflow.objects.only('project').get(id=self.detail_id).project_id appoint_user_list = project_group.objects.filter(project_id=project_id,user_type__name='运维人员').values_list('user_id',flat=True) for sector_user_id in appoint_user_list: build_message( **{'message_title': '有一条「计划任务变更」工作流需要您执行', 'message_content': get_name_by_id.get_name(applicant.id) + '申请了「计划任务变更」, 项目经理审批已经通过, 下一步需要您执行!', 'message_url': '/flow/cronflow_manage/cronflow_details/' + str(self.detail_id), 'message_user': sector_user_id, 'type': '执行' } ) except: pass
def project_release_apply_approval_adopted(self): applicant = project_releaseflow.objects.only('applicant').get(id=self.detail_id).applicant build_message( **{'message_title': '您申请的「项目变更」已经审批通过, 等待执行变更', 'message_content': '您申请的「项目变更」已经审批通过, 等待执行变更', 'message_url': '/flow/releaseflow_manage/releaseflow_details/' + str(self.detail_id), 'message_user': applicant.id } ) try: project_id = project_releaseflow.objects.only('project').get(id=self.detail_id).project_id appoint_user_list = project_group.objects.filter(project_id=project_id,user_type__name='运维人员').values_list('user_id',flat=True) for sector_user_id in appoint_user_list: build_message( **{'message_title': '「项目变更」等待您执行变更', 'message_content': get_name_by_id.get_name(applicant.id) + '申请了「项目变更」, 测试审批和项目经理审批已经通过, 下一步(执行)需要您执行变更!', 'message_url': '/flow/releaseflow_manage/releaseflow_details/' + str(self.detail_id), 'message_user': sector_user_id, 'type': '执行' } ) except: pass
def project_user_authority_release_apply_approval_adopted(self): applicant = authority_flow.objects.only('applicant').get(id=self.detail_id).applicant build_message( **{'message_title': '您申请的「业务用户权限变更」已经审批通过', 'message_content': '您申请的「业务用户权限变更」已经审批通过', 'message_url': '/flow/project_authority_manage/project_authority_details/' + str(self.detail_id), 'message_user': applicant.id } ) try: project_id = authority_flow.objects.only('project').get(id=self.detail_id).project_id appoint_user_list = project_group.objects.filter(project_id=project_id,user_type__name='运维人员').values_list('user_id',flat=True) for sector_user_id in appoint_user_list: build_message( **{'message_title': '有一条「业务用户权限变更」需要您执行', 'message_content': get_name_by_id.get_name(applicant.id) + '申请了「业务用户权限变更」, 部门负责人审批已经通过, 下一步需要您执行!', 'message_url': '/flow/project_authority_manage/project_authority_details/' + str(self.detail_id), 'message_user': sector_user_id, 'type': '执行' } ) except: pass
def project_authority_group_add(request): ''' @author: Xieyz @note: 项目权限组添加 :return: AuthorityGroupForm表单 ''' if request.method == "POST": change = AuthorityGroupForm(request.POST) if not request.POST.get('project'): messages.add_message(request, messages.ERROR, '请选择项目!') type = 'add' return render(request, 'usercenter/project_authority_group_change.html', { 'form': change, 'type': type }) user_list = request.POST.getlist('doublebox') if change.is_valid(): data = change.cleaned_data change.save() add_user_list = [int(i) for i in user_list] user_name_list = [] if add_user_list: # 更新组和用户的关系表 for user_id in add_user_list: user_group_add = user_group() user_group_add.group_id = authority_group.objects.only( 'id').get(group_name=data.get('group_name'), project=data.get('project')).id user_group_add.user_name_id = user_id user_group_add.save() user_name_list.append( project_user.objects.only('user_name').get( id=user_id).user_name) # 更新日志 update_logs = AuthorityGroupChangeLogs() update_logs.group_id = authority_group.objects.only('id').get( group_name=data.get('group_name')).id update_logs.user_id = request.user.id update_logs.content = get_name_by_id.get_name( request.user.id) + '添加了新的用户组, 包含用户:' + str(user_name_list) update_logs.save() messages.add_message(request, messages.SUCCESS, '添加用户组"' + data.get('group_name') + '",添加成功!') return HttpResponseRedirect( reverse('project_authority_group_list')) else: messages.add_message(request, messages.ERROR, change.errors) type = 'add' return render(request, 'usercenter/project_authority_group_change.html', { 'form': change, 'type': type }) else: form = AuthorityGroupForm() type = 'add' return render(request, 'usercenter/project_authority_group_change.html', locals())