def form_valid(self, form): if self.check_as and self.object.antispam(self.request.user): raise PermissionDenied if "preview" in self.request.POST: return self.form_invalid(form) is_new = False if self.reaction: # it's an edition edit = CommentEdit() edit.comment = self.reaction edit.editor = self.request.user edit.original_text = self.reaction.text edit.save() self.reaction.update = datetime.now() self.reaction.editor = self.request.user self.reaction.hat = get_hat_from_request(self.request, self.reaction.author) else: self.reaction = ContentReaction() self.reaction.pubdate = datetime.now() self.reaction.author = self.request.user self.reaction.position = self.object.get_note_count() + 1 self.reaction.related_content = self.object self.reaction.hat = get_hat_from_request(self.request) is_new = True # also treat alerts if editor is a moderator if self.request.user != self.reaction.author and not is_new: alerts = Alert.objects.filter(comment__pk=self.reaction.pk, solved=False) for alert in alerts: alert.solve(self.request.user, _("Le message a été modéré.")) self.reaction.update_content( form.cleaned_data["text"], on_error=lambda m: messages.error( self.request, _("Erreur du serveur Markdown: {}").format("\n- ".join(m))), ) self.reaction.ip_address = get_client_ip(self.request) self.reaction.save() if is_new: # we first need to save the reaction self.object.last_note = self.reaction self.object.save(update_date=False) self.success_url = self.reaction.get_absolute_url() return super().form_valid(form)
def perform_edit_post(request, post, user, text): original_text = post.text # create an archive edit = CommentEdit() edit.comment = post edit.editor = user edit.original_text = original_text edit.save() post.update_content( text, on_error=lambda m: messages.error( request, _("Erreur du serveur Markdown:\n{}").format("\n- ".join(m))), ) post.hat = get_hat_from_request(request, post.author) post.update = datetime.now() post.editor = user post.save() # Save topic to update update_index_date if post.position == 1: post.topic.save() return post
def send_post( request, topic, author, text, ): post = Post() post.topic = topic post.author = author post.pubdate = datetime.now() if topic.last_message is not None: post.position = topic.last_message.position + 1 else: post.position = 1 post.update_content( text, on_error=lambda m: messages.error( request, _('Erreur du serveur Markdown:\n{}').format('\n- '.join(m)))) post.ip_address = get_client_ip(request) post.hat = get_hat_from_request(request) post.save() topic.last_message = post topic.save() return topic
def form_valid(self, form): self.perform_update(self.current_post, self.request.POST, hat=get_hat_from_request(self.request, self.current_post.author)) return redirect(self.current_post.get_absolute_url())
def form_valid(self, form): send_message_mp(self.request.user, self.object, form.data.get('text'), True, False, hat=get_hat_from_request(self.request)) return redirect(self.object.last_message.get_absolute_url())
def perform_edit_post(request, post, user, text): original_text = post.text # create an archive edit = CommentEdit() edit.comment = post edit.editor = user edit.original_text = original_text edit.save() post.update_content( text, on_error=lambda m: messages.error( request, _("Erreur du serveur Markdown:\n{}").format("\n- ".join(m))), ) post.hat = get_hat_from_request(request, post.author) post.update = datetime.now() post.editor = user post.save() # Save topic to update update_index_date if post.position == 1: post.topic.save() # If this post is marked as potential spam, we open an alert to notify the staff that # the post was edited. If an open alert already exists for this reason, we update the # date of this alert to avoid lots of them stacking up. if original_text != text and post.is_potential_spam and post.editor == post.author: bot = get_object_or_404( User, username=settings.ZDS_APP["member"]["bot_account"]) alert_text = _( "Ce message, soupçonné d'être un spam, a été modifié.") try: alert = post.alerts_on_this_comment.filter( author=bot, text=alert_text, solved=False).latest() alert.pubdate = datetime.now() alert.save() except Alert.DoesNotExist: Alert(author=bot, comment=post, scope="FORUM", text=alert_text, pubdate=datetime.now()).save() return post
def send_post(request, topic, author, text,): post = Post() post.topic = topic post.author = author post.pubdate = datetime.now() if topic.last_message is not None: post.position = topic.last_message.position + 1 else: post.position = 1 post.update_content(text) post.ip_address = get_client_ip(request) post.hat = get_hat_from_request(request) post.save() topic.last_message = post topic.save() return topic
def perform_edit_post(request, post, user, text): # create an archive edit = CommentEdit() edit.comment = post edit.editor = user edit.original_text = post.text edit.save() post.update_content(text) post.hat = get_hat_from_request(request, post.author) post.update = datetime.now() post.editor = user post.save() if post.position == 1: # Save topic to update update_index_date post.topic.save() return post
def form_valid(self, form): participants = [] for participant in form.data['participants'].split(','): current = participant.strip() if not current: continue participants.append(get_object_or_404(User, username=current)) p_topic = send_mp(self.request.user, participants, form.data['title'], form.data['subtitle'], form.data['text'], True, False, hat=get_hat_from_request(self.request)) return redirect(p_topic.get_absolute_url())
def form_valid(self, form): participants = [] for participant in form.data["participants"].split(","): current = participant.strip() if not current: continue participants.append(get_object_or_404(User, username=current)) p_topic = send_mp( self.request.user, participants, form.data["title"], form.data["subtitle"], form.data["text"], send_by_mail=True, leave=False, hat=get_hat_from_request(self.request), ) return redirect(p_topic.get_absolute_url())
def perform_edit_post(request, post, user, text): # create an archive edit = CommentEdit() edit.comment = post edit.editor = user edit.original_text = post.text edit.save() post.update_content( text, on_error=lambda m: messages.error( request, _('Erreur du serveur Markdown:\n{}').format('\n- '.join(m)))) post.hat = get_hat_from_request(request, post.author) post.update = datetime.now() post.editor = user post.save() if post.position == 1: # Save topic to update update_index_date post.topic.save() return post
def send_post(request, topic, author, text,): post = Post() post.topic = topic post.author = author post.pubdate = datetime.now() if topic.last_message is not None: post.position = topic.last_message.position + 1 else: post.position = 1 post.update_content( text, on_error=lambda m: messages.error( request, _('Erreur du serveur Markdown:\n{}').format('\n- '.join(m)))) post.ip_address = get_client_ip(request) post.hat = get_hat_from_request(request) post.save() topic.last_message = post topic.save() return topic