Esempio n. 1
0
 def _init_definition(self):
     self.defineNodes(
         start=StartEventDefinition(),
         pg=ParallelGatewayDefinition(),
         #First loop
         pgblock1=ParallelGatewayDefinition(),
         pgblock1sync=ParallelGatewayDefinition(),
         egblock1=ExclusiveGatewayDefinition(),
         archiveculturalevent=ActivityDefinition(
             contexts=[ArchiveCulturalEvent],
             description=_("Archive cultural events"),
             title=_("Archive cultural events"),
             groups=[]),
         send_newsletters=ActivityDefinition(
             contexts=[SendNewsletters],
             description=_("Send newsletters"),
             title=_("Send newsletters"),
             groups=[]),
         alert_users=ActivityDefinition(contexts=[AlertUsers],
                                        description=_("Alert users"),
                                        title=_("Alert users"),
                                        groups=[]),
         timerblock1=IntermediateCatchEventDefinition(
             TimerEventDefinition(time_date=calculate_next_date_block1)),
         #Second loop
         pgblock2=ParallelGatewayDefinition(),
         pgblock2sync=ParallelGatewayDefinition(),
         egblock2=ExclusiveGatewayDefinition(),
         synchronizepublishsettings=ActivityDefinition(
             contexts=[SynchronizePublishSettings],
             description=_("Synchronize publish settings"),
             title=_("Synchronize publish settings"),
             groups=[]),
         timerblock2=IntermediateCatchEventDefinition(
             TimerEventDefinition(time_date=calculate_next_date_block2)),
         end=EndEventDefinition(),
     )
     self.defineTransitions(
         TransitionDefinition('start', 'pg'),
         #First loop
         TransitionDefinition('pg', 'egblock1'),
         TransitionDefinition('egblock1', 'pgblock1'),
         TransitionDefinition('pgblock1', 'archiveculturalevent'),
         TransitionDefinition('archiveculturalevent', 'pgblock1sync'),
         TransitionDefinition('pgblock1', 'send_newsletters'),
         TransitionDefinition('send_newsletters', 'pgblock1sync'),
         TransitionDefinition('pgblock1', 'alert_users'),
         TransitionDefinition('alert_users', 'pgblock1sync'),
         TransitionDefinition('pgblock1sync', 'timerblock1'),
         TransitionDefinition('timerblock1', 'egblock1'),
         #Second loop
         TransitionDefinition('pg', 'egblock2'),
         TransitionDefinition('egblock2', 'pgblock2'),
         TransitionDefinition('pgblock2', 'synchronizepublishsettings'),
         TransitionDefinition('synchronizepublishsettings', 'pgblock2sync'),
         TransitionDefinition('pgblock2sync', 'timerblock2'),
         TransitionDefinition('timerblock2', 'egblock2'),
     )
Esempio n. 2
0
 def _init_definition(self):
     self.defineNodes(
         start=StartEventDefinition(),
         eg1=ExclusiveGatewayDefinition(),
         pg1=ParallelGatewayDefinition(),
         eg2=ExclusiveGatewayDefinition(),
         correct=ActivityDefinition(contexts=[CorrectProposal],
                                    description=_("Improve the proposal"),
                                    title=_("Improve"),
                                    groups=[]),
         correctitem=ActivityDefinition(contexts=[CorrectItem],
                                        description=_("Correct item"),
                                        title=_("Correct"),
                                        groups=[]),
         close_work=ActivityDefinition(contexts=[CloseWork],
                                       description=_("Close the work"),
                                       title=_("Close the work"),
                                       groups=[]),
         timer=IntermediateCatchEventDefinition(
             TimerEventDefinition(
                 time_date=calculate_improvement_cycle_date)),
         end=EndEventDefinition(),
     )
     self.defineTransitions(
         TransitionDefinition('start', 'pg1'),
         TransitionDefinition('pg1', 'correct'),
         TransitionDefinition('pg1', 'correctitem'),
         TransitionDefinition('pg1', 'timer'),
         TransitionDefinition('timer', 'close_work'),
         TransitionDefinition('close_work', 'end'),
     )
Esempio n. 3
0
 def _init_definition(self):
     self.defineNodes(
         start=StartEventDefinition(),
         pg=ParallelGatewayDefinition(),
         timer=IntermediateCatchEventDefinition(
             TimerEventDefinition(time_date=time_date)),
         conditional=IntermediateCatchEventDefinition(
             ConditionalEventDefinition(event_condition)),
         eg=ExclusiveGatewayDefinition(),
         end=EndEventDefinition(),
     )
     self.defineTransitions(
         TransitionDefinition('start', 'pg'),
         TransitionDefinition('pg', 'timer'),
         TransitionDefinition('pg', 'conditional'),
         TransitionDefinition('conditional', 'eg'),
         TransitionDefinition('timer', 'eg'),
         TransitionDefinition('eg', 'end'),
     )
