Changeset 175

Show
Ignore:
Timestamp:
01/12/06 07:21:30
Author:
fenix
Message:

release of a 0.3.2 version of product

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • qClickTrackingTool/trunk/ClickTracker.py

    r174 r175  
    55 
    66def modify_fti(fti): 
    7         fti['allowed_content_types'] = ('Link') 
     7        fti['allowed_content_types'] = ('Campaign') 
    88        fti['filter_content_types'] = 1 
    99        fti['global_allow']=0 
     
    1919         
    2020    schema=schema 
    21     archetype_name='qClickTrackingTool' 
    22     id=UNIQUEID 
     21    archetype_name=PROJECTNAME 
     22    id=TOOLID 
    2323     
    2424    def __init__(self): 
  • qClickTrackingTool/trunk/Extensions/Install.py

    r174 r175  
    11from Products.Archetypes.public import listTypes 
    22from Products.Archetypes.Extensions.utils import installTypes, install_subskin  
    3  
     3from Products.CMFCore.WorkflowTool import addWorkflowFactory 
     4from Products.CMFCore import CMFCorePermissions  
    45from Products.CMFCore.utils import getToolByName 
    5 from Products.qClickTrackingTool.config import * 
     6from Products.CMFDefault.Link import Link 
    67from StringIO import StringIO 
    78 
    89from Products.qClickTrackingTool.ClickTracker import ClickTracker 
     10from Products.qClickTrackingTool.Workflow import createWorkflow 
     11from Products.qClickTrackingTool.Campaign import Campaign 
     12from Products.qClickTrackingTool.ClickTracker import ClickTracker 
     13from Products.qClickTrackingTool.config import * 
    914 
     15 
     16def tool_migration(self, out, oldVersion, newVersion): 
     17    #get tools 
     18    pc=getToolByName(self, 'portal_clicktracker') 
     19 
     20    for o in pc.listFolderContents()[:]: 
     21        #create temp link object 
     22        temp_link=Link(id=o.getId(), title=o.Title(), remote_url=o.getRemoteUrl(), description=o.Description()) 
     23        #remove old link 
     24        pc._delObject(o.getId()) 
     25        #create new Campaign 
     26        pc.invokeFactory(id=temp_link.id, type_name='Campaign') 
     27        campaign=getattr(pc, temp_link.id) 
     28        campaign.update(title=temp_link.title, description=temp_link.description, remoteUrl=temp_link.remote_url) 
     29 
     30    print >> out, "migration complete..." 
     31 
     32 
     33def install_tool(self, out, tool='ClickTracker'): 
     34    portal=getToolByName(self, 'portal_url').getPortalObject() 
     35    if TOOLID  not in portal.objectIds(): 
     36        addPloneTool=portal.manage_addProduct[PROJECTNAME].manage_addTool(tool) 
     37    else: 
     38        qi=getToolByName(self, 'portal_quickinstaller') 
     39 
     40        p=qi._getOb(PROJECTNAME, None) 
     41        oldVersion=p.getInstalledVersion() 
     42        newVersion= qi.getProductVersion(PROJECTNAME) 
     43                                 
     44        if oldVersion < newVersion: 
     45            tool_migration(self, out, oldVersion, newVersion)     
     46 
     47    print >> out, "Installed %s tool..." % tool 
     48     
     49def install_configlet(self, out): 
     50    control_panel=getToolByName(self,'portal_controlpanel') 
     51    control_panel.registerConfiglet(PROJECTNAME, 
     52                                    'Click Tracking Tool', 
     53                                    'string:${portal_url}/%s/portal_clicktracker_view' % TOOLID, 
     54                                     permission=MANAGE_CLICKTRACKINGTOOL_PERMISSION,  
     55                                     imageUrl='link_icon.gif', 
     56                                     category='Products', 
     57                                    ) 
     58    print >> out, "Installed configlet.,," 
     59 
     60def install_workflow(self, out): 
     61    portal_workflow=getToolByName(self, 'portal_workflow') 
     62 
     63    #register the workflow in the system 
     64    addWorkflowFactory(createWorkflow, 
     65                   id=C_WORKFLOWID, 
     66                   title='Campaign Workflow') 
     67 
     68    portal_workflow.manage_addWorkflow(id=C_WORKFLOWID, workflow_type=C_WORKFLOWID +' (Campaign Workflow)')  
     69    #set workflow for Campaign 
     70    portal_workflow.setChainForPortalTypes( ('Campaign'), C_WORKFLOWID)            
     71    print >> out, "Installed workflow..." 
     72     
     73def fix_permissions(self, out): 
     74    portal_workflow=getToolByName(self, 'portal_workflow') 
     75    #remove worklow from tool 
     76    portal_workflow.setChainForPortalTypes( ('ClickTracker (qClickTrackingTool)'), '')     
     77    #set permission for portal_clicktracker 
     78    pc=getToolByName(self, 'portal_clicktracker') 
     79    pc.manage_permission(CMFCorePermissions.ListFolderContents, ('Manager', 'Owner', 'Anonymous'), 1) 
     80 
     81    print >> out, "Click Tracking Tool Permissions fixed..." 
     82 
     83def remove_configlet(self, out): 
     84    # unregister Configlet 
     85    control_panel=getToolByName(self,'portal_controlpanel') 
     86    control_panel.unregisterConfiglet(PROJECTNAME)  
    1087 
    1188def install(self): 
     
    1491 
    1592    installTypes(self, out, listTypes(PROJECTNAME), PROJECTNAME) 
    16     
    1793    install_subskin(self, out, GLOBALS) 
    18     portal=getToolByName(self, 'portal_url').getPortalObject() 
    19     addPloneTool=portal.manage_addProduct['qClickTrackingTool'].manage_addTool('ClickTracker') 
    20      
    21     control_panel=getToolByName(self,'portal_controlpanel') 
    22     control_panel.registerConfiglet('qClickTrackingTool', 
    23                                     'Click Tracking Tool', 
    24                                     'string:${portal_url}/prefs_clicktrackingtool', 
    25                                      permission='ManagePortal', 
    26                                      imageUrl='link_icon.gif', 
    27                                      category='Products', 
    28                                     )     
    29     
    30      
     94    install_workflow(self, out) 
     95    install_tool(self, out) 
     96    install_configlet(self, out) 
     97    fix_permissions(self, out) 
     98 
    3199    print >> out, "Successfully installed %s." % PROJECTNAME 
    32100    return out.getvalue() 
     
    35103    out = StringIO() 
    36104 
    37     control_panel=getToolByName(self,'portal_controlpanel') 
    38     control_panel.unregisterConfiglet('qClickTrackingTool') 
    39     
    40    
     105    remove_configlet(self, out) 
     106       
    41107    print >> out, "Successfully uninstalled %s." % PROJECTNAME 
    42108    return out.getvalue() 
  • qClickTrackingTool/trunk/HISTORY.txt

    r174 r175  
     10.3.2+ -2005-08-22 
     2================== 
     3 
     4  - fixed install and migration scripts 
     5   
     60.3.2 - 2005-08-22 
     7================== 
     8 
     9  - cleaned up code 
     10 
     110.3.1 - 2005-08-07 
     12================== 
     13 
     14  - added migration script 
     15 
     16  - added new type (Campaign) 
     17   
     18  - added workflow for Campaign 
     19 
    1200.3.0 - 2005-07-02 
    221================== 
     22 
    323  - added portal_clicktracker tool 
    424 
    5250.2.0 - 2005-06-29 
    626================== 
     27 
    728  - added configlet 
    829 
  • qClickTrackingTool/trunk/README.txt

    r174 r175  
    1313  support@quintagroup.com * quintessence of modern business 
    1414 
     15Requirements 
     16 
     17  * Archetypes-1.3 
     18 
     19  * ATContentTypes-0.2+ 
     20 
    1521Usage 
    1622 
     
    1925  2. Go to Plone Setup -> Click Tracking Tool 
    2026 
    21   3. Create your Campaigns (Links) there. Important are id (campaign Id) and  
     27  3. Create your Campaigns there. Important are id (campaign Id) and  
    2228     URL (the address tool should direct campaign to). 
    2329 
     
    3339       MinHitExtra1=1 
    3440 
    35      If you have ExtraSection 1 in your config, change 1 to next  
    36      available number. 
     41     If you have ExtraSection 1 in your config, change 1 in the lines aove  
     42     to next available number. 
    3743 
    3844  5. Add banners/tabs, links on the site to point your campaigns in the  
     
    4248     data grouped per campaign. 
    4349      
     50Upgrading 
     51 
     52  The tool detects older versions installed and applies migration procedure  
     53  upon reinstallation. Do not Uninstall product, Reinstall it to preserve\ 
     54  Campaigns created in previos versions of product. 
     55   
    4456Authors 
    4557 
     58  * Taras Melnychuk 
     59 
    4660  * Myroslav Opyr 
    47  
    48   * Taras Melnychuk 
  • qClickTrackingTool/trunk/__init__.py

    r174 r175  
    1717                  ).initialize(context) 
    1818 
     19    import Campaign 
    1920    content_types, constructors, ftis = process_types( 
    2021            listTypes(PROJECTNAME), 
     
    2425                PROJECTNAME + ' Content',  
    2526                content_types      = content_types,  
    26                 permission         = ADD_CONTENT_PERMISSION,  
     27                permission         = ADD_CAMPAIGN_PERMISSION,  
    2728                extra_constructors = constructors,  
    2829                fti                = ftis, 
    2930                ).initialize(context) 
    30  
  • qClickTrackingTool/trunk/config.py

    r174 r175  
    1 from Products.CMFCore.CMFCorePermissions import AddPortalContent 
     1from Products.CMFCore.CMFCorePermissions import AddPortalContent, ManagePortal 
    22 
    33PROJECTNAME = "qClickTrackingTool" 
    44GLOBALS = globals() 
    5 UNIQUEID = "portal_clicktracker" 
     5TOOLID = "portal_clicktracker" 
    66SKINS_DIR = 'skins' 
    7 ADD_CONTENT_PERMISSION = AddPortalContent 
     7ADD_CAMPAIGN_PERMISSION = AddPortalContent 
     8MANAGE_CLICKTRACKINGTOOL_PERMISSION = ManagePortal 
     9C_WORKFLOWID='campaign_workflow' 
  • qClickTrackingTool/trunk/skins/qClickTrackingTool/portal_clicktracker_view.pt

    r174 r175  
    1 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" 
    2       lang="en-US" 
    3       metal:use-macro="here/main_template/macros/master"> 
    4   <body> 
    5          <div metal:fill-slot="main" 
    6               tal:define="campaigns python:here.objectValues(); 
    7                           Batch python:modules['Products.CMFPlone'].Batch; 
    8                           b_start python:request.get('b_start', 0); 
    9                           batch python:Batch(campaigns, 30, int(b_start), orphan=1)"> 
    10        
    11       <h1 tal:content="here/title_or_id">Title or id</h1> 
    12         
    13       <div metal:use-macro="here/document_actions/macros/document_actions"> 
    14           Document actions (print, sendto etc) 
    15        
    16       </div> 
    17       <div metal:use-macro="here/batch_macros/macros/navigation"></div> 
    18       <dl tal:repeat="link batch"> 
    19              <dt><span tal:content="string:${link/getId}: ${link/title}" /></dt> 
    20              <dt><a href="http://www.google.com/" 
    21                     tal:define="url link/getRemoteUrl" 
    22                     tal:attributes="href url" 
    23                     tal:content="url" /></dt> 
    24       </dl> 
     1<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" 
     2      lang="en" 
     3      metal:use-macro="here/main_template/macros/master" 
     4      i18n:domain="plone"> 
    255 
    26      </div> 
    27   </body> 
     6<body> 
     7 
     8    <div metal:fill-slot="main"> 
     9 
     10        <h1 class="documentFirstHeading"> 
     11            Click Tracking Tool 
     12        </h1> 
     13 
     14        <a href="" 
     15           class="link-parent" 
     16           tal:define="parent_url python:here.navigationParent(here, template.getId())" 
     17           tal:condition="parent_url" 
     18           tal:attributes="href parent_url" 
     19           i18n:translate="go_to_parent_url"> 
     20        Up one level 
     21        </a> 
     22 
     23        <div class="documentDescription" tal:content="here/Description"> 
     24            description 
     25        </div> 
     26 
     27        <metal:listingmacro define-macro="listing"> 
     28        <tal:foldercontents define="folderContents python:here.getFolderListingFolderContents(suppressHiddenFiles=1); 
     29                                    map here/getTrackMap"> 
     30        <tal:listing condition="folderContents" 
     31                     define="global getObjSize nocall:here/getObjSize; 
     32                             global toPortalTime nocall:here/toPortalTime;"> 
     33 
     34            <dl> 
     35                <tal:entry tal:repeat="obj folderContents"> 
     36 
     37                <dt metal:define-macro="listitem"> 
     38 
     39                <a  href="#"  
     40                   tal:attributes="href string:${obj/absolute_url}/atct_edit" 
     41                   tal:content="obj/title_or_id" /> 
     42                (<a href="#" 
     43                   class="link-external" 
     44                   tal:define="id python:obj.id" 
     45                   tal:attributes="href string:$portal_url/track/$id" 
     46                   tal:content="python: map[id]" />) 
     47 
     48                </dt> 
     49 
     50                <dd tal:define="description obj/Description"> 
     51                    <span tal:omit-tag="" tal:condition="not:description">  
     52                        &nbsp;  
     53                    </span>  
     54                    <span tal:omit-tag="" tal:content="description">  
     55                        description  
     56                    </span>  
     57                </dd> 
     58                </tal:entry> 
     59            </dl> 
     60 
     61        </tal:listing> 
     62         
     63        <p class="discreet" 
     64           tal:condition="not: folderContents" i18n:translate="description_no_items_in_folder"> 
     65         There are currently no items in this folder. 
     66        </p> 
     67 
     68        </tal:foldercontents> 
     69        </metal:listingmacro> 
     70    </div> 
     71 
     72</body> 
    2873</html> 
  • qClickTrackingTool/trunk/version.txt

    r174 r175  
    1 0.3.0 
     10.3.2+