Changeset 3026 for trunk


Ignore:
Timestamp:
05/07/10 14:49:35 (10 years ago)
Author:
jukka
Message:

Fixed #1963. Resource types have now useful descriptions.

Location:
trunk
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/BlogPost.py

    r3002 r3026  
    137137        return self.absolute_url() 
    138138 
     139    def getMetaDescription(self): 
     140        """ Description for html header. """  
     141        desc=self.getRawBodyText() 
     142        desc_len=0 
     143        desc_result=[] 
     144        ltool = getToolByName(self, 'lemill_tool')         
     145        desc=ltool.stripHTML(desc) 
     146        # Add paragraphs until total is over 140 characters 
     147        for p in desc.split('\n'): 
     148            if p: # ignore empty lines 
     149                desc_len+=len(p) 
     150                desc_result.append(p) 
     151            if desc_len > 140: 
     152                break 
     153        return '\n'.join(desc_result) 
     154     
    139155         
    140156    def getNicename(self): 
  • trunk/Collection.py

    r3011 r3026  
    234234        return None                     
    235235 
     236    def getMetaDescription(self): 
     237        """ Biography is a good description, but if not filled, then skills, interests or subject areas  """ 
     238        desc= self.Description() 
     239        if desc: 
     240            desc_len=0 
     241            desc_result=[] 
     242            ltool = getToolByName(self, 'lemill_tool')         
     243            desc=ltool.stripHTML(desc) 
     244            for p in desc.split('\n'): 
     245                if p: # ignore empty lines 
     246                    desc_len+=len(p) 
     247                    desc_result.append(p) 
     248                if desc_len > 140: 
     249                    break 
     250            return '\n'.join(desc_result) 
     251        lutool = getToolByName(self, 'lemill_usertool')         
     252        return "%s's collection of LeMill resources" % lutool.linkTo(self.Creator(), disabled=True) 
     253 
     254 
    236255    def getPathInsideCollection(self, obj): 
    237256        """ Returns a path in form portal_url/member/collection/content_section/content_subfolder/content_id """ 
  • trunk/CommonMixIn.py

    r3024 r3026  
    161161        """ Branching is only for learning resources """ 
    162162        return False 
     163 
     164 
     165    def getMetaDescription(self): 
     166        """ Default, resources should override this and give something useful """ 
     167        return "LeMill is a web community for finding, authoring and sharing learning resources." 
    163168 
    164169    def getDefaultPath(self, as_list=False): 
  • trunk/GroupBlog.py

    r3014 r3026  
    185185            if self.Title() != objlist[0].Title: 
    186186                self.helper_updateCatalogUID() 
     187 
     188    def getMetaDescription(self): 
     189        """ Use group description for header metadata   """ 
     190        return self.getDescription()  
    187191             
    188192    def getGroupMaterials(self, n=False, as_dict=False): 
  • trunk/LeMillTool.py

    r3024 r3026  
    4343import calendar 
    4444from Products.ZCatalog.Lazy import LazyCat 
     45from HTMLParser import HTMLParser 
    4546from messagefactory_ import i18nme as _ 
    4647 
     
    158159DANGEROUS_CHARS_REGEX = re.compile(r"[?&/:\\#]+") 
    159160EXTRA_DASHES_REGEX = re.compile(r"(^\-+)|(\-+$)") 
     161 
     162 
     163class MLStripper(HTMLParser): 
     164    def __init__(self): 
     165        self.reset() 
     166        self.fed = [] 
     167    def handle_data(self, d): 
     168        self.fed.append(d) 
     169    def get_data(self): 
     170        return ''.join(self.fed) 
    160171 
    161172 
     
    959970                break 
    960971        return dict 
     972 
     973 
     974 
     975    def stripHTML(self, html): 
     976        """ based on this: http://stackoverflow.com/questions/753052/strip-html-from-strings-in-python """ 
     977        s = MLStripper() 
     978        s.feed(html) 
     979        return s.get_data() 
    961980 
    962981 
  • trunk/MemberFolder.py

    r3014 r3026  
    345345        """ return user's id """ 
    346346        return self.Creator() 
     347 
     348    def getMetaDescription(self): 
     349        """ Biography is a good description, but if not filled, then skills, interests or subject areas  """ 
     350        return self.getBiography() or ', '.join(self.getTags()) or ', '.join(self.getSubject_area()) 
    347351 
    348352    def getLocation_country(self): 
  • trunk/Resource.py

    r3014 r3026  
    296296            return True 
    297297        return False 
    298              
     298 
     299 
     300    def getMetaDescription(self): 
     301        """ Description for html header. """  
     302        # If resource has description field, use it            
     303        if hasattr(self, 'description'): 
     304            try: 
     305                desc=self.getDescription() 
     306            except AttributeError(): 
     307                try: 
     308                    desc=self.Description() 
     309                except AttributeError(): 
     310                    desc='' 
     311            if desc: 
     312                return desc 
     313        # try bodytext 
     314        if hasattr(self, 'getRawBodyText'): 
     315            desc=self.getRawBodyText() 
     316            if isinstance(desc, list): 
     317                desc=desc[0] 
     318                if isinstance(desc, tuple): 
     319                    desc=desc[0] 
     320            desc_len=0 
     321            desc_result=[] 
     322            ltool = getToolByName(self, 'lemill_tool')         
     323            desc=ltool.stripHTML(desc) 
     324            # Add paragraphs until total is over 140 characters 
     325            for p in desc.split('\n'): 
     326                if p: # ignore empty lines 
     327                    desc_len+=len(p) 
     328                    desc_result.append(p) 
     329                if desc_len > 140: 
     330                    break 
     331            return '\n'.join(desc_result) 
     332        # Else give some basic info 
     333        return "LeMill %s by %s" % (self.portal_type, self.Creator())  
     334         
    299335 
    300336    def getLREMetadata(self): 
  • trunk/skins/lemill/header.pt

    r2999 r3026  
    88    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> 
    99    <title> LeMill &mdash; <span tal:replace="object_title"/></title> 
    10     <meta name="description" content="LeMill is a web community for finding, authoring and sharing learning resources." /> 
     10    <meta name="description" tal:attributes="content context/getMetaDescription | python:'LeMill is a web community for finding, authoring and sharing learning resources.'" /> 
    1111    <base href="" tal:attributes="href here/renderBase" /> 
    1212    <meta name="generator" content="Plone - http://plone.org" /> 
  • trunk/skins/lemill/master.js

    r3025 r3026  
    4040 
    4141function getLatestBlogPost(lang){ 
    42  url="http://blog.lemill.net/"+lang+"/?feed=rss2"; 
     42 url="http://blog.lemill.net/"+lang+"/?feed=rss"; 
    4343 $.getJSON("http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&callback=?&q="+url,function(data){ 
    4444    item=data.responseData.feed.entries[0]; 
Note: See TracChangeset for help on using the changeset viewer.