def create_post(self, request): self.log_action = "send" self.log_resource = "mural" self.log_context = {} if "file" in request.data: file = request.FILES["file"] data = json.loads(request.data["data"]) else: file = None data = ( request.data if request.data else json.loads(request.body.decode("utf-8")) ) username = data["email"] message = data["message"] space = data["subject"] action = data["action"] info = {} subject = Subject.objects.get(slug=space) user = User.objects.get(email=username) post = SubjectPost() post.action = action post.space = subject post.post = message post.user = user if not file is None: post.image = file post.save() if not post.pk is None: users = getSpaceUsers(user.id, post) entries = [] paths = [ reverse("mural:manage_subject"), reverse("mural:subject_view", args=(), kwargs={"slug": subject.slug}), ] simple_notify = _("%s has made a post in %s") % ( str(post.user), str(post.space), ) notification = { "type": "mural", "subtype": "post", "paths": paths, "user_icon": user.image_url, "simple_notify": simple_notify, "complete": render_to_string( "mural/_view.html", {"post": post}, request ), "container": "#" + subject.slug, "accordion": True, "post_type": "subjects", } notification = json.dumps(notification) for user in users: entries.append(MuralVisualizations(viewed=False, user=user, post=post)) sendMuralPushNotification(user, post.user, simple_notify) Group("user-%s" % user.id).send({"text": notification}) MuralVisualizations.objects.bulk_create(entries) self.log_context["subject_id"] = post.space.id self.log_context["subject_name"] = post.space.name self.log_context["subject_slug"] = post.space.slug serializer = MuralSerializer( post, context={"request_user": user, "subject": space} ) json_r = json.dumps(serializer.data) json_r = json.loads(json_r) info["data"] = {} info["data"]["new_post"] = json_r info["message"] = _("Post created successfully!") info["success"] = True info["number"] = 1 super(MuralViewset, self).createLog( user, self.log_component, self.log_action, self.log_resource, self.log_context, ) else: info["message"] = _("Error while creating post!") info["success"] = False info["number"] = 0 response = json.dumps(info) return HttpResponse(response)
def create_comment(self, request): self.log_action = 'send' self.log_resource = 'post_comment' self.log_context = {} if 'file' in request.data: file = request.FILES['file'] data = json.loads(request.data['data']) else: file = None data = request.data if request.data else json.loads(request.body.decode('utf-8')) username = data['email'] message = data['message'] post = data["post_id"] info = {} mural = SubjectPost.objects.get(id = post) user = User.objects.get(email = username) comment = Comment() comment.comment = message comment.post = mural comment.user = user if not file is None: comment.image = file comment.save() if not comment.pk is None: users = getSpaceUsers(user.id, mural) entries = [] paths = [ reverse("mural:manage_general"), reverse("mural:manage_category"), reverse("mural:manage_subject"), reverse("mural:subject_view", args = (), kwargs = {'slug': mural.get_space_slug()}) ] simple_notify = _("%s has commented in a post")%(str(comment.user)) notification = { "type": "mural", "subtype": "post", "paths": paths, "user_icon": user.image_url, "simple_notify": simple_notify, "complete": render_to_string("mural/_view_comment.html", {"comment": comment}, request), "container": "#post-" + str(mural.get_id()), "post_type": mural._my_subclass, "type_slug": mural.get_space_slug() } notification = json.dumps(notification) for user in users: entries.append(MuralVisualizations(viewed = False, user = user, comment = comment)) sendMuralPushNotification(user, comment.user, simple_notify) Group("user-%s" % user.id).send({'text': notification}) MuralVisualizations.objects.bulk_create(entries) self.log_context['post_id'] = mural.id self.log_context['subject_id'] = mural.space.id self.log_context['subject_name'] = mural.space.name self.log_context['subject_slug'] = mural.space.slug serializer = CommentsSerializer(comment, context = {"request_user": user, "subject": mural.space.slug}) json_r = json.dumps(serializer.data) json_r = json.loads(json_r) info["data"] = {} info["data"]["new_comment"] = json_r info["message"] = _("Comment created successfully!") info["success"] = True info["number"] = 1 super(MuralViewset, self).createLog(user, self.log_component, self.log_action, self.log_resource, self.log_context) else: info["message"] = _("Error while creating comment!") info["success"] = False info["number"] = 0 response = json.dumps(info) return HttpResponse(response)
def create_comment(self, request): self.log_action = "send" self.log_resource = "post_comment" self.log_context = {} if "file" in request.data: file = request.FILES["file"] data = json.loads(request.data["data"]) else: file = None data = ( request.data if request.data else json.loads(request.body.decode("utf-8")) ) username = data["email"] message = data["message"] post = data["post_id"] info = {} mural = SubjectPost.objects.get(id=post) user = User.objects.get(email=username) comment = Comment() comment.comment = message comment.post = mural comment.user = user if not file is None: comment.image = file comment.save() if not comment.pk is None: users = getSpaceUsers(user.id, mural) entries = [] paths = [ reverse("mural:manage_general"), reverse("mural:manage_category"), reverse("mural:manage_subject"), reverse( "mural:subject_view", args=(), kwargs={"slug": mural.get_space_slug()}, ), ] simple_notify = _("%s has commented in a post") % (str(comment.user)) notification = { "type": "mural", "subtype": "post", "paths": paths, "user_icon": user.image_url, "simple_notify": simple_notify, "complete": render_to_string( "mural/_view_comment.html", {"comment": comment}, request ), "container": "#post-" + str(mural.get_id()), "post_type": mural._my_subclass, "type_slug": mural.get_space_slug(), } notification = json.dumps(notification) for user in users: entries.append( MuralVisualizations(viewed=False, user=user, comment=comment) ) sendMuralPushNotification(user, comment.user, simple_notify) Group("user-%s" % user.id).send({"text": notification}) MuralVisualizations.objects.bulk_create(entries) self.log_context["post_id"] = mural.id self.log_context["subject_id"] = mural.space.id self.log_context["subject_name"] = mural.space.name self.log_context["subject_slug"] = mural.space.slug serializer = CommentsSerializer( comment, context={"request_user": user, "subject": mural.space.slug} ) json_r = json.dumps(serializer.data) json_r = json.loads(json_r) info["data"] = {} info["data"]["new_comment"] = json_r info["message"] = _("Comment created successfully!") info["success"] = True info["number"] = 1 super(MuralViewset, self).createLog( user, self.log_component, self.log_action, self.log_resource, self.log_context, ) else: info["message"] = _("Error while creating comment!") info["success"] = False info["number"] = 0 response = json.dumps(info) return HttpResponse(response)
def create_post(self, request): self.log_action = 'send' self.log_resource = 'mural' self.log_context = {} if 'file' in request.data: file = request.FILES['file'] data = json.loads(request.data['data']) else: file = None data = request.data if request.data else json.loads(request.body.decode('utf-8')) username = data['email'] message = data['message'] space = data['subject'] action = data['action'] info = {} subject = Subject.objects.get(slug = space) user = User.objects.get(email = username) post = SubjectPost() post.action = action post.space = subject post.post = message post.user = user if not file is None: post.image = file post.save() if not post.pk is None: users = getSpaceUsers(user.id, post) entries = [] paths = [ reverse("mural:manage_subject"), reverse("mural:subject_view", args = (), kwargs = {'slug': subject.slug}) ] simple_notify = _("%s has made a post in %s")%(str(post.user), str(post.space)) notification = { "type": "mural", "subtype": "post", "paths": paths, "user_icon": user.image_url, "simple_notify": simple_notify, "complete": render_to_string("mural/_view.html", {"post": post}, request), "container": "#" + subject.slug, "accordion": True, "post_type": "subjects" } notification = json.dumps(notification) for user in users: entries.append(MuralVisualizations(viewed = False, user = user, post = post)) sendMuralPushNotification(user, post.user, simple_notify) Group("user-%s" % user.id).send({'text': notification}) MuralVisualizations.objects.bulk_create(entries) self.log_context['subject_id'] = post.space.id self.log_context['subject_name'] = post.space.name self.log_context['subject_slug'] = post.space.slug serializer = MuralSerializer(post, context = {"request_user": user, "subject": space}) json_r = json.dumps(serializer.data) json_r = json.loads(json_r) info["data"] = {} info["data"]["new_post"] = json_r info["message"] = _("Post created successfully!") info["success"] = True info["number"] = 1 super(MuralViewset, self).createLog(user, self.log_component, self.log_action, self.log_resource, self.log_context) else: info["message"] = _("Error while creating post!") info["success"] = False info["number"] = 0 response = json.dumps(info) return HttpResponse(response)