def post(self, request, *args, **kwargs):
user = request.user
team_info = json.loads(request.body.decode("utf-8"))
validator = Validator(team_schema)
if not validator.validate(team_info):
return JsonResponse({'error': validator.errors})
survey_send_time = parser.parse(team_info['send_time']).replace(second=0, microsecond=0)
summary_send_time = parser.parse(team_info['summary_time']).replace(second=0, microsecond=0)
rule = recurrence.Rule(recurrence.WEEKLY, byday=team_info['days_of_week'])
now = datetime.datetime.now()
exdates = []
if survey_send_time < now:
exdates.append(now.replace(hour=0, minute=0, second=0, microsecond=0))
rec = recurrence.Recurrence(rrules=[rule], exdates=exdates)
try:
team = Team.objects.create(admin=user, name=team_info['name'])
except IntegrityError:
return JsonResponse({'error': {"name": _("team with this name already exists")}})
Report.objects.create(team=team, recurrences=rec, survey_send_time=survey_send_time,
summary_send_time=summary_send_time)
team_dict = model_to_dict(team, exclude=['users'])
team_dict['report'] = self.report_dict(team)
return JsonResponse({'team': team_dict})
评论列表
文章目录