コード例 #1
0
ファイル: __init__.py プロジェクト: Janaba/adhocracy3
def use_workflow_state_for_participation_time_range(root, registry):
    """use workflow state data for participation start and end."""
    from adhocracy_core.sheets.workflow import IWorkflowAssignment
    from adhocracy_meinberlin.resources.bplan import IProcess
    from adhocracy_meinberlin.sheets.bplan import IProcessSettings
    catalogs = find_service(root, 'catalogs')
    bplaene = _search_for_interfaces(catalogs, IProcess)
    for bplan in bplaene:
        process_settings_sheet = bplan.\
            _sheet_adhocracy_meinberlin_sheets_bplan_IProcessSettings
        if ('participation_start_date' in process_settings_sheet
                and 'participation_end_date' in process_settings_sheet):
            participation_start_date = \
                process_settings_sheet['participation_start_date']
            participation_end_date = \
                process_settings_sheet['participation_end_date']
            process_settings = registry.content.get_sheet(bplan,
                                                          IProcessSettings)
            process_settings.delete_field_values(['participation_start_date'])
            process_settings.delete_field_values(['participation_end_date'])
            workflow_assignment = registry.content.get_sheet(
                bplan,
                IWorkflowAssignment)
            workflow_assignment.set(
                {'state_data': [{'name': 'participate', 'description': '',
                                 'start_date': participation_start_date,
                                 'end_date': participation_end_date}]})
コード例 #2
0
def remove_workflow_state_data_end_date(root, registry):
    """Remove end_date from state_data and add the next state."""
    from adhocracy_core.sheets.workflow import IWorkflowAssignment
    from adhocracy_meinberlin.resources.bplan import IProcess
    catalogs = find_service(root, 'catalogs')
    bplaene = _search_for_interfaces(catalogs, IProcess)
    for bplan in bplaene:
        workflow_assignment = registry.content.get_sheet(
            bplan, IWorkflowAssignment)
        state_data = workflow_assignment.get()['state_data']
        if len(state_data) > 0:
            state_data_participate = state_data[0]
            if 'end_date' in state_data_participate:
                start_date = state_data_participate['start_date']
                end_date = state_data_participate['end_date']
                workflow_assignment.set({
                    'state_data': [{
                        'name': 'participate',
                        'description': '',
                        'start_date': start_date
                    }, {
                        'name': 'closed',
                        'description': '',
                        'start_date': end_date
                    }]
                })
コード例 #3
0
ファイル: __init__.py プロジェクト: Janaba/adhocracy3
def change_bplan_officeworker_email_representation(root, registry):
    """Change bplan officeworker email representation."""
    from substanced.util import find_objectmap
    from adhocracy_core.utils import find_graph
    from adhocracy_meinberlin.resources.bplan import IProcess
    from adhocracy_meinberlin.sheets.bplan import IProcessSettings
    from adhocracy_meinberlin.sheets.bplan import IProcessPrivateSettings
    from adhocracy_meinberlin.sheets.bplan import OfficeWorkerUserReference
    migrate_new_sheet(root, IProcess, IProcessPrivateSettings)
    catalogs = find_service(root, 'catalogs')
    bplaene = _search_for_interfaces(catalogs, IProcess)
    objectmap = find_objectmap(root)
    graph = find_graph(root)
    for bplan in bplaene:
        process_settings_ref = graph.get_references_for_isheet(
            bplan,
            IProcessSettings)
        if 'office_worker' in process_settings_ref:
            office_worker = process_settings_ref['office_worker'][0]
            private_settings = registry.content.get_sheet(
                bplan,
                IProcessPrivateSettings)
            private_settings.set({'office_worker_email': office_worker.email})
            objectmap.disconnect(bplan, office_worker,
                                 OfficeWorkerUserReference)
コード例 #4
0
def use_workflow_state_for_participation_time_range(root, registry):
    """Use workflow state data for participation start and end."""
    from adhocracy_core.sheets.workflow import IWorkflowAssignment
    from adhocracy_meinberlin.resources.bplan import IProcess
    from adhocracy_meinberlin.sheets.bplan import IProcessSettings
    catalogs = find_service(root, 'catalogs')
    bplaene = _search_for_interfaces(catalogs, IProcess)
    for bplan in bplaene:
        process_settings_sheet = bplan.\
            _sheet_adhocracy_meinberlin_sheets_bplan_IProcessSettings
        if ('participation_start_date' in process_settings_sheet
                and 'participation_end_date' in process_settings_sheet):
            participation_start_date = \
                process_settings_sheet['participation_start_date']
            participation_end_date = \
                process_settings_sheet['participation_end_date']
            process_settings = registry.content.get_sheet(
                bplan, IProcessSettings)
            process_settings.delete_field_values(['participation_start_date'])
            process_settings.delete_field_values(['participation_end_date'])
            workflow_assignment = registry.content.get_sheet(
                bplan, IWorkflowAssignment)
            workflow_assignment.set({
                'state_data': [{
                    'name': 'participate',
                    'description': '',
                    'start_date': participation_start_date,
                    'end_date': participation_end_date
                }]
            })
コード例 #5
0
def reindex_requested_funding(root):  # pragma: no cover
    """Reindex requested funding index for proposals (stores integer now)."""
    from adhocracy_core.evolution import _search_for_interfaces
    from adhocracy_mercator.resources.mercator import IMercatorProposalVersion
    catalogs = find_service(root, 'catalogs')
    index = catalogs['adhocracy']['mercator_requested_funding']
    proposals = _search_for_interfaces(catalogs, IMercatorProposalVersion)
    index.reset()
    for proposal in proposals:
        catalogs.reindex_index(proposal, 'mercator_requested_funding')
