def edit(request, slug, lang='en'): article = get_object_or_404(Article, slug=slug) articleContent = article.get_newest_content(lang) if request.method == 'POST': new_articleContent = ArticleContent(article=article, lang=lang) form = EditArticleForm(request.POST, instance=new_articleContent) if form.is_valid(): new_articleContent.article = article new_articleContent.edited_by = request.user new_articleContent.parent = articleContent new_articleContent.save() articleContent.child = new_articleContent articleContent.save(change_updated_time=False) return HttpResponseRedirect(new_articleContent.get_absolute_url()) else: form = EditArticleForm(instance=articleContent) available_languages = article.get_available_languages(articleContent) language_list = map(lambda x: (x[0], x[1].get_edit_url), available_languages or []) return render(request, 'edit.html', { "mathjax": True, "language_list": language_list, "articleContent": articleContent, "form": form, "title": "Edit: " + article.slug, })
def edit(request, slug, lang='en'): article = get_object_or_404(Article, slug=slug) article_content = article.get_newest_content(lang) if request.method == 'POST': new_article_content = ArticleContent(article=article, lang=lang) form = EditArticleForm(request.POST, instance=new_article_content) if form.is_valid(): new_article_content.article = article new_article_content.edited_by = request.user new_article_content.parent = article_content new_article_content.save() article_content.child = new_article_content article_content.save(change_updated_time=False) return HttpResponseRedirect(new_article_content.get_absolute_url()) else: form = EditArticleForm(instance=article_content) available_languages = article.get_available_languages(article_content) language_list = map(lambda x: (x[0], x[1].get_edit_url), available_languages or []) return render(request, 'edit.html', { 'mathjax': True, 'language_list': language_list, 'articleContent': article_content, 'form': form, 'title': 'Edit: ' + article.slug, })
class ArticleContentTest(TestCase): def setUp(self): self.article1 = Article(slug="TDT4100") self.article1.save() self.ac1 = ArticleContent(article=self.article1, updated=datetime.datetime(2012, 1, 1), title='Cooking and baking', lang='fr', content='# Title') self.ac2 = ArticleContent(article=self.article1, updated=datetime.datetime(2014, 1, 1), title='Cooking and baking', lang='fr') self.ac1.save() self.ac2.save() def test_title_cannot_contain_slashes(self): ac = ArticleContent() ac.title = 'asdf/sdfi' ac.article = self.article1 with self.assertRaises(ValidationError): ac.save() def test_get_full_title(self): self.assertEquals('TDT4100: Cooking and baking', self.ac1.get_full_title()) def test_get_last_descendant(self): self.assertEquals(self.ac2, self.ac1.get_last_descendant()) def test_get_absolute_url(self): self.assertEquals('/TDT4100_Cooking_and_baking/fr/', self.ac1.get_absolute_url()) def test_get_edit_url(self): self.assertEquals('/TDT4100_Cooking_and_baking/fr/edit/', self.ac1.get_edit_url()) def test_get_add_language_url(self): self.assertEquals('/TDT4100/add_language/', self.ac1.get_add_language_url()) def test_get_history_url(self): self.assertEquals('/TDT4100_Cooking_and_baking/fr/history/', self.ac1.get_history_url()) def test_get_history_single_url(self): self.assertEquals('/TDT4100_Cooking_and_baking/fr/history/%s/' % ( self.ac1.pk), self.ac1.get_history_single_url()) def test_get_html_content(self): self.assertTrue('<h1>' in self.ac1.get_html_content()['html']) def test___unicode__(self): self.assertEquals('[1] Cooking and baking', unicode(self.ac1))