Changeset 3150 in products


Ignore:
Timestamp:
Apr 19, 2011 7:43:46 PM (13 years ago)
Author:
mylan
Message:

Cleanup, remade setuphandlers

Location:
ploneorg.kudobounty/trunk/ploneorg/kudobounty
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • ploneorg.kudobounty/trunk/ploneorg/kudobounty/browser/views.py

    r3131 r3150  
    3434        """ 
    3535        try: 
    36             container = self.portal.restrictedTraverse(SUBMISSION_CONTAINER_ID) 
     36            container = self.portal.restrictedTraverse(CONTAINER_ID) 
    3737        except: 
    3838            logger.warn("Can't find bounty submission container " \ 
    39                "with '%s' path" % SUBMISSION_CONTAINER_ID) 
     39               "with '%s' path" % CONTAINER_ID) 
    4040        else: 
    4141            # Create Bounty Program Submission object 
  • ploneorg.kudobounty/trunk/ploneorg/kudobounty/config.py

    r3131 r3150  
    99} 
    1010 
    11 SUBMISSION_CONTAINER_ID = "bounty-submissions" 
     11CONTAINER_ID = "bounty-submissions" 
     12CONTAINER_TITLE = "Bounty submissions" 
     13 
    1214FORM_ID = "bounty-submissions-form" 
    13 FORM_PATH = "/".join([SUBMISSION_CONTAINER_ID, FORM_ID]) 
    14 TOPIC_ID = "index.html" 
    15 TOPIC_PATH = "/".join([SUBMISSION_CONTAINER_ID, TOPIC_ID]) 
    16  
    17  
     15FORM_PATH = "/".join([CONTAINER_ID, FORM_ID]) 
     16TOPIC_ID = "aggregator" 
     17TOPIC_PATH = "/".join([CONTAINER_ID, TOPIC_ID]) 
  • ploneorg.kudobounty/trunk/ploneorg/kudobounty/setuphandlers.py

    r3138 r3150  
    11from ploneorg.kudobounty.config import FORM_ID 
    22from ploneorg.kudobounty.config import TOPIC_ID 
    3 from ploneorg.kudobounty.config import SUBMISSION_CONTAINER_ID 
     3from ploneorg.kudobounty.config import CONTAINER_ID 
     4from ploneorg.kudobounty.config import CONTAINER_TITLE 
    45 
    56from Products.CMFCore.utils import getToolByName 
     7from Products.CMFPlone.utils import _createObjectByType 
     8from Products.ATContentTypes.lib import constraintypes 
     9 
    610from Products.GenericSetup.context import TarballExportContext, TarballImportContext 
    711from Products.GenericSetup.interfaces import IFilesystemExporter, IFilesystemImporter 
     
    1418""" 
    1519 
    16 def createTopic(container, logger): 
     20def createTopic(container, wftool, logger): 
    1721    """ 
    18     Located in: /bounty-mission/index_html 
    19  
     22    Located in: /bounty-mission/aggregator 
    2023    Item Type = ["Bounty Program Submission",] 
    2124    state = ['published',] 
    22  
    2325    sort_on = "creation"     
    2426    """ 
    25     theCollection = getattr(container, TOPIC_ID, None) 
    26     ptype = getattr(theCollection, 'portal_type', None) 
    27     if not ptype == "Topic": 
    28         container.invokeFactory(id=TOPIC_ID, type_name="Topic") 
    29         theCollection = getattr(container, TOPIC_ID) 
    30         theCollection.unmarkCreationFlag() 
    31         theCriteria = theCollection.addCriterion('Type','ATPortalTypeCriterion') 
    32         theCriteria.setValue(["Bounty Program Submission",]) 
    33         theCriteria = theCollection.addCriterion('review_state','ATSelectionCriterion') 
    34         theCriteria.setValue("published") 
    35         theCriteria = theCollection.addCriterion('created','ATSortCriterion')  
    36         logger.info("To '%s' added collection, which grab all " \ 
    37                     "'Bounty Program Submission' objects" % \ 
    38                     '/'.join(theCriteria.getPhysicalPath())) 
    39     else: 
    40         logger.info("To '%s' collection already present in the portal" \ 
    41                     % '/'.join(theCollection.getPhysicalPath()))  
     27    topic = getattr(container, TOPIC_ID, None) 
     28    if topic is None: 
     29        # Add criteria 
     30        _createObjectByType('Topic', container, id=TOPIC_ID, 
     31                            title=CONTAINER_TITLE) 
     32        topic = getattr(container, TOPIC_ID, None) 
     33        crit = topic.addCriterion('Type','ATPortalTypeCriterion') 
     34        crit.setValue(["Bounty Program Submission",]) 
     35        crit = topic.addCriterion('review_state','ATSelectionCriterion') 
     36        crit.setValue("published") 
     37        crit = topic.addCriterion('created','ATSortCriterion')  
     38        topic.setLayout('folder_summary_view') 
     39        topic.unmarkCreationFlag() 
    4240 
    43 def createPFGForm(context, container, logger): 
     41        if wftool.getInfoFor(topic, 'review_state') != 'published': 
     42            wftool.doActionFor(topic, 'publish') 
     43         
     44        logger.info("Bounty submissions aggregator successfully added") 
     45 
     46 
     47def createPFGForm(context, container, wftool, logger): 
    4448    """ 
    4549    """ 
    4650    form = getattr(container, FORM_ID, None) 
    47     wftool = getToolByName(container, "portal_workflow") 
    48  
    4951    if form is not None: 
    50         # Delete form if it exist 
    5152        container.manage_delObjects(ids = FORM_ID) 
    52  
    5353    # Create new form object 
    5454    container.invokeFactory(id=FORM_ID, type_name="FormFolder", 
    55                            title="Form of Bounty Program") 
     55                           title="Bounty Submission Form") 
    5656    form = getattr(container, FORM_ID) 
    57     logger.info("To '%s' added Form Folder" % \ 
    58                 '/'.join(form.getPhysicalPath())) 
    5957    # cleanup form and import data from the archive 
    6058    form.manage_delObjects(ids=form.objectIds()) 
     
    6260    ctx = TarballImportContext(form, pfg_data) 
    6361    IFilesystemImporter(form).import_(ctx, 'structure', True) 
    64     logger.info("Successfully imported PFG from data from archive into the form") 
    6562    # Fix importing PFG via GS bug 
    6663    #   - it adds extra indentation, wchich breaks the script. 
    6764    create_bounty_script = form["create-bounty-submission"] 
    6865    create_bounty_script.setScriptBody(CREATE_SCRIPT_BODY) 
    69     # Update form 
     66    # Update and pubhish the form 
    7067    form.update(**{"actionAdapter":["create-bounty-submission",],}) 
    7168    form.unmarkCreationFlag() 
    7269    form.reindexObject() 
    73     # Publish the form 
    7470    if wftool.getInfoFor(form, 'review_state') != 'published': 
    7571        wftool.doActionFor(form, 'publish') 
    76         logger.info("'%s' PFG form successfully published" % form.Title()) 
    77     else: 
    78         logger.info("'%s' PFG form already in 'published' state" % form.Title()) 
     72    logger.info("Bounty submission form successfully created")  
    7973 
    8074def createStructure(context, logger): 
     
    8276    wftool = getToolByName(site, "portal_workflow") 
    8377 
    84     subcontainer = getattr(site, SUBMISSION_CONTAINER_ID, None) 
    85     if subcontainer is None: 
    86         site.invokeFactory("Folder", SUBMISSION_CONTAINER_ID) 
    87         subcontainer = getattr(site, SUBMISSION_CONTAINER_ID) 
    88         subcontainer.update(title="Bounty Submissions") 
    89         logger.info("Successfully crated '%s' submissions container" \ 
    90                     "in the portal" % SUBMISSION_CONTAINER_ID) 
    91         # Publish the submissions container 
    92         if wftool.getInfoFor(subcontainer, 'review_state') != 'published': 
    93             wftool.doActionFor(subcontainer, 'publish') 
    94             logger.info("Bounty submissions container successfully published") 
    95         else: 
    96             logger.info("Bounty submissions container already in 'published' state") 
    97         # exclude folder from navigation 
    98         subcontainer.setExcludeFromNav(True) 
    99         logger.info("Excluded Bounty submissions container from navigation") 
     78    # CONTAINER 
     79    if  CONTAINER_ID not in site.objectIds(): 
     80        _createObjectByType('Folder', site, id=CONTAINER_ID, 
     81                            title=CONTAINER_TITLE) 
     82        folder = getattr(site, CONTAINER_ID) 
     83        folder.setOrdering('unordered') 
     84        folder.setConstrainTypesMode(constraintypes.ENABLED) 
     85        #folder.setLocallyAllowedTypes(["Bounty Program Submission"]) 
     86        #folder.setImmediatelyAddableTypes(["Bounty Program Submission"]) 
     87        folder.setDefaultPage(TOPIC_ID) 
     88        folder.unmarkCreationFlag() 
    10089 
    101     else: 
    102         logger.info("To '%s' container already present in the portal" \ 
    103                     % '/'.join(subcontainer.getPhysicalPath()))  
     90        if wftool.getInfoFor(folder, 'review_state') != 'published': 
     91            wftool.doActionFor(folder, 'publish') 
    10492 
    105     createTopic(subcontainer, logger) 
    106     createPFGForm(context, subcontainer, logger) 
     93        logger.info("Submissions container added") 
     94 
     95    createTopic(folder, wftool, logger) 
     96    createPFGForm(context, folder, wftool, logger) 
    10797 
    10898def importVarious(context): 
     
    112102        return 
    113103    logger = context.getLogger("ploneorg.kudobounty") 
    114      
    115104    createStructure(context, logger) 
Note: See TracChangeset for help on using the changeset viewer.