def post(self, request, pk, *args, **kwargs):
data = json.loads(self.request.body)
sites = data.get('sites')
users = data.get('users')
group = Group.objects.get(name=data.get('group'))
user = request.user
task = multiuserassignsite.delay(user, pk, sites, users, group.id)
if CeleryTaskProgress.objects.create(task_id=task.id, user=user, task_type=2):
return HttpResponse('sucess')
else:
return HttpResponse('Failed')
# if(Group="Reviewer or Site Supervisor") and request.user not in test
# return reverse redirect login
# if(Gropp="Project Manager")and not in request.user not in test
# return reverse redirect login
# class MultiUserAssignSiteView(ProjectRoleMixin, TemplateView):
# def get(self, request, pk):
# project_obj = Project.objects.get(pk=pk)
# return render(request, 'fieldsight/multi_user_assign.html',{'type': "site", 'pk':pk})
# def post(self, request, *args, **kwargs):
# data = json.loads(self.request.body)
# sites = data.get('sites')
# users = data.get('users')
# group = Group.objects.get(name=data.get('group'))
# response = ""
# for site_id in sites:
# site = Site.objects.get(pk=site_id)
# for user in users:
# role, created = UserRole.objects.get_or_create(user_id=user, site_id=site.id,
# project__id=site.project.id, organization__id=site.project.organization_id, group=group, ended_at=None)
# if created:
# # description = "{0} was assigned as {1} in {2}".format(
# # role.user.get_full_name(), role.lgroup.name, role.project)
# noti_type = 8
# # if data.get('group') == "Reviewer":
# # noti_type =7
# # noti = role.logs.create(source=role.user, type=noti_type, title=description,
# # description=description, content_type=site, extra_object=self.request.user,
# # site=role.site)
# # result = {}
# # result['description'] = description
# # result['url'] = noti.get_absolute_url()
# # ChannelGroup("notify-{}".format(role.organization.id)).send({"text": json.dumps(result)})
# # ChannelGroup("project-{}".format(role.project.id)).send({"text": json.dumps(result)})
# # ChannelGroup("site-{}".format(role.site.id)).send({"text": json.dumps(result)})
# # ChannelGroup("notify-0").send({"text": json.dumps(result)})
# # Device = get_device_model()
# # if Device.objects.filter(name=role.user.email).exists():
# # message = {'notify_type':'Assign Site', 'site':{'name': site.name, 'id': site.id}}
# # Device.objects.filter(name=role.user.email).send_message(message)
# else:
# response += "Already exists."
# return HttpResponse(response)
评论列表
文章目录