diff --git a/opentech/apply/funds/forms.py b/opentech/apply/funds/forms.py index 192dbfba3acbefeaf36d0856b78bbdaf62a2d34e..91911a9858bf01e30272c27b1c3e7cb1791dfcc2 100644 --- a/opentech/apply/funds/forms.py +++ b/opentech/apply/funds/forms.py @@ -27,6 +27,9 @@ class ProgressSubmissionForm(forms.ModelForm): self.user = kwargs.pop('user') super().__init__(*args, **kwargs) choices = list(self.instance.get_actions_for_user(self.user)) + # Sort the transitions by the order they are listed. + sort_by = list(self.instance.phase.transitions.keys()) + choices.sort(key=lambda k: sort_by.index(k[0])) action_field = self.fields['action'] action_field.choices = choices self.should_show = bool(choices) diff --git a/opentech/apply/funds/workflow.py b/opentech/apply/funds/workflow.py index 8835492298d1a91258b437fb362612e77c1cfee8..6b2bffb1dd6428401449cd09a9d361d574167a49 100644 --- a/opentech/apply/funds/workflow.py +++ b/opentech/apply/funds/workflow.py @@ -192,11 +192,11 @@ SingleStageDefinition = [ { INITIAL_STATE: { 'transitions': { + 'more_info': 'Request More Information', 'internal_review': 'Open Review', + 'determination': 'Ready For Determination', 'rejected': 'Dismiss', - 'more_info': 'Request More Information', 'accepted': 'Accept', - 'determination': 'Ready For Determination', }, 'display': 'Screening', 'public': 'Application Received', @@ -210,9 +210,9 @@ SingleStageDefinition = [ 'permissions': {UserPermissions.APPLICANT, UserPermissions.STAFF, UserPermissions.LEAD, UserPermissions.ADMIN}, 'method': 'create_revision', }, + 'determination': 'Ready For Determination', 'accepted': 'Accept', 'rejected': 'Dismiss', - 'determination': 'Ready For Determination', }, 'display': 'More information required', 'stage': Request, @@ -222,8 +222,8 @@ SingleStageDefinition = [ { 'internal_review': { 'transitions': { - INITIAL_STATE: 'Screening (back)', 'post_review_discussion': 'Close Review', + INITIAL_STATE: 'Screening (back)', }, 'display': 'Internal Review', 'public': 'OTF Review', @@ -234,11 +234,11 @@ SingleStageDefinition = [ { 'post_review_discussion': { 'transitions': { + 'post_review_more_info': 'Request More Information', + 'determination': 'Ready For Determination', 'internal_review': 'Open Review (back)', 'accepted': 'Accept', 'rejected': 'Dismiss', - 'determination': 'Ready For Determination', - 'post_review_more_info': 'Request More Information', }, 'display': 'Ready For Discussion', 'stage': Request, @@ -251,9 +251,9 @@ SingleStageDefinition = [ 'permissions': {UserPermissions.APPLICANT, UserPermissions.STAFF, UserPermissions.LEAD, UserPermissions.ADMIN}, 'method': 'create_revision', }, + 'determination': 'Ready For Determination', 'accepted': 'Accept', 'rejected': 'Dismiss', - 'determination': 'Ready For Determination', }, 'display': 'More information required', 'stage': Request, @@ -290,10 +290,10 @@ SingleStageExternalDefinition = [ { INITIAL_STATE: { 'transitions': { - 'ext_internal_review': 'Open Review', - 'ext_rejected': 'Dismiss', 'ext_more_info': 'Request More Information', + 'ext_internal_review': 'Open Review', 'ext_determination': 'Ready For Determination', + 'ext_rejected': 'Dismiss', }, 'display': 'Screening', 'public': 'Application Received', @@ -316,8 +316,8 @@ SingleStageExternalDefinition = [ { 'ext_internal_review': { 'transitions': { - INITIAL_STATE: 'Screening (back)', 'ext_post_review_discussion': 'Close Review', + INITIAL_STATE: 'Screening (back)', }, 'display': 'Internal Review', 'public': 'OTF Review', @@ -328,11 +328,11 @@ SingleStageExternalDefinition = [ { 'ext_post_review_discussion': { 'transitions': { - 'ext_internal_review': 'Open Internal Review (back)', - 'ext_external_review': 'Open AC review', - 'ext_rejected': 'Dismiss', 'ext_post_review_more_info': 'Request More Information', + 'ext_external_review': 'Open AC review', 'ext_determination': 'Ready For Determination', + 'ext_internal_review': 'Open Internal Review (back)', + 'ext_rejected': 'Dismiss', }, 'display': 'Ready For Discussion', 'stage': RequestExt, @@ -354,8 +354,8 @@ SingleStageExternalDefinition = [ { 'ext_external_review': { 'transitions': { - 'ext_post_review_discussion': 'Ready For Discussion (back)', 'ext_post_external_review_discussion': 'Close Review', + 'ext_post_review_discussion': 'Ready For Discussion (back)', }, 'display': 'Advisory Council Review', 'stage': RequestExt, @@ -365,11 +365,11 @@ SingleStageExternalDefinition = [ { 'ext_post_external_review_discussion': { 'transitions': { + 'ext_post_external_review_more_info': 'Request More Information', + 'ext_determination': 'Ready For Determination', 'ext_external_review': 'Open AC review (back)', 'ext_accepted': 'Accept', 'ext_rejected': 'Dismiss', - 'ext_post_external_review_more_info': 'Request More Information', - 'ext_determination': 'Ready For Determination', }, 'display': 'Ready For Discussion', 'stage': RequestExt, @@ -419,12 +419,12 @@ SingleStageCommunityDefinition = [ { INITIAL_STATE: { 'transitions': { - 'com_internal_review': 'Open Review', + 'com_more_info': 'Request More Information', 'com_open_call': 'Open Call (public)', + 'com_internal_review': 'Open Review', 'com_community_review': 'Open Community Review', - 'com_rejected': 'Dismiss', - 'com_more_info': 'Request More Information', 'com_determination': 'Ready For Determination', + 'com_rejected': 'Dismiss', }, 'display': 'Screening', 'public': 'Application Received', @@ -456,9 +456,9 @@ SingleStageCommunityDefinition = [ { 'com_internal_review': { 'transitions': { - INITIAL_STATE: 'Screening (back)', 'com_community_review': 'Open Community Review', 'com_post_review_discussion': 'Close Review', + INITIAL_STATE: 'Screening (back)', 'com_rejected': 'Dismiss', }, 'display': 'Internal Review', @@ -468,8 +468,8 @@ SingleStageCommunityDefinition = [ }, 'com_community_review': { 'transitions': { - 'com_internal_review': 'Open Internal Review (back)', 'com_post_review_discussion': 'Close Review', + 'com_internal_review': 'Open Internal Review (back)', 'com_rejected': 'Dismiss', }, 'display': 'Community Review', @@ -481,11 +481,11 @@ SingleStageCommunityDefinition = [ { 'com_post_review_discussion': { 'transitions': { - 'com_internal_review': 'Open Internal Review (back)', - 'com_external_review': 'Open AC review', - 'com_rejected': 'Dismiss', 'com_post_review_more_info': 'Request More Information', + 'com_external_review': 'Open AC review', 'com_determination': 'Ready For Determination', + 'com_internal_review': 'Open Internal Review (back)', + 'com_rejected': 'Dismiss', }, 'display': 'Ready For Discussion', 'stage': RequestCom, @@ -507,8 +507,8 @@ SingleStageCommunityDefinition = [ { 'com_external_review': { 'transitions': { - 'com_post_review_discussion': 'Ready For Discussion (back)', 'com_post_external_review_discussion': 'Close Review', + 'com_post_review_discussion': 'Ready For Discussion (back)', }, 'display': 'Advisory Council Review', 'stage': RequestCom, @@ -518,11 +518,11 @@ SingleStageCommunityDefinition = [ { 'com_post_external_review_discussion': { 'transitions': { + 'com_post_external_review_more_info': 'Request More Information', + 'com_determination': 'Ready For Determination', 'com_external_review': 'Open AC review (back)', 'com_accepted': 'Accept', 'com_rejected': 'Dismiss', - 'com_post_external_review_more_info': 'Request More Information', - 'com_determination': 'Ready For Determination', }, 'display': 'Ready For Discussion', 'stage': RequestCom, @@ -572,11 +572,11 @@ DoubleStageDefinition = [ { INITIAL_STATE: { 'transitions': { - 'concept_internal_review': 'Open Review', - 'concept_rejected': 'Dismiss', 'concept_more_info': 'Request More Information', - 'invited_to_proposal': 'Invite to Proposal', + 'concept_internal_review': 'Open Review', 'concept_determination': 'Ready For Preliminary Determination', + 'invited_to_proposal': 'Invite to Proposal', + 'concept_rejected': 'Dismiss', }, 'display': 'Screening', 'public': 'Concept Note Received', @@ -602,8 +602,8 @@ DoubleStageDefinition = [ { 'concept_internal_review': { 'transitions': { - INITIAL_STATE: 'Screening (back)', 'concept_review_discussion': 'Close Review', + INITIAL_STATE: 'Screening (back)', 'invited_to_proposal': 'Invite to Proposal', }, 'display': 'Internal Review', @@ -615,11 +615,11 @@ DoubleStageDefinition = [ { 'concept_review_discussion': { 'transitions': { + 'concept_review_more_info': 'Request More Information', + 'concept_determination': 'Ready For Preliminary Determination', 'concept_internal_review': 'Open Review (back)', 'invited_to_proposal': 'Invite to Proposal', 'concept_rejected': 'Dismiss', - 'concept_review_more_info': 'Request More Information', - 'concept_determination': 'Ready For Preliminary Determination', }, 'display': 'Ready For Discussion', 'stage': Concept, @@ -642,8 +642,8 @@ DoubleStageDefinition = [ { 'concept_determination': { 'transitions': { - 'invited_to_proposal': 'Invite to Proposal', 'concept_review_more_info': 'Request More Information', + 'invited_to_proposal': 'Invite to Proposal', 'concept_rejected': 'Dismiss', }, 'display': 'Ready for Preliminary Determination', @@ -676,9 +676,9 @@ DoubleStageDefinition = [ 'draft_proposal': { 'transitions': { 'proposal_discussion': {'display': 'Submit', 'permissions': {UserPermissions.APPLICANT}, 'method': 'create_revision'}, - 'proposal_rejected': 'Dismiss', 'external_review': 'Open AC review', 'proposal_determination': 'Ready For Final Determination', + 'proposal_rejected': 'Dismiss', }, 'display': 'Invited for Proposal', 'stage': Proposal, @@ -688,11 +688,11 @@ DoubleStageDefinition = [ { 'proposal_discussion': { 'transitions': { - 'proposal_internal_review': 'Open Review', - 'proposal_rejected': 'Dismiss', 'proposal_more_info': 'Request More Information', - 'proposal_determination': 'Ready For Final Determination', + 'proposal_internal_review': 'Open Review', 'external_review': 'Open AC review', + 'proposal_determination': 'Ready For Final Determination', + 'proposal_rejected': 'Dismiss', }, 'display': 'Proposal Received', 'stage': Proposal, @@ -705,9 +705,9 @@ DoubleStageDefinition = [ 'permissions': {UserPermissions.APPLICANT, UserPermissions.STAFF, UserPermissions.LEAD, UserPermissions.ADMIN}, 'method': 'create_revision', }, - 'proposal_rejected': 'Dismiss', - 'proposal_determination': 'Ready For Final Determination', 'external_review': 'Open AC review', + 'proposal_determination': 'Ready For Final Determination', + 'proposal_rejected': 'Dismiss', }, 'display': 'More information required', 'stage': Proposal, @@ -717,8 +717,8 @@ DoubleStageDefinition = [ { 'proposal_internal_review': { 'transitions': { - 'proposal_discussion': 'Proposal Received (back)', 'post_proposal_review_discussion': 'Close Review', + 'proposal_discussion': 'Proposal Received (back)', }, 'display': 'Internal Review', 'public': 'OTF Review', @@ -729,11 +729,11 @@ DoubleStageDefinition = [ { 'post_proposal_review_discussion': { 'transitions': { - 'proposal_internal_review': 'Open Internal Review (back)', + 'post_proposal_review_more_info': 'Request More Information', 'external_review': 'Open AC review', 'proposal_determination': 'Ready For Final Determination', + 'proposal_internal_review': 'Open Internal Review (back)', 'proposal_rejected': 'Dismiss', - 'post_proposal_review_more_info': 'Request More Information', }, 'display': 'Ready For Discussion', 'stage': Proposal, @@ -756,8 +756,8 @@ DoubleStageDefinition = [ { 'external_review': { 'transitions': { - 'post_proposal_review_discussion': 'Ready For Discussion (back)', 'post_external_review_discussion': 'Close Review', + 'post_proposal_review_discussion': 'Ready For Discussion (back)', }, 'display': 'Advisory Council Review', 'stage': Proposal, @@ -767,11 +767,11 @@ DoubleStageDefinition = [ { 'post_external_review_discussion': { 'transitions': { + 'post_external_review_more_info': 'Request More Information', + 'proposal_determination': 'Ready For Final Determination', 'external_review': 'Open AC review (back)', 'proposal_accepted': 'Accept', 'proposal_rejected': 'Dismiss', - 'proposal_determination': 'Ready For Final Determination', - 'post_external_review_more_info': 'Request More Information', }, 'display': 'Ready For Discussion', 'stage': Proposal,