def boss_create_project(request): uuid = UseAes(SECRET_KEY).decodebytes(request.COOKIES.get('uuid')) user = Staff.objects.filter(telephone=uuid).first() if (not user) or (user.department_id != 1): return JsonResponse(data={ "code": 0, "msg": "违规操作" }, json_dumps_params={'ensure_ascii': False}) if request.method == 'GET': # uuid = UseAes(SECRET_KEY).decodebytes(request.COOKIES.get('uuid')) pro_leader = [ staff for staff in Staff.objects.filter( ~Q(staff_id=user.staff_id), department__department_id__in=LEADER).values() ] all_pro = [pro for pro in Project.objects.all().values()] for pro in all_pro: pro['pro_leader_name'] = Staff.objects.get( staff_id=pro['project_leader_id']).username pro['pro_leader_telephone'] = Staff.objects.get( staff_id=pro['project_leader_id']).telephone data = { 'pro_leader': pro_leader, 'all_pro': all_pro, } return JsonResponse({ 'code': 1, 'msg': '请求成功', 'data': data }, json_dumps_params={'ensure_ascii': False}) elif request.method == 'POST': try: pro_name = request.POST.get('pro_name') pro_leader = request.POST.get('pro_leader') overtime = request.POST.get('overtime') remarks = request.POST.get('remarks') new_pro = Project() new_pro.project_name = pro_name new_pro.project_leader = Staff.objects.get(staff_id=pro_leader) new_pro.overtime = overtime new_pro.note = remarks new_pro.save() except: return JsonResponse({ 'code': 0, 'msg': '创建任务失败' }, json_dumps_params={'ensure_ascii': False}) return JsonResponse({'code': 1, 'msg': '创建任务成功'})
def create_new_project(name: str, creator: str) -> Optional[str]: """ Create a new project :param name: a name of the project :param creator: a creator of the project :return: an id of the project """ if not (name and creator): return None try: project = Project(name=name, managers=[creator]) project.save() return str(project.id) except Exception as e: logger.exception(f'Failed to create Project. Error: {e}') return None