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}]})
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 }] })
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)
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 }] })
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')
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)
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')
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}]})