Esempio n. 4
0
 def _init_definition(self):
     self.defineNodes(
         start=StartEventDefinition(),
         eg=ExclusiveGatewayDefinition(),
         eg1=ExclusiveGatewayDefinition(),
         eg2=ExclusiveGatewayDefinition(),
         pg=ParallelGatewayDefinition(),
         votingpublication=SubProcessDefinition(
             pd='ballotprocess',
             contexts=[VotingPublication],
             description=_("Start voting for publication"),
             title=_("Start voting for publication"),
             groups=[]),
         timer_alert=IntermediateCatchEventDefinition(
             TimerEventDefinition(time_date=alert_end_cycle_duration)),
         alert_end=ActivityDefinition(
             contexts=[AlertEnd],
             description=_("Alert for the end of an improvement cycle"),
             title=_("Alert for the end of an improvement cycle"),
             groups=[]),
         work=WorkSubProcessDefinition(pd='None',
                                       contexts=[Work],
                                       description=_("Start work"),
                                       title=_("Start work"),
                                       groups=[]),
         submit=ActivityDefinition(
             contexts=[SubmitProposal],
             description=_("Submit the proposal as is"),
             title=_("Submit"),
             groups=[]),
         end=EndEventDefinition(),
     )
     self.defineTransitions(
         TransitionDefinition('start', 'eg'),
         TransitionDefinition('eg', 'votingpublication', sync=True),
         TransitionDefinition('votingpublication', 'eg1'),
         TransitionDefinition('eg1', 'pg', amendable_condition, sync=True),
         TransitionDefinition('pg', 'eg2'),
         TransitionDefinition('eg2', 'timer_alert'),
         TransitionDefinition('timer_alert', 'alert_end'),
         TransitionDefinition('alert_end',
                              'eg2',
                              has_alert_condition,
                              sync=True),
         TransitionDefinition('pg', 'work'),
         TransitionDefinition('eg1', 'submit', publish_condition,
                              sync=True),
         TransitionDefinition('submit', 'end'),
         TransitionDefinition('work', 'eg'),
     )
Esempio n. 5
0
    def _init_definition(self):
        self.defineNodes(
            start=StartEventDefinition(),
            timer=IntermediateCatchEventDefinition(
                TimerEventDefinition(time_date=time_date)),
            alert=ActivityDefinition(contexts=[AlertRegistration],
                                     description=_("User registration"),
                                     title=_("User registration"),
                                     groups=[]),

            end=EndEventDefinition(),
        )
        self.defineTransitions(
            TransitionDefinition('start', 'timer'),
            TransitionDefinition('timer', 'alert'),
            TransitionDefinition('alert', 'end'),
        )
Esempio n. 6
0
    def _process_definition_with_activity_after_start_event(self):
        """
        G1(+), G2(+): parallel gateways
        S: start event
        E: End event
        St: Signal throwing
        Sc: Signal catching
        A, B, D: activities
                                      -----   ------
                                   -->| A |-->| St |--
        -----   -----   --------- /   -----   ------  \ ---------   -----
        | S |-->| B |-->| G1(+) |-    ------  -----    -| G2(+) |-->| E |
        -----   -----   --------- \-->| Sc |->| D |---/ ---------   -----
                                      ------  -----
        """

        pd = ProcessDefinition(**{'id': u'sample'})
        self.app['sample'] = pd
        pd.defineNodes(
            s=StartEventDefinition(),
            g1=ParallelGatewayDefinition(),
            g2=ParallelGatewayDefinition(),
            a=ActivityDefinition(),
            b=ActivityDefinition(),
            d=ActivityDefinition(),
            e=EndEventDefinition(),
            st=IntermediateThrowEventDefinition(
                SignalEventDefinition(ref_signal)),
            sc=IntermediateCatchEventDefinition(
                SignalEventDefinition(ref_signal)),
        )
        pd.defineTransitions(
            TransitionDefinition('s', 'b'),
            TransitionDefinition('b', 'g1'),
            TransitionDefinition('g1', 'a'),
            TransitionDefinition('g1', 'sc'),
            TransitionDefinition('a', 'st'),
            TransitionDefinition('sc', 'd'),
            TransitionDefinition('st', 'g2'),
            TransitionDefinition('d', 'g2'),
            TransitionDefinition('g2', 'e'),
        )

        self.config.scan(example)
        return pd
