def add_or_edit_article(request, article_id=None, action=None): mail_service = MailService() params = {} if request.user.is_authenticated(): params['page'] = 'add_article' params['edit_allowed'] = True article = None if article_id: try: article = Article.objects.get(id=article_id) if article.author == request.user: params['page'] = 'edit_article' else: params['edit_allowed'] = False except Article.DoesNotExist: pass if request.method == 'POST': form = ArticleForm(request.POST, instance=article) if form.is_valid(): # Process the data in form.cleaned_data article = form.save(commit=False) if 'is_public' in request.POST: article.is_public = True if not article.date: article.date = datetime.now() else: article.is_public = False article.author = request.user # Todo: remove this article.save() article.authors.add(request.user) tags = form.cleaned_data['tags'] article.tags.clear() for tag in tags: article.tags.add(tag) if article.is_public: mail_service.send_mail_on_first_article_publish(article, request.user) return redirect('/articles/%s/' % article.id) else: form = ArticleForm(instance=article) # An unbound form params['form'] = form return direct_to_template(request, 'articles/add_or_edit_article.html', params)
def on_article_comment(request, comment, **kwargs): MailService.send_mail_on_article_comment(comment)
def on_user_activate(request, user, **kwargs): MailService.send_mail_on_user_activate(request, user)