Changeset 1837

Show
Ignore:
Timestamp:
03/03/09 13:46:01 (13 months ago)
Author:
JensDiemer
Message:

New in blog plugin: Markup preview + unittest for this

Location:
trunk/pylucid_project
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • trunk/pylucid_project/media/PyLucid/internal_page/blog/edit_blog_entry.css

    r1686 r1837  
    88    border: 1px solid #000; 
    99    background-color: #FFF; 
     10} 
     11/* -------------------------------------------------------------------------- */ 
     12#blog_preview { 
     13    background-color: #EEE; 
     14} 
     15#blog_preview, #blog_preview legend { 
     16    border-color: #A00; 
    1017} 
    1118/* -------------------------------------------------------------------------- */ 
  • trunk/pylucid_project/media/PyLucid/internal_page/blog/edit_blog_entry.html

    r1701 r1837  
     1{% if preview_content %} 
     2<fieldset id="blog_preview"> 
     3<legend><strong>{% trans 'preview' %}</strong></span> 
     4</legend> 
     5{{ preview_content }} 
     6</fieldset> 
     7{% endif %} 
     8 
    19<fieldset><legend>{{ legend }}</legend> 
    210<form method="post" action="."> 
     
    1220</ul> 
    1321<input type="submit" name="save" value="{% trans 'save' %}" /> 
     22<input type="submit" name="preview" value="{% trans 'preview' %}" /> 
    1423<input onclick="self.location.href='{{ url_abort }}'" name="abort" value="{% trans 'abort' %}" type="reset" /> 
    1524</form> 
  • trunk/pylucid_project/PyLucid/plugins_internal/blog/blog.py

    r1835 r1837  
    2828from django.http import HttpResponse 
    2929from django.core.mail import send_mail 
    30 #from django.utils.encoding import force_unicode 
    3130from django.utils.translation import ugettext as _ 
    32 #from django import forms 
    33 #from django.forms import ValidationError 
    34 #from django.contrib.syndication.feeds import Feed, FeedDoesNotExist 
    3531 
    3632# from PyLucid 
    37 from PyLucid.tools.utils import escape 
     33from PyLucid.tools.syndication_feed import FeedFormat, FEED_FORMAT_INFO 
     34from PyLucid.tools.content_processors import apply_markup 
    3835from PyLucid.system.BasePlugin import PyLucidBasePlugin 
    3936from PyLucid.tools.utils import escape_django_tags 
    4037from PyLucid.system.page_msg import PageMessages 
    41 #from PyLucid.tools.forms_utils import InternalURLField 
    42 from PyLucid.tools.syndication_feed import FeedFormat, FEED_FORMAT_INFO 
     38from PyLucid.tools.utils import escape 
    4339 
    4440# from blog plugin 
     
    285281        } 
    286282 
     283        if blog_obj == None: # a new blog entry should be created 
     284            context["legend"] = _("Create a new blog entry") 
     285        else: 
     286            context["legend"] = _("Edit a existing blog entry") 
     287 
    287288        if self.request.method == 'POST': 
    288289            form = BlogEntryForm(self.request.POST) 
    289290            #self.page_msg(self.request.POST) 
    290             if form.is_valid(): 
     291            if form.is_valid() and "preview" in self.request.POST: 
     292                # Do only a preview of the blog content with the markup 
     293                preview_content = apply_markup( 
     294                    content   = form.cleaned_data["content"], 
     295                    context   = self.context, 
     296                    markup_no = form.cleaned_data["markup"], 
     297                ) 
     298                context["preview_content"] = preview_content 
     299            elif form.is_valid(): 
     300                # Save the new/edited blog entry 
    291301                new_tags = form.cleaned_data.pop("new_tags") # ListCharField 
    292302 
     
    324334        else: 
    325335            if blog_obj == None: 
    326                 context["legend"] = _("Create a new blog entry") 
    327336                form = BlogEntryForm( 
    328337                    initial={"markup": self.preferences["default_markup"],} 
    329338                ) 
    330339            else: 
    331                 context["legend"] = _("Edit a existing blog entry") 
    332340                form = BlogEntryForm(instance=blog_obj) 
    333341 
     
    487495        Send notify emails. 
    488496        """ 
     497        #self.page_msg(self.request.POST) 
    489498        content = clean_data["content"] 
    490  
    491499        try: 
    492500            mail_title = self._check_comment_submit(blog_entry, content) 
  • trunk/pylucid_project/tests/plugin_admin_blog.py

    r1836 r1837  
    3737# Run test with: 
    3838PAGE_ID = 1 
     39 
     40 
     41BLOG_POST_DATA1 = { 
     42    u'headline': u'A unittest blog entry',  
     43    u'markup': u'6', # Creole 
     44    u'content': u'The unittest blog content', 
     45    u'is_public': u'on',  
     46    u'new_tags': u'unittest blog tags', 
     47} 
     48 
    3949 
    4050class TestPluginBlog(tests.TestCase): 
     
    103113        ) 
    104114         
     115    def test_blog_entry_preview(self): 
     116        """ 
     117        Test the markup preview 
     118        """ 
     119        self.login("staff") 
     120         
     121        post_data = { 
     122            u'headline': u'preview test',  
     123            u'markup': u'6', # Creole 
     124            u'content': u'[[url|title]]\n*list1\n*list2', 
     125            u'preview': u'preview' 
     126        } 
     127         
     128        # Create a new blog entry 
     129        response = self.client.post(self.add_entry_url, post_data) 
     130        self.failUnlessEqual(response.status_code, 200) 
     131        self.assertResponse( 
     132            response, 
     133            must_contain=( 
     134                '<p><a href="url">title</a></p>', 
     135                "<li>list1</li>", "<li>list2</li>", 
     136                "preview", 
     137                "Create a new blog entry", 
     138                "save", "preview", "abort", 
     139            ), 
     140            must_not_contain=("Traceback", "Error",), 
     141        ) 
     142         
    105143    def test_create_new_blog_entry(self): 
    106144        """ 
     
    110148        """ 
    111149        self.login("staff") 
    112           
     150         
     151        post_data = BLOG_POST_DATA1.copy() 
     152        post_data.update({u'save': u'save'}) 
     153         
    113154        # Create a new blog entry 
    114         response = self.client.post( 
    115             self.add_entry_url, 
    116             { 
    117                 u'headline': u'A unittest blog entry',  
    118                 u'markup': u'6', # Creole 
    119                 u'content': u'The unittest blog content', 
    120                 u'is_public': u'on',  
    121                 u'new_tags': u'unittest blog tags', 
    122                 u'save': u'save', 
    123             } 
    124         ) 
     155        response = self.client.post(self.add_entry_url, post_data) 
    125156        self.failUnlessEqual(response.status_code, 200) 
    126157        self.assertResponse(