Esempio n. 7
0
 def _init_definition(self):
     self.defineNodes(
             start = StartEventDefinition(),
             eg1 = ExclusiveGatewayDefinition(),
             pg1 = ParallelGatewayDefinition(),
             eg2 = ExclusiveGatewayDefinition(),
             votingamendments = SubProcessDefinitionAmendments(pd='ballotprocess', contexts=[VotingAmendments],
                                    description=_("Start voting on amendments"),
                                    title=_("Start voting on amendments"),
                                    groups=[]),
             alert = ActivityDefinition(contexts=[Alert],
                                    description=_("Alert"),
                                    title=_("Alert"),
                                    groups=[]),
             timer = IntermediateCatchEventDefinition(TimerEventDefinition(time_date=calculate_improvement_cycle_date)),
             amendmentsresult = ActivityDefinition(contexts=[AmendmentsResult],
                                    description=_("Result of the vote on amendments"),
                                    title=_("Result of the vote on amendments"),
                                    groups=[]),
             improve = ActivityDefinition(contexts=[ImproveProposal],
                                    description=_("Improve the proposal"),
                                    title=_("Improve"),
                                    groups=[]),
             improveandexplain = ActivityDefinition(contexts=[ImproveProposalAndExplain],
                                    description=_("Improve and explain"),
                                    title=_("Improve and explain"),
                                    groups=[]),
             end = EndEventDefinition(),
     )
     self.defineTransitions(
             TransitionDefinition('start', 'pg1'),
             TransitionDefinition('pg1', 'improve'),
             TransitionDefinition('pg1', 'improveandexplain'),
             TransitionDefinition('pg1', 'timer'),
             TransitionDefinition('timer', 'eg1'),
             TransitionDefinition('eg1', 'votingamendments', eg4_votingamendments_condition, sync=True),
             TransitionDefinition('eg1', 'alert', eg4_alert_condition, sync=True),
             TransitionDefinition('alert', 'eg2'),
             TransitionDefinition('votingamendments', 'amendmentsresult'),
             TransitionDefinition('amendmentsresult', 'eg2'),
             TransitionDefinition('eg2', 'end'),
     )
Esempio n. 8
0
 def _init_definition(self):
     self.defineNodes(
         start=StartEventDefinition(),
         pg=ParallelGatewayDefinition(),
         pg1=ParallelGatewayDefinition(),
         pg2=ParallelGatewayDefinition(),
         creat=ActivityDefinition(contexts=[CreateGame],
                                  description=_("Create a game"),
                                  title=_("Create a game"),
                                  groups=[_('Add')]),
         edit=ActivityDefinition(contexts=[EditGame],
                                 description=_("Edit the game"),
                                 title=_("Edit the game"),
                                 groups=[]),
         submit=ActivityDefinition(contexts=[SubmitGame],
                                   description=_("Submit the game"),
                                   title=_("Submit"),
                                   groups=[]),
         withdraw=ActivityDefinition(contexts=[WithdrawGame],
                                     description=_("Withdraw the game"),
                                     title=_("Withdraw"),
                                     groups=[]),
         reject=ActivityDefinition(contexts=[RejectGame],
                                   description=_("Reject the game"),
                                   title=_("Reject"),
                                   groups=[]),
         publish=ActivityDefinition(contexts=[PublishGame],
                                    description=_("Publish the game"),
                                    title=_("Publish"),
                                    groups=[]),
         archive=ActivityDefinition(contexts=[ArchiveGame],
                                    description=_("Archive the game"),
                                    title=_("Archive"),
                                    groups=[]),
         remove=ActivityDefinition(contexts=[RemoveGame],
                                   description=_("Remove the game"),
                                   title=_("Remove"),
                                   groups=[]),
         draw=ActivityDefinition(contexts=[Draw],
                                 description=_("Draw"),
                                 title=_("Draw"),
                                 groups=[]),
         send_result=ActivityDefinition(contexts=[SendResult],
                                        description=_("Send the result"),
                                        title=_("Send the result"),
                                        groups=[]),
         timer_start=IntermediateCatchEventDefinition(
             TimerEventDefinition(time_date=timer_start)),
         system_publish=ActivityDefinition(
             contexts=[SystemPublishGame],
             description=_("Publish the game"),
             title=_("Publish"),
             groups=[]),
         participate=ActivityDefinition(contexts=[Participate],
                                        description=_("Participate"),
                                        title=_("Participate"),
                                        groups=[]),
         timer_end=IntermediateCatchEventDefinition(
             TimerEventDefinition(time_date=timer_end)),
         eg=ExclusiveGatewayDefinition(),
         eg1=ExclusiveGatewayDefinition(),
         eg2=ExclusiveGatewayDefinition(),
         end=EndEventDefinition(),
     )
     self.defineTransitions(
         TransitionDefinition('start', 'creat'),
         TransitionDefinition('creat', 'eg'),
         TransitionDefinition('eg', 'pg'),
         TransitionDefinition('pg', 'edit'),
         TransitionDefinition('pg', 'submit'),
         TransitionDefinition('submit', 'eg1'),
         TransitionDefinition('eg1', 'withdraw'),
         TransitionDefinition('withdraw', 'eg'),
         TransitionDefinition('eg1', 'publish'),
         TransitionDefinition('pg1', 'archive'),
         TransitionDefinition('archive', 'eg2'),
         TransitionDefinition('pg', 'remove'),
         TransitionDefinition('remove', 'eg2'),
         TransitionDefinition('eg1', 'reject'),
         TransitionDefinition('reject', 'eg2'),
         TransitionDefinition('publish', 'pg1'),
         TransitionDefinition('pg1', 'timer_start'),
         TransitionDefinition('timer_start', 'system_publish'),
         TransitionDefinition('system_publish', 'pg2'),
         TransitionDefinition('pg2', 'timer_end'),
         TransitionDefinition('pg2', 'participate'),
         TransitionDefinition('timer_end', 'draw'),
         TransitionDefinition('draw', 'send_result'),
         TransitionDefinition('send_result', 'eg2'),
         TransitionDefinition('eg2', 'end'),
     )