コード例 #6
0
ファイル: __init__.py プロジェクト: olivierh59500/adhocracy3
def make_mercator_proposals_badgeable(root, registry):
    """Add badge services processes and make mercator proposals badgeable."""
    from adhocracy_core.evolution import _search_for_interfaces
    from adhocracy_mercator.resources.mercator import IProcess
    catalogs = find_service(root, 'catalogs')
    proposals = _search_for_interfaces(catalogs, IMercatorProposal)
    for proposal in proposals:
        if not IBadgeable.providedBy(proposal):
            logger.info('add badgeable interface to {0}'.format(proposal))
            alsoProvides(proposal, IBadgeable)
        if 'badge_assignments' not in proposal:
            logger.info('add badge assignments to {0}'.format(proposal))
            add_badge_assignments_service(proposal, registry, {})
    processes = _search_for_interfaces(catalogs, IProcess)
    for process in processes:
        if not IHasBadgesPool.providedBy(process):
            logger.info('Add badges service to {0}'.format(process))
            add_badges_service(process, registry, {})
            alsoProvides(process, IHasBadgesPool)
コード例 #7
0
ファイル: __init__.py プロジェクト: liqd/adhocracy3
def reindex_requested_funding(root, registry):
    """Reindex requested funding index for proposals (stores integer now)."""
    from adhocracy_core.evolution import _search_for_interfaces
    from adhocracy_mercator.resources.mercator import IMercatorProposalVersion
    catalogs = find_service(root, 'catalogs')
    index = catalogs['adhocracy']['mercator_requested_funding']
    proposals = _search_for_interfaces(catalogs, IMercatorProposalVersion)
    index.reset()
    for proposal in proposals:
        catalogs.reindex_index(proposal, 'mercator_requested_funding')
コード例 #8
0
ファイル: __init__.py プロジェクト: liqd/adhocracy3
def make_mercator_proposals_badgeable(root, registry):
    """Add badge services processes and make mercator proposals badgeable."""
    from adhocracy_core.evolution import _search_for_interfaces
    from adhocracy_mercator.resources.mercator import IProcess
    catalogs = find_service(root, 'catalogs')
    proposals = _search_for_interfaces(catalogs, IMercatorProposal)
    for proposal in proposals:
        if not IBadgeable.providedBy(proposal):
            logger.info('add badgeable interface to {0}'.format(proposal))
            alsoProvides(proposal, IBadgeable)
        if 'badge_assignments' not in proposal:
            logger.info('add badge assignments to {0}'.format(proposal))
            add_badge_assignments_service(proposal, registry, {})
    processes = _search_for_interfaces(catalogs, IProcess)
    for process in processes:
        if not IHasBadgesPool.providedBy(process):
            logger.info('Add badges service to {0}'.format(process))
            add_badges_service(process, registry, {})
            alsoProvides(process, IHasBadgesPool)
コード例 #9
0
ファイル: __init__.py プロジェクト: Janaba/adhocracy3
def remove_workflow_state_data_end_date(root, registry):
    """Remove end_date from state_data and add the next state."""
    from adhocracy_core.sheets.workflow import IWorkflowAssignment
    from adhocracy_meinberlin.resources.bplan import IProcess
    catalogs = find_service(root, 'catalogs')
    bplaene = _search_for_interfaces(catalogs, IProcess)
    for bplan in bplaene:
        workflow_assignment = registry.content.get_sheet(
            bplan,
            IWorkflowAssignment)
        state_data = workflow_assignment.get()['state_data']
        if len(state_data) > 0:
            state_data_participate = state_data[0]
            start_date = state_data_participate['start_date']
            end_date = state_data_participate['end_date']
            workflow_assignment.set(
                {'state_data': [{'name': 'participate', 'description': '',
                                 'start_date': start_date},
                                {'name': 'closed', 'description': '',
                                 'start_date': end_date}]})
コード例 #10
0
def change_bplan_officeworker_email_representation(root, registry):
    """Change bplan officeworker email representation."""
    from substanced.util import find_objectmap
    from adhocracy_core.utils import find_graph
    from adhocracy_meinberlin.resources.bplan import IProcess
    from adhocracy_meinberlin.sheets.bplan import IProcessSettings
    from adhocracy_meinberlin.sheets.bplan import IProcessPrivateSettings
    from adhocracy_meinberlin.sheets.bplan import OfficeWorkerUserReference
    migrate_new_sheet(root, IProcess, IProcessPrivateSettings)
    catalogs = find_service(root, 'catalogs')
    bplaene = _search_for_interfaces(catalogs, IProcess)
    objectmap = find_objectmap(root)
    graph = find_graph(root)
    for bplan in bplaene:
        process_settings_ref = graph.get_references_for_isheet(
            bplan, IProcessSettings)
        if 'office_worker' in process_settings_ref:
            office_worker = process_settings_ref['office_worker'][0]
            private_settings = registry.content.get_sheet(
                bplan, IProcessPrivateSettings)
            private_settings.set({'office_worker_email': office_worker.email})
            objectmap.disconnect(bplan, office_worker,
                                 OfficeWorkerUserReference)