Changeset 1909


Ignore:
Timestamp:
07/31/07 15:25:51 (12 years ago)
Author:
jukka
Message:

Fixed #1477, did some major refactoring to browsing templates, again. Now the browsing is pretty powerful and consistent. CSS for showing which selection was selected looked bad on some browsers.

Location:
trunk
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/LargeSectionFolder.py

    r1907 r1909  
    676676        types={} 
    677677        subjs={} 
     678        tags={} 
    678679        # Create dictionaries 
    679680        for r in results: 
     
    688689                for s in r.getSubject_area: 
    689690                    subjs[s]=subjs.get(s,0)+1 
     691            if r.getTags: 
     692                for s in r.getTags: 
     693                    tags[s]=tags.get(s,0)+1 
     694 
    690695        # Convert them to tuples where (value, display value) 
    691696        langlist=[(lang_dict[x], x, y) for (x,y) in langs.items()] 
     
    693698        typelist=[(TYPE_NAMES[x][0],x, y) for (x,y) in types.items()] 
    694699        subjslist=[(x,x,y) for (x,y) in subjs.items()] 
     700        tagslist=[(x,x,y) for (x,y) in tags.items()] 
    695701        langlist.sort() 
    696702        targlist.sort() 
    697703        typelist.sort() 
    698704        subjslist.sort() 
    699         return (langlist, targlist, typelist, subjslist) 
     705        tagslist.sort() 
     706        return {'language':langlist, 'target_group':targlist, 'type':typelist, 'subject_area':subjslist, 'tags':tagslist} 
    700707         
    701708    def getBrowseArguments(self, request): 
     
    713720                has_args=True 
    714721                argdict[goodargs[key]]=source[key] 
    715         return {'has_args':has_args,'argdict':argdict, 'tags':'getTags','target_group':'getTarget_group','language':'Language','portal_type':'Type', 'subject_area':'getSubject_area',  
     722        return {'has_args':has_args,'argdict':argdict, 'tags':'getTags','target_group':'getTarget_group','language':'Language','type':'portal_type', 'subject_area':'getSubject_area',  
    716723        'resources_tags':'Resource', 'pieces_tags':'Piece','references_tags':'Reference'}   
    717724 
     
    771778 
    772779    def getSelectables(self, results): 
    773         """Try to find which of languages are found in results""" 
     780        """Try to find which of languages and tags are found in results""" 
    774781        lang_dict = getToolByName(self, 'lemill_tool').language_dict 
    775782        langs={} 
     783        tags={} 
    776784        # Create dictionaries 
    777785        for r in results: 
     
    779787            if rL: 
    780788                langs[rL]=langs.get(rL,0)+1 
     789            if r.getTags: 
     790                for s in r.getTags: 
     791                    tags[s]=tags.get(s,0)+1 
     792 
    781793        # Convert them to tuples where (value, display value) 
    782794        langlist=[(lang_dict[x], x, y) for (x,y) in langs.items()] 
     795        tagslist=[(x,x,y) for (x,y) in tags.items()] 
    783796        langlist.sort() 
    784         return langlist 
     797        tagslist.sort() 
     798        return {'language':langlist,'tags':tagslist} 
    785799     
    786800class LargeToolFolder(LargeSectionFolder): 
     
    807821 
    808822    def getSelectables(self, results): 
    809         """Try to find which of languages are found in results""" 
     823        """Try to find which of languages and tags are found in results""" 
    810824        lang_dict = getToolByName(self, 'lemill_tool').language_dict 
    811825        langs={} 
     826        tags={} 
    812827        # Create dictionaries 
    813828        for r in results: 
     
    815830            if rL: 
    816831                langs[rL]=langs.get(rL,0)+1 
     832            if r.getTags: 
     833                for s in r.getTags: 
     834                    tags[s]=tags.get(s,0)+1 
     835 
    817836        # Convert them to tuples where (value, display value) 
    818837        langlist=[(lang_dict[x], x, y) for (x,y) in langs.items()] 
     838        tagslist=[(x,x,y) for (x,y) in tags.items()] 
    819839        langlist.sort() 
    820         return langlist 
     840        tagslist.sort() 
     841        return {'language':langlist,'tags':tagslist} 
    821842 
    822843 
     
    891912        subjs={} 
    892913        locas={} 
     914        skills={} 
     915        interests={} 
    893916        # Create dictionaries 
    894917        for r in results: 
     
    902925            if rLc: 
    903926                locas[rLc]=locas.get(rLc,0)+1 
     927            if r.getSkills: 
     928                for s in r.getSkills: 
     929                    skills[s]=skills.get(s,0)+1 
     930            if r.getInterests: 
     931                for s in r.getInterests: 
     932                    interests[s]=interests.get(s,0)+1 
     933 
    904934                     
    905935        # Convert them to tuples where (value, display value) 
     
    907937        subjslist=[(x,x,y) for (x,y) in subjs.items()] 
    908938        locaslist=[(x,x,y) for (x,y) in locas.items()] 
     939        skillslist=[(x,x,y) for (x,y) in skills.items()] 
     940        interestslist=[(x,x,y) for (x,y) in interests.items()] 
    909941        langlist.sort() 
    910942        subjslist.sort() 
    911943        locaslist.sort() 
    912         return (langlist, subjslist,locaslist) 
     944        skillslist.sort() 
     945        interestslist.sort() 
     946        return {'language_skills':langlist, 'subject_area':subjslist, 'location_country':locaslist,'skills':skillslist,'interests':interestslist} 
    913947         
    914948    def getBrowseArgumentsForMembers(self, request): 
     
    947981        langs={} 
    948982        subjs={} 
     983        tags={} 
    949984        # Create dictionaries 
    950985        for r in results: 
     
    955990                for s in r.getSubject_area: 
    956991                    subjs[s]=subjs.get(s,0)+1 
     992            if r.getTags: 
     993                for s in r.getTags: 
     994                    tags[s]=tags.get(s,0)+1 
     995 
    957996        # Convert them to tuples where (value, display value) 
    958997        langlist=[(lang_dict[x], x, y) for (x,y) in langs.items()] 
    959998        subjslist=[(x,x,y) for (x,y) in subjs.items()] 
     999        tagslist=[(x,x,y) for (x,y) in tags.items()] 
    9601000        langlist.sort() 
    9611001        subjslist.sort() 
    962         return (langlist, subjslist) 
     1002        tagslist.sort() 
     1003        return {'language_skills':langlist, 'subject_area':subjslist,'tags':tagslist} 
    9631004 
    9641005    def getBrowseArgumentsForPortfolio(self, request): 
     
    9821023        """Try to find which types are found in results and show them as selectables """ 
    9831024        types={} 
     1025        tags={} 
    9841026        # Create dictionaries 
    9851027        for r in results: 
    9861028            types[r.portal_type]=types.get(r.portal_type,0)+1 
     1029            if r.getTags: 
     1030                for s in r.getTags: 
     1031                    tags[s]=tags.get(s,0)+1 
    9871032        # Convert them to tuples where (value, display value) 
    988  
    989         # Squeeze resource types into one: 
    990         #types['resources']=types.pop('MultimediaMaterial',0)+types.pop('PresentationMaterial',0)+types.pop('PILOTMaterial',0) 
    991  
    9921033        types=[(x, x, y) for (x,y) in types.items()] 
    993         return types 
     1034        tagslist=[(x,x,y) for (x,y) in tags.items()] 
     1035        tagslist.sort() 
     1036        return {'type':types,'tags':taglist} 
    9941037 
    9951038 
  • trunk/skins/lemill/lemill_browse_content.pt

    r1862 r1909  
    1919                 folderContents python: (over_limit and folderContents[:limit_display]) or folderContents; 
    2020                 results folderContents|request/results|nothing; 
     21                 macros here/lemill_browse_macros/macros; 
    2122                 "> 
    2223 
     
    2930     <tal:tagclouddef define="wordtuples python:here.getTagCloud(results, topic_get_method)"> 
    3031 
    31             <tal:tagcloud metal:use-macro="here/lemill_browse_macros/macros/forwarding_tagcloud" /> 
     32            <tal:tagcloud metal:use-macro="macros/forwarding_tagcloud" /> 
    3233 
    3334    </tal:tagclouddef> 
    34     <tal:rss_and_resultcount metal:use-macro="here/lemill_browse_macros/macros/rss_count" /> 
     35    <tal:rss_and_resultcount metal:use-macro="macros/rss_count" /> 
    3536    </div> 
    3637 
     
    4445           action=""> 
    4546 
    46     <tal:defines define="selectables python:context.getSelectables(results); 
    47                     langs python:selectables[0]; 
    48                     targs python:selectables[1]; 
    49                     types python:selectables[2]; 
    50                     subjs python:selectables[3]; 
    51                     lang_set python:bb_dict['argdict'].has_key('language'); 
    52                     targ_set python:bb_dict['argdict'].has_key('target_group'); 
    53                     type_set python:bb_dict['argdict'].has_key('type'); 
    54                     tag_set python:bb_dict['argdict'].has_key('tags'); 
    55                     subjs_set python:bb_dict['argdict'].has_key('subject_area');  
    56                     "> 
    57  
    58       
    59     <p tal:condition="tag_set"><span i18n:translate="label_tag">Tag</span>: <span tal:replace="bb_dict/argdict/tags"/> 
    60     </p> 
    61     <input type="hidden" tal:condition="tag_set" name="getTags" tal:attributes="value bb_dict/argdict/tags" /> 
    62  
    63     <p tal:condition="subjs_set"> <span i18n:translate="label_subject_area">Subject area</span>: <span i18n:translate="" tal:content="bb_dict/argdict/subject_area"/> 
    64     </p> 
    65     <input type="hidden" tal:condition="subjs_set" name="getSubject_area" tal:attributes="value bb_dict/argdict/subject_area" /> 
    66  
    67  
    68     <p tal:condition="lang_set"><span i18n:translate="label_language">Language</span>: <span tal:replace="python:context.script_getPrettyLanguage(bb_dict['argdict']['language'])"/> 
    69     </p> 
    70     <input type="hidden" tal:condition="lang_set" name="Language" tal:attributes="value bb_dict/argdict/language" /> 
    71  
    72     <p tal:condition="targ_set"><span i18n:translate="label_target_group">Target group</span>: <span i18n:translate="" tal:content="bb_dict/argdict/target_group"/> 
    73     </p> 
    74     <input type="hidden" tal:condition="targ_set" name="getTarget_group" tal:attributes="value bb_dict/argdict/target_group" /> 
    75  
    76     <p tal:condition="type_set"><span i18n:translate="label_type">Type</span>: <span i18n:translate="" tal:content="bb_dict/argdict/type"/> 
    77     </p> 
    78     <input type="hidden" tal:condition="type_set" name="portal_type" tal:attributes="value bb_dict/argdict/type" /> 
    79  
    80  
    81         <p tal:condition="not:subjs_set"> 
    82         <span i18n:translate="label_subject_area">Subject area</span>: 
    83         <select tal:attributes="tabindex tabindex/next" name="getSubject_area"> 
    84             <option value="" i18n:translate="">All</option> 
    85              <tal:options repeat="item subjs">             
    86                 <option  
    87                    tal:attributes="value python:item[1]"> 
    88                    <span tal:content="python:item[0]" i18n:translate="" /> 
    89                    (<span tal:replace="python:item[2]"/>) 
    90                 </option> 
    91              </tal:options>                 
    92         </select> 
    93         </p> 
    94         <p tal:condition="not:lang_set"> 
    95         <span i18n:translate="label_language">Language</span>: 
    96         <select tal:attributes="tabindex tabindex/next" name="Language"> 
    97             <option value="" i18n:translate="">All</option> 
    98              <tal:options repeat="item langs">             
    99                 <option  
    100                    tal:attributes="value python:item[1]"> 
    101                    <span tal:content="python:item[0]"/> 
    102                    (<span tal:replace="python:item[2]"/>) 
    103                 </option> 
    104              </tal:options>                 
    105         </select> 
    106         </p> 
    107         <p tal:condition="not:targ_set"> 
    108         <span i18n:translate="label_target_group">Target group</span>: 
    109         <select tal:attributes="tabindex tabindex/next" name="getTarget_group"> 
    110             <option value="" i18n:translate="">All</option> 
    111              <tal:options repeat="item targs">             
    112                 <option  
    113                    tal:attributes="value python:item[1]"> 
    114                    <span tal:content="python:item[0]" i18n:translate="" /> 
    115                    (<span tal:replace="python:item[2]"/>) 
    116                 </option> 
    117              </tal:options>                 
    118         </select> 
    119         </p> 
    120         <p tal:condition="not:type_set"> 
    121         <span i18n:translate="label_type">Type</span>: 
    122         <select tal:attributes="tabindex tabindex/next" name="portal_type"> 
    123             <option value="" i18n:translate="">All</option> 
    124              <tal:options repeat="item types">             
    125                 <option  
    126                    tal:attributes="value python:item[1]"> 
    127                    <span tal:content="python:item[0]" i18n:translate="" /> 
    128                    (<span tal:replace="python:item[2]"/>) 
    129                 </option> 
    130              </tal:options>  
    131         </select> 
    132         </p> 
    133  
    134  
    135                  
     47      <table tal:define="selectables python:context.getSelectables(results)"> 
     48        <tr> 
     49         <td align="right"><a href="../language" i18n:translate="label_language">Language</a>:</td> 
     50         <td align="left" tal:define="selection_type string:language">  
     51           <tal:select_macro metal:use-macro="macros/select_macro" /> 
     52         </td> 
     53        </tr> 
     54        <tr> 
     55         <td align="right"><a href="../subject_area" i18n:translate="label_subject_area">Subject area</a>:</td> 
     56         <td align="left" tal:define="selection_type string:subject_area"> 
     57           <tal:select_macro metal:use-macro="macros/select_macro" /> 
     58         </td> 
     59     
     60        </tr> 
     61        <tr> 
     62         <td align="right"><a href="../target_group" i18n:translate="label_target_group">Target group</a>:</td> 
     63         <td align="left" tal:define="selection_type string:target_group"> 
     64           <tal:select_macro metal:use-macro="macros/select_macro" /> 
     65         </td> 
     66        </tr> 
     67        <tr> 
     68         <td align="right"><a href="../tags" i18n:translate="label_tag">Tag</a>:</td> 
     69         <td align="left" tal:define="selection_type string:tags"> 
     70           <tal:select_macro metal:use-macro="macros/select_macro" /> 
     71         </td> 
     72        </tr> 
     73        <tr> 
     74         <td align="right"><span i18n:translate="label_type">Type</span>:</td> 
     75         <td align="left" tal:define="selection_type string:type"> 
     76           <tal:select_macro metal:use-macro="macros/select_macro" /> 
     77         </td> 
     78        </tr> 
     79     </table>                
    13680      <div class="formControls"> 
    13781           <input class="context" 
     
    14084                  i18n:attributes="value label_show;" 
    14185                  tal:attributes="tabindex tabindex/next" 
    142                   tal:condition="python: not (lang_set and targ_set and subjs_set and type_set)" 
    143                   /> 
    144                    
     86                  />                   
    14587      </div> 
    146  
    147      </tal:defines> 
    14888 
    14989     </form> 
     
    165105       </span> 
    166106     
    167        <tal:rss_and_resultcount metal:use-macro="here/lemill_browse_macros/macros/rss_count"/> 
     107       <tal:rss_and_resultcount metal:use-macro="macros/rss_count"/> 
    168108      </fieldset> 
    169109    </div> 
  • trunk/skins/lemill/lemill_browse_groups.pt

    r1859 r1909  
    1919                 folderContents python: (over_limit and folderContents[:limit_display]) or folderContents; 
    2020                 results folderContents|request/results|nothing; 
     21                 macros here/lemill_browse_macros/macros; 
    2122                 "> 
    2223 
     
    2930     <tal:tagclouddef define="wordtuples python:here.getTagCloud(results, topic_get_method)"> 
    3031 
    31             <tal:tagcloud metal:use-macro="here/lemill_browse_macros/macros/forwarding_tagcloud" /> 
     32            <tal:tagcloud metal:use-macro="macros/forwarding_tagcloud" /> 
    3233 
    3334    </tal:tagclouddef> 
    34     <tal:rss_and_resultcount metal:use-macro="here/lemill_browse_macros/macros/rss_count" /> 
     35    <tal:rss_and_resultcount metal:use-macro="macros/rss_count" /> 
    3536    </div> 
    3637 
     
    4445           action=""> 
    4546 
    46     <tal:defines define="selectables python:context.getSelectablesForGroups(results); 
    47                     langs python:selectables[0]; 
    48                     subjs python:selectables[1]; 
    49                     lang_set python:bb_dict['argdict'].has_key('language_skills'); 
    50                     tag_set python:bb_dict['argdict'].has_key('tags'); 
    51                     subjs_set python:bb_dict['argdict'].has_key('group_subject_area'); 
    52                     "> 
    53  
    54      
    55     <p tal:condition="subjs_set"> <span i18n:translate="label_subject_area">Subject area</span>: <span i18n:translate="" tal:content="bb_dict/argdict/group_subject_area"/> 
    56     </p> 
    57     <input type="hidden" tal:condition="subjs_set" name="getSubject_area" tal:attributes="value bb_dict/argdict/group_subject_area" /> 
    58     <p tal:condition="tag_set"><span i18n:translate="label_tag" >Tag</span>: <span tal:replace="bb_dict/argdict/tags"/> 
    59     </p> 
    60     <input type="hidden" tal:condition="tag_set" name="getTags" tal:attributes="value bb_dict/argdict/tags" /> 
    61  
    62     <p tal:condition="lang_set"><span i18n:translate="label_language">Language</span>: <span  tal:replace="python:context.script_getPrettyLanguage(bb_dict['argdict']['language_skills'])"/> 
    63     </p> 
    64     <input type="hidden" tal:condition="lang_set" name="getLanguage_skills" tal:attributes="value bb_dict/argdict/language_skills" /> 
    65  
    66         <p tal:condition="not:lang_set"> 
    67         <span i18n:translate="label_language">Language</span>: 
    68         <select tal:attributes="tabindex tabindex/next" name="getLanguage_skills"> 
    69             <option value="" i18n:translate="">All</option> 
    70              <tal:options repeat="item langs">             
    71                 <option  
    72                    tal:attributes="value python:item[1]"> 
    73                    <span tal:content="python:item[0]"/> 
    74                    (<span tal:replace="python:item[2]"/>) 
    75                 </option> 
    76              </tal:options>                 
    77         </select> 
    78         </p> 
    79         <p tal:condition="not:subjs_set"> 
    80         <span i18n:translate="label_subject_area">Subject area</span>: 
    81         <select tal:attributes="tabindex tabindex/next" name="getSubject_area"> 
    82             <option value="" i18n:translate="">All</option> 
    83              <tal:options repeat="item subjs"> 
    84                 <option 
    85                    tal:attributes="value python:item[1]"> 
    86                    <span tal:content="python:item[0]" i18n:translate="" /> 
    87                    (<span tal:replace="python:item[2]"/>) 
    88                 </option> 
    89              </tal:options> 
    90         </select> 
    91         </p> 
    92  
    93                  
     47      <table tal:define="selectables python:context.getSelectablesForGroups(results)"> 
     48        <tr> 
     49         <td align="right"><a href="../g_language" i18n:translate="label_language">Language</a>:</td> 
     50         <td align="left" tal:define="selection_type string:language_skills">  
     51           <tal:select_macro metal:use-macro="macros/select_macro" /> 
     52         </td> 
     53        </tr> 
     54        <tr> 
     55         <td align="right"><a href="../tags" i18n:translate="label_tag">Tag</a>:</td> 
     56         <td align="left" tal:define="selection_type string:tags"> 
     57           <tal:select_macro metal:use-macro="macros/select_macro" /> 
     58         </td> 
     59        </tr> 
     60        <tr> 
     61         <td align="right"><a href="../group_subject_area" i18n:translate="label_subject_area">Subject area</a>:</td> 
     62         <td align="left" tal:define="selection_type string:group_subject_area"> 
     63           <tal:select_macro metal:use-macro="macros/select_macro" /> 
     64         </td> 
     65        </tr> 
     66     </table>                
    9467      <div class="formControls"> 
    9568           <input class="context" 
     
    9871                  i18n:attributes="value label_show;" 
    9972                  tal:attributes="tabindex tabindex/next" 
    100                   tal:condition="python: not (lang_set and subjs_set)" 
    101                   /> 
    102                    
     73                  />                   
    10374      </div> 
    10475 
    105      </tal:defines> 
     76     </form> 
    10677 
    107      </form> 
    108      
    10978 
    11079      <fieldset style="border-width:0px"> 
     
    12392       </span> 
    12493     
    125        <tal:rss_and_resultcount metal:use-macro="here/lemill_browse_macros/macros/rss_count"/> 
     94       <tal:rss_and_resultcount metal:use-macro="macros/rss_count"/> 
    12695      </fieldset> 
    12796    </div> 
  • trunk/skins/lemill/lemill_browse_macros.pt

    r1824 r1909  
    8080 
    8181 
     82<tal:select_macro metal:define-macro="select_macro"> 
     83    <select tal:attributes="tabindex tabindex/next; name fieldname"  
     84    tal:define="fieldname python:bb_dict[selection_type]; 
     85        value_set python:bb_dict['argdict'].has_key(selection_type); 
     86        values python:selectables[selection_type]; 
     87        current_value python:bb_dict['argdict'].get(selection_type,None)"> 
     88>  
     89        <option value="" i18n:translate="">All</option> 
     90            <tal:has_value condition="value_set"> 
     91            <tal:loop repeat="item values"> 
     92                <option tal:attributes="value python:item[1]; selected python:current_value==item[1]"> 
     93                <span tal:content="python:item[0]" i18n:translate="" /> 
     94                </option> 
     95            </tal:loop> 
     96            </tal:has_value> 
     97            <tal:has_not_value condition="not:value_set" repeat="item values">             
     98            <option  
     99                tal:attributes="value python:item[1]"> 
     100                <span tal:content="python:item[0]" i18n:translate="" /> 
     101                (<span tal:replace="python:item[2]"/>) 
     102            </option> 
     103            </tal:has_not_value>                 
     104    </select> 
     105</tal:select_macro> 
     106 
     107 
    82108</html> 
  • trunk/skins/lemill/lemill_browse_members.pt

    r1796 r1909  
    1919                 folderContents python: (over_limit and folderContents[:limit_display]) or folderContents; 
    2020                 results folderContents|request/results|nothing; 
     21                 macros here/lemill_browse_macros/macros; 
    2122                 "> 
    2223 
     
    2930     <tal:tagclouddef define="wordtuples python:here.getTagCloud(results, topic_get_method)"> 
    3031 
    31             <tal:tagcloud metal:use-macro="here/lemill_browse_macros/macros/forwarding_tagcloud" /> 
     32            <tal:tagcloud metal:use-macro="macros/forwarding_tagcloud" /> 
    3233 
    3334    </tal:tagclouddef> 
    34     <tal:rss_and_resultcount metal:use-macro="here/lemill_browse_macros/macros/rss_count" /> 
     35    <tal:rss_and_resultcount metal:use-macro="macros/rss_count" /> 
    3536    </div> 
    3637 
     
    4041    <div tal:condition="bb_dict/has_args" tal:omit-tag=""> 
    4142 
     43 
    4244     <form name="groups" 
    4345           method="GET" 
    4446           action=""> 
    4547 
    46     <tal:defines define="selectables python:context.getSelectablesForMembers(results); 
    47                     langs python:selectables[0]; 
    48                     subjs python:selectables[1]; 
    49                     locas python:selectables[2]; 
    50                     lang_set python:bb_dict['argdict'].has_key('language_skills'); 
    51                     loca_set python:bb_dict['argdict'].has_key('location_country'); 
    52                     skills_set python:bb_dict['argdict'].has_key('skills'); 
    53                     ints_set python:bb_dict['argdict'].has_key('interests'); 
    54                     subjs_set python:bb_dict['argdict'].has_key('subject_area');  
    55                     "> 
    56  
    57       
    58     <p tal:condition="subjs_set"> <span i18n:translate="label_subject_area">Subject area</span>: <span i18n:translate="" tal:content="bb_dict/argdict/subject_area"/> 
    59     </p> 
    60     <input type="hidden" tal:condition="subjs_set" name="getSubject_area" tal:attributes="value bb_dict/argdict/subject_area" /> 
    61  
    62  
    63     <p tal:condition="lang_set"> <span i18n:translate="label_language">Language</span>: <span  tal:replace="python:context.script_getPrettyLanguage(bb_dict['argdict']['language_skills'])"/> 
    64     </p> 
    65     <input type="hidden" tal:condition="lang_set" name="getLanguage_skills" tal:attributes="value bb_dict/argdict/language_skills" /> 
    66  
    67     <p tal:condition="loca_set"><span i18n:translate="label_location">Location</span>: <span tal:replace="bb_dict/argdict/location_country"/> 
    68     </p> 
    69     <input type="hidden" tal:condition="loca_set" name="getLocation_country" tal:attributes="value bb_dict/argdict/location_country" /> 
    70  
    71     <p tal:condition="skills_set"><span i18n:translate="label_skills">Skills</span>: <span tal:replace="bb_dict/argdict/skills"/> 
    72     </p> 
    73     <input type="hidden" tal:condition="skills_set" name="getSkills" tal:attributes="value bb_dict/argdict/skills" /> 
    74     <p tal:condition="ints_set"><span i18n:translate="label_interests">Interests</span>: <span tal:replace="bb_dict/argdict/interests"/> 
    75     </p> 
    76     <input type="hidden" tal:condition="ints_set" name="getInterests" tal:attributes="value bb_dict/argdict/interests" /> 
    77  
    78  
    79         <p tal:condition="not:lang_set"> 
    80         <span i18n:translate="label_language">Language</span>:  
    81         <select tal:attributes="tabindex tabindex/next" name="getLanguage_skills"> 
    82             <option value="" i18n:translate="">All</option> 
    83              <tal:options repeat="item langs">             
    84                 <option  
    85                    tal:attributes="value python:item[1]"> 
    86                    <span tal:content="python:item[0]"/> 
    87                    (<span tal:replace="python:item[2]"/>) 
    88                 </option> 
    89              </tal:options>                 
    90         </select> 
    91         </p> 
    92         <p tal:condition="not:loca_set"> 
    93         <span i18n:translate="label_location">Location</span>:  
    94         <select tal:attributes="tabindex tabindex/next" name="getLocation_country"> 
    95             <option value="" i18n:translate="">All</option> 
    96              <tal:options repeat="item locas">             
    97                 <option  
    98                    tal:attributes="value python:item[1]"> 
    99                    <span tal:content="python:item[0]"/> 
    100                    (<span tal:replace="python:item[2]"/>) 
    101                 </option> 
    102              </tal:options>                 
    103         </select> 
    104         </p> 
    105         <p tal:condition="not:subjs_set"> 
    106         <span i18n:translate="label_subject_area">Subject area</span>: 
    107         <select tal:attributes="tabindex tabindex/next" name="getSubject_area"> 
    108             <option value="" i18n:translate="">All</option> 
    109              <tal:options repeat="item subjs">             
    110                 <option  
    111                    tal:attributes="value python:item[1]"> 
    112                    <span tal:content="python:item[0]" i18n:translate="" /> 
    113                    (<span tal:replace="python:item[2]"/>) 
    114                 </option> 
    115              </tal:options>                 
    116         </select> 
    117         </p> 
    118  
    119                  
     48      <table tal:define="selectables python:context.getSelectablesForMembers(results)"> 
     49        <tr> 
     50         <td align="right"><a href="../language" i18n:translate="label_language">Language</a>:</td> 
     51         <td align="left" tal:define="selection_type string:language_skills">  
     52           <tal:select_macro metal:use-macro="macros/select_macro" /> 
     53         </td> 
     54        </tr> 
     55        <tr> 
     56         <td align="right"><a href="../country" i18n:translate="label_location">Location</a>:</td> 
     57         <td align="left" tal:define="selection_type string:location_country"> 
     58           <tal:select_macro metal:use-macro="macros/select_macro" /> 
     59         </td> 
     60        </tr> 
     61        <tr> 
     62         <td align="right"><a href="../skills" i18n:translate="label_skills">Skills</a>:</td> 
     63         <td align="left" tal:define="selection_type string:skills"> 
     64           <tal:select_macro metal:use-macro="macros/select_macro" /> 
     65         </td> 
     66        </tr> 
     67        <tr> 
     68         <td align="right"><a href="../interests" i18n:translate="label_interests">Interests</span>:</td> 
     69         <td align="left" tal:define="selection_type string:interests"> 
     70           <tal:select_macro metal:use-macro="macros/select_macro" /> 
     71         </td> 
     72        </tr> 
     73        <tr> 
     74         <td align="right"><a href="../subject_area" i18n:translate="label_subject_area">Subject area</a>:</td> 
     75         <td align="left" tal:define="selection_type string:subject_area"> 
     76           <tal:select_macro metal:use-macro="macros/select_macro" /> 
     77         </td>     
     78        </tr> 
     79     </table>                
    12080      <div class="formControls"> 
    12181           <input class="context" 
     
    12484                  i18n:attributes="value label_show;" 
    12585                  tal:attributes="tabindex tabindex/next" 
    126                   tal:condition="python: not (lang_set and subjs_set)" 
    127                   /> 
    128                    
     86                  />                   
    12987      </div> 
    130  
    131      </tal:defines> 
    13288 
    13389     </form> 
     
    149105       </span> 
    150106     
    151        <tal:rss_and_resultcount metal:use-macro="here/lemill_browse_macros/macros/rss_count"/> 
     107       <tal:rss_and_resultcount metal:use-macro="macros/rss_count"/> 
    152108      </fieldset> 
    153109    </div> 
  • trunk/skins/lemill/lemill_browse_methods.pt

    r1796 r1909  
    1919                 folderContents python: (over_limit and folderContents[:limit_display]) or folderContents; 
    2020                 results folderContents|request/results|nothing; 
     21                 macros here/lemill_browse_macros/macros; 
    2122                 "> 
    2223 
     
    2930     <tal:tagclouddef define="wordtuples python:here.getTagCloud(results, topic_get_method)"> 
    3031 
    31             <tal:tagcloud metal:use-macro="here/lemill_browse_macros/macros/forwarding_tagcloud" /> 
     32            <tal:tagcloud metal:use-macro="macros/forwarding_tagcloud" /> 
    3233 
    3334    </tal:tagclouddef> 
    34     <tal:rss_and_resultcount metal:use-macro="here/lemill_browse_macros/macros/rss_count" /> 
     35    <tal:rss_and_resultcount metal:use-macro="macros/rss_count" /> 
    3536    </div> 
    3637 
     
    4445           action=""> 
    4546 
    46     <tal:defines define="langs python:context.getSelectables(results); 
    47                     lang_set python:bb_dict['argdict'].has_key('language'); 
    48                     tag_set python:bb_dict['argdict'].has_key('tags'); 
    49                     "> 
    50  
    51       
    52     <p tal:condition="tag_set"><span i18n:translate="label_tag">Tag</span>: <span tal:replace="bb_dict/argdict/tags"/> 
    53     </p> 
    54     <input type="hidden" tal:condition="tag_set" name="getTags" tal:attributes="value bb_dict/argdict/tags" /> 
    55  
    56     <p i18n:translate="browse_path_language" tal:condition="lang_set">Language: <span i18n:name="language" tal:content="python:context.script_getPrettyLanguage(bb_dict['argdict']['language'])"/> 
    57     </p> 
    58     <input type="hidden" tal:condition="lang_set" name="Language" tal:attributes="value bb_dict/argdict/language" /> 
    59  
    60         <p tal:condition="not:lang_set"> 
    61         <span i18n:translate="label_language">Language</span>: 
    62         <select tal:attributes="tabindex tabindex/next" name="Language"> 
    63             <option value="" i18n:translate="">All</option> 
    64              <tal:options repeat="item langs">             
    65                 <option  
    66                    tal:attributes="value python:item[1]"> 
    67                    <span tal:content="python:item[0]"/> 
    68                    (<span tal:replace="python:item[2]"/>) 
    69                 </option> 
    70              </tal:options>                 
    71         </select> 
    72         </p> 
    73  
    74                  
     47      <table tal:define="selectables python:context.getSelectables(results)"> 
     48        <tr> 
     49         <td align="right"><a href="../language" i18n:translate="label_language">Language</a>:</td> 
     50         <td align="left" tal:define="selection_type string:language">  
     51           <tal:select_macro metal:use-macro="macros/select_macro" /> 
     52         </td> 
     53        </tr> 
     54        <tr> 
     55         <td align="right"><a href="../tags" i18n:translate="label_tag">Tag</a>:</td> 
     56         <td align="left" tal:define="selection_type string:tags"> 
     57           <tal:select_macro metal:use-macro="macros/select_macro" /> 
     58         </td> 
     59        </tr> 
     60     </table>                
    7561      <div class="formControls"> 
    7662           <input class="context" 
     
    7965                  i18n:attributes="value label_show;" 
    8066                  tal:attributes="tabindex tabindex/next" 
    81                   tal:condition="python: not lang_set" 
    82                   /> 
    83                    
     67                  />                   
    8468      </div> 
    85  
    86      </tal:defines> 
    8769 
    8870     </form> 
     
    10486       </span> 
    10587     
    106        <tal:rss_and_resultcount metal:use-macro="here/lemill_browse_macros/macros/rss_count"/> 
     88       <tal:rss_and_resultcount metal:use-macro="macros/rss_count"/> 
    10789      </fieldset> 
    10890    </div> 
  • trunk/skins/lemill/lemill_browse_tools.pt

    r1796 r1909  
    1919                 folderContents python: (over_limit and folderContents[:limit_display]) or folderContents; 
    2020                 results folderContents|request/results|nothing; 
     21                 macros here/lemill_browse_macros/macros; 
    2122                 "> 
    2223 
     
    2930     <tal:tagclouddef define="wordtuples python:here.getTagCloud(results, topic_get_method)"> 
    3031 
    31             <tal:tagcloud metal:use-macro="here/lemill_browse_macros/macros/forwarding_tagcloud" /> 
     32            <tal:tagcloud metal:use-macro="macros/forwarding_tagcloud" /> 
    3233 
    3334    </tal:tagclouddef> 
    34     <tal:rss_and_resultcount metal:use-macro="here/lemill_browse_macros/macros/rss_count" /> 
     35    <tal:rss_and_resultcount metal:use-macro="macros/rss_count" /> 
    3536    </div> 
    3637 
     
    4445           action=""> 
    4546 
    46     <tal:defines define="langs python:context.getSelectables(results); 
    47                     lang_set python:bb_dict['argdict'].has_key('language'); 
    48                     tag_set python:bb_dict['argdict'].has_key('tags'); 
    49                     "> 
    50  
    51       
    52     <p tal:condition="tag_set"><span i18n:translate="label_tag">Tag</span>: <span tal:replace="bb_dict/argdict/tags"/> 
    53     </p> 
    54     <input type="hidden" tal:condition="tag_set" name="getTags" tal:attributes="value bb_dict/argdict/tags" /> 
    55  
    56     <p tal:condition="lang_set"><span i18n:translate="label_language">Language</span>: <span  tal:replace="python:context.script_getPrettyLanguage(bb_dict['argdict']['language'])"/> 
    57     </p> 
    58     <input type="hidden" tal:condition="lang_set" name="Language" tal:attributes="value bb_dict/argdict/language" /> 
    59  
    60         <p tal:condition="not:lang_set"> 
    61         <span i18n:translate="label_language">Language</span>: 
    62         <select tal:attributes="tabindex tabindex/next" name="Language"> 
    63             <option value="" i18n:translate="">All</option> 
    64              <tal:options repeat="item langs">             
    65                 <option  
    66                    tal:attributes="value python:item[1]"> 
    67                    <span tal:content="python:item[0]"/> 
    68                    (<span tal:replace="python:item[2]"/>) 
    69                 </option> 
    70              </tal:options>                 
    71         </select> 
    72         </p> 
    73  
    74                  
     47      <table tal:define="selectables python:context.getSelectables(results)"> 
     48        <tr> 
     49         <td align="right"><a href="../language" i18n:translate="label_language">Language</a>:</td> 
     50         <td align="left" tal:define="selection_type string:language">  
     51           <tal:select_macro metal:use-macro="macros/select_macro" /> 
     52         </td> 
     53        </tr> 
     54        <tr> 
     55         <td align="right"><a href="../tags" i18n:translate="label_tag">Tag</a>:</td> 
     56         <td align="left" tal:define="selection_type string:tags"> 
     57           <tal:select_macro metal:use-macro="macros/select_macro" /> 
     58         </td> 
     59        </tr> 
     60     </table>                
    7561      <div class="formControls"> 
    7662           <input class="context" 
     
    7965                  i18n:attributes="value label_show;" 
    8066                  tal:attributes="tabindex tabindex/next" 
    81                   tal:condition="python: not lang_set" 
    82                   /> 
    83                    
     67                  />                   
    8468      </div> 
    85  
    86      </tal:defines> 
    8769 
    8870     </form> 
     
    10486       </span> 
    10587     
    106        <tal:rss_and_resultcount metal:use-macro="here/lemill_browse_macros/macros/rss_count"/> 
     88       <tal:rss_and_resultcount metal:use-macro="macros/rss_count"/> 
    10789      </fieldset> 
    10890    </div> 
  • trunk/skins/lemill/lemill_portfolio_view.pt

    r1876 r1909  
    2222                 folderContents python: (over_limit and folderContents[:limit_display]) or folderContents; 
    2323                 results folderContents|request/results|nothing; 
     24                 macros here/lemill_browse_macros/macros; 
    2425                 "> 
    2526 
     
    7172     <form name="groups" 
    7273           method="GET" 
    73            tal:attributes="action python:'%s/portfolio' % memberfolder_url" 
    74 > 
     74           tal:attributes="action python:'%s/portfolio' % memberfolder_url"> 
    7575 
    76     <tal:defines define="types python:context.getSelectablesForPortfolio(results); 
    77                     type_set python:bb_dict['argdict'].has_key('type'); 
    78                     creator_set python:bb_dict['argdict'].has_key('Creator'); 
    79                     tag_set python:bb_dict['argdict'].has_key('tags'); 
    80                     "> 
     76      <table tal:define="selectables python:context.getSelectablesForPortfolio(results);"> 
     77        <tr> 
     78         <td align="right"><a tal:attributes="href python: '%s/portfolio?%s' % (memberfolder_url, creatorstring)" href="../tags" i18n:translate="label_tag">Tag</a>:</td> 
     79         <td align="left" tal:define="selection_type string:tags"> 
     80           <tal:select_macro metal:use-macro="macros/select_macro" /> 
     81         </td> 
     82        </tr> 
     83        <tr> 
     84         <td align="right"><span i18n:translate="label_type">Type</span>:</td> 
     85         <td align="left" tal:define="selection_type string:type"> 
     86           <tal:select_macro metal:use-macro="macros/select_macro" /> 
     87         </td> 
     88        </tr> 
     89     </table>                
     90    <input type="hidden" tal:condition="python:bb_dict['argdict'].has_key('Creator')" name="Creator" tal:attributes="value bb_dict/argdict/Creator" /> 
    8191 
    82       
    83     <p tal:condition="type_set"><span i18n:translate="label_type">Type</span>: <span i18n:translate="" tal:content="bb_dict/argdict/type"/> 
    84     </p> 
    85     <p tal:condition="tag_set"><span i18n:translate="label_tag">Tag</span>: <span tal:replace="bb_dict/argdict/tags"/> 
    86     </p> 
    87     <input type="hidden" tal:condition="tag_set" name="getTags" tal:attributes="value bb_dict/argdict/tags" /> 
    88  
    89  
    90     <input type="hidden" tal:condition="type_set" name="portal_type" tal:attributes="value bb_dict/argdict/type" /> 
    91     <input type="hidden" tal:condition="creator_set" name="Creator" tal:attributes="value bb_dict/argdict/Creator" /> 
    92  
    93  
    94         <p tal:condition="not:type_set"> 
    95         <span i18n:translate="label_type">Type</span>: 
    96         <select tal:attributes="tabindex tabindex/next" name="portal_type"> 
    97             <option value="" i18n:translate="">All</option> 
    98              <tal:options repeat="item types">             
    99                 <option  
    100                    tal:attributes="value python:item[1]"> 
    101                    <span tal:content="python:item[0]" i18n:translate="" /> 
    102                    (<span tal:replace="python:item[2]"/>) 
    103                 </option> 
    104              </tal:options>  
    105         </select> 
    106         </p> 
    107                  
    10892      <div class="formControls"> 
    10993           <input class="context" 
     
    11296                  i18n:attributes="value label_show;" 
    11397                  tal:attributes="tabindex tabindex/next" 
    114                   tal:condition="not:type_set" 
    115                   /> 
    116                    
     98                  />                   
    11799      </div> 
    118100 
    119      </tal:defines> 
    120  
    121      </form> 
    122      
     101     </form>     
    123102 
    124103      <fieldset style="border-width:0px"> 
  • trunk/skins/lemill/lemill_published_content.pt

    r1796 r1909  
    1919                 folderContents python: (over_limit and folderContents[:limit_display]) or folderContents; 
    2020                 results folderContents|request/results|nothing; 
     21                 macros here/lemill_browse_macros/macros; 
    2122                 "> 
    2223 
     
    3031           action=""> 
    3132 
    32     <tal:defines define="selectables python:context.getSelectables(results); 
    33                     langs python:selectables[0]; 
    34                     targs python:selectables[1]; 
    35                     types python:selectables[2]; 
    36                     subjs python:selectables[3]; 
    37                     lang_set python:bb_dict['argdict'].has_key('language'); 
    38                     targ_set python:bb_dict['argdict'].has_key('target_group'); 
    39                     type_set python:bb_dict['argdict'].has_key('type'); 
    40                     tag_set python:bb_dict['argdict'].has_key('tags'); 
    41                     subjs_set python:bb_dict['argdict'].has_key('subject_area');  
    42                     "> 
    43  
    44       
    45     <p tal:condition="tag_set"><span i18n:translate="label_tag">Tag</span>: <span tal:replace="bb_dict/argdict/tags"/> 
    46     </p> 
    47     <input type="hidden" tal:condition="tag_set" name="getTags" tal:attributes="value bb_dict/argdict/tags" /> 
    48  
    49     <p tal:condition="subjs_set"> <span i18n:translate="label_subject_area">Subject area</span>: <span i18n:translate="" tal:content="bb_dict/argdict/subject_area"/> 
    50     </p> 
    51     <input type="hidden" tal:condition="subjs_set" name="getSubject_area" tal:attributes="value bb_dict/argdict/subject_area" /> 
    52  
    53  
    54     <p tal:condition="lang_set"><span i18n:translate="label_language">Language</span>: <span tal:replace="python:context.script_getPrettyLanguage(bb_dict['argdict']['language'])"/> 
    55     </p> 
    56     <input type="hidden" tal:condition="lang_set" name="Language" tal:attributes="value bb_dict/argdict/language" /> 
    57  
    58     <p tal:condition="targ_set"><span i18n:translate="label_target_group">Target group</span>: <span i18n:translate="" tal:content="bb_dict/argdict/target_group"/> 
    59     </p> 
    60     <input type="hidden" tal:condition="targ_set" name="getTarget_group" tal:attributes="value bb_dict/argdict/target_group" /> 
    61  
    62     <p tal:condition="type_set"><span i18n:translate="label_type">Type</span>: <span i18n:translate="" tal:content="bb_dict/argdict/type"/> 
    63     </p> 
    64     <input type="hidden" tal:condition="type_set" name="portal_type" tal:attributes="value bb_dict/argdict/type" /> 
    65  
    66  
    67         <p tal:condition="not:subjs_set"> 
    68         <span i18n:translate="label_subject_area">Subject area</span>: 
    69         <select tal:attributes="tabindex tabindex/next" name="getSubject_area"> 
    70             <option value="" i18n:translate="">All</option> 
    71              <tal:options repeat="item subjs">             
    72                 <option  
    73                    tal:attributes="value python:item[1]"> 
    74                    <span tal:content="python:item[0]" i18n:translate="" /> 
    75                    (<span tal:replace="python:item[2]"/>) 
    76                 </option> 
    77              </tal:options>                 
    78         </select> 
    79         </p> 
    80         <p tal:condition="not:lang_set"> 
    81         <span i18n:translate="label_language">Language</span>: 
    82         <select tal:attributes="tabindex tabindex/next" name="Language"> 
    83             <option value="" i18n:translate="">All</option> 
    84              <tal:options repeat="item langs">             
    85                 <option  
    86                    tal:attributes="value python:item[1]"> 
    87                    <span tal:content="python:item[0]"/> 
    88                    (<span tal:replace="python:item[2]"/>) 
    89                 </option> 
    90              </tal:options>                 
    91         </select> 
    92         </p> 
    93         <p tal:condition="not:targ_set"> 
    94         <span i18n:translate="label_target_group">Target group</span>: 
    95         <select tal:attributes="tabindex tabindex/next" name="getTarget_group"> 
    96             <option value="" i18n:translate="">All</option> 
    97              <tal:options repeat="item targs">             
    98                 <option  
    99                    tal:attributes="value python:item[1]"> 
    100                    <span tal:content="python:item[0]" i18n:translate="" /> 
    101                    (<span tal:replace="python:item[2]"/>) 
    102                 </option> 
    103              </tal:options>                 
    104         </select> 
    105         </p> 
    106         <p tal:condition="not:type_set"> 
    107         <span i18n:translate="label_type">Type</span>: 
    108         <select tal:attributes="tabindex tabindex/next" name="portal_type"> 
    109             <option value="" i18n:translate="">All</option> 
    110              <tal:options repeat="item types">             
    111                 <option  
    112                    tal:attributes="value python:item[1]"> 
    113                    <span tal:content="python:item[0]" i18n:translate="" /> 
    114                    (<span tal:replace="python:item[2]"/>) 
    115                 </option> 
    116              </tal:options>  
    117         </select> 
    118         </p> 
    119  
    120  
    121                  
     33      <table tal:define="selectables python:context.getSelectables(results)"> 
     34        <tr> 
     35         <td align="right"><a href="../language" i18n:translate="label_language">Language</a>:</td> 
     36         <td align="left" tal:define="selection_type string:language">  
     37           <tal:select_macro metal:use-macro="macros/select_macro" /> 
     38         </td> 
     39        </tr> 
     40        <tr> 
     41         <td align="right"><a href="../subject_area" i18n:translate="label_subject_area">Subject area</a>:</td> 
     42         <td align="left" tal:define="selection_type string:subject_area"> 
     43           <tal:select_macro metal:use-macro="macros/select_macro" /> 
     44         </td> 
     45     
     46        </tr> 
     47        <tr> 
     48         <td align="right"><a href="../target_group" i18n:translate="label_target_group">Target group</a>:</td> 
     49         <td align="left" tal:define="selection_type string:target_group"> 
     50           <tal:select_macro metal:use-macro="macros/select_macro" /> 
     51         </td> 
     52        </tr> 
     53        <tr> 
     54         <td align="right"><a href="../tags" i18n:translate="label_tag">Tag</a>:</td> 
     55         <td align="left" tal:define="selection_type string:tags"> 
     56           <tal:select_macro metal:use-macro="macros/select_macro" /> 
     57         </td> 
     58        </tr> 
     59        <tr> 
     60         <td align="right"><span i18n:translate="label_type">Type</span>:</td> 
     61         <td align="left" tal:define="selection_type string:type"> 
     62           <tal:select_macro metal:use-macro="macros/select_macro" /> 
     63         </td> 
     64        </tr> 
     65     </table>                
    12266      <div class="formControls"> 
    12367           <input class="context" 
     
    12670                  i18n:attributes="value label_show;" 
    12771                  tal:attributes="tabindex tabindex/next" 
    128                   tal:condition="python: not (lang_set and targ_set and subjs_set and type_set)" 
    129                   /> 
    130                    
     72                  />                   
    13173      </div> 
    132  
    133      </tal:defines> 
    13474 
    13575     </form> 
     
    15191       </span> 
    15292     
    153        <tal:rss_and_resultcount metal:use-macro="here/lemill_browse_macros/macros/rss_count"/> 
     93       <tal:rss_and_resultcount metal:use-macro="macros/rss_count"/> 
    15494      </fieldset> 
    15595    </div> 
  • trunk/skins/lemill/lemill_titlecloud.pt

    r1751 r1909  
    1818                 folderContents python: (over_limit and folderContents[:limit_display]) or folderContents; 
    1919                 results folderContents|request/results|nothing; 
     20                 macros here/lemill_browse_macros/macros; 
    2021                 "> 
    2122 
     
    2627     <tal:tagclouddef define="wordtuples python:here.getTitleCloud(results, '%s_titles' % here.id)"> 
    2728 
    28             <tal:tagcloud metal:use-macro="here/lemill_browse_macros/macros/direct_linking_tagcloud" /> 
     29            <tal:tagcloud metal:use-macro="macros/direct_linking_tagcloud" /> 
    2930 
    3031    </tal:tagclouddef> 
    31     <tal:rss_and_resultcount metal:use-macro="here/lemill_browse_macros/macros/rss_count" /> 
     32    <tal:rss_and_resultcount metal:use-macro="macros/rss_count" /> 
    3233 
    3334 
Note: See TracChangeset for help on using the changeset viewer.