def create_message(auteur, contenu, thread, isnewthread=False): newmessage = Message(auteur=auteur, contenu=contenu, thread=thread) newmessage.save() LogActivity.recordActivity(qui=auteur, quoi=newmessage, comment="a publié un nouveau message : <a href='%s'>%s</a>" % (newmessage.thread.get_absolute_url(), newmessage.thread.titre)) subscribe_thread_message(newmessage) ThreadMail(message=newmessage, isnewthread=isnewthread).start() return newmessage
def post_create_thread(request): errors = [] params = deepValidateAndFetch(request, errors) if len(errors) == 0: with transaction.atomic(): thread = Thread(title=params['title'], author=params['author'], section_id=params['section']) if params['visibility'] == 'private': thread.recipient = params['recipient'] if params['visibility'] == 'class': thread.lesson = params['lesson'] if params['visibility'] == 'public': thread.professor = params['professor'] thread.save() if params['skills_fetched']: thread.skills = params['fetched_skills'] thread.save() sendNotification(getWSNotificationForNewThread(thread)) original_message = Message( content=params['content'], thread=thread, author=params['author'], created_date=utc.localize(datetime.now()), modified_date=utc.localize(datetime.now())) original_message.save() sendNotification(getNotificationForNewMessage(original_message)) return redirect(thread) else: skills, sections = get_skills(request) params['skills'] = skills params['sections'] = sections if params['skills_fetched']: params['selected_skills'] = map(lambda x: x.id, params['fetched_skills']) else: params['selected_skills'] = [] if params['section'] is not None: params['selected_section'] = int(params['section']) return render(request, "forum/new_thread.haml", { "errors": errors, "data": params })
def form_valid(self, form): #此处有待加强安全验证 sender = LoginUser.objects.get(username=self.request.user) receiver_id = int(self.kwargs.get('pk')) receiver = LoginUser.objects.get(id=receiver_id) formdata = form.cleaned_data formdata['sender'] = sender formdata['receiver'] = receiver m = Message(**formdata) m.save() return HttpResponse("消息发送成功!")