Repository: liqd/a4-opin

Issue:
Change blueprints
There should be the following blueprints

**1. Brainstorming**
Collect ideas, questions and input concerning a problem or a question from a wide array of people.

Phase 1: Collect and comment ideas

**2. Spatial Brainstorming**
Collect ideas, questions and input concerning a problem or a question from a wide array of people.

- Phase 1: Collect and comment ideas on a map

**3. Idea Challenge**
Run a challenge and find the best ideas to solve a particular problem. 

- Phase 1: Collect and comment ideas
- Phase 2: Vote on ideas

**4. Spatial Idea Challenge**
Run a challenge concerning a certain area or space in your community and find the best ideas to solve a particular problem. 

- Phase 1: Collect and comment ideas on a map
- Phase 2: Vote on ideas

**3. Agenda Setting**
You can involve everyone in planning a meeting. Collect ideas for an upcoming event and let your participants vote on the topics you want to tackle. 

- Phase 1: Collect and comment ideas
- Phase 2: Vote on ideas

**4. Text Review** (formely known as Commenting Text)
Let participants discuss individual paragraphs of a text. This is ideal for discussing position papers or a mission statements with many people.

**5. Poll** (formerly known as Mobile Polling)
Run customizable, multi-step polls on OPIN to get detailed opinions on topics from the public or your members. Via the OPIN polling app for iOS and Android these polls are also accessible on smartphones.






Discussion:
Hey @damusp if you have some nice ideas for illustrations concerning these new blueprints, I would be happy to integrate them. I think we don’t need them until the first week of February.

Resolving patch:
diff --git a/euth/dashboard/blueprints.py b/euth/dashboard/blueprints.py
--- a/euth/dashboard/blueprints.py
+++ b/euth/dashboard/blueprints.py
@@ -16,19 +16,57 @@
 blueprints = [
     ('ideas-collection-1',
      ProjectBlueprint(
-         title=_('Idea collection 1'),
-         description=_('Collect ideas'),
+         title=_('Brainstorming'),
+         description=_('Collect ideas, questions and input concerning '
+                       'a problem or a question from a wide array of people.'),
          content=[
-             ideas_phases.IssuePhase(),
-             ideas_phases.FeedbackPhase(),
+             ideas_phases.CollectPhase(),
          ],
          image='images/placeholder.png',
          settings_model=None,
      )),
+    ('MapIdeas',
+     ProjectBlueprint(
+         title=_('Spatial Brainstorming'),
+         description=_('Collect ideas, questions and input concerning a '
+                       'problem or a question from a wide array of people.'),
+         content=[
+             map_phases.CollectPhase(),
+         ],
+         image='images/placeholder.png',
+         settings_model=('euth_maps', 'AreaSettings'),
+     )),
     ('ideas-collection-2',
      ProjectBlueprint(
-         title=_('Idea collection 2'),
-         description=_('Collect ideas'),
+         title=_('Idea Challenge'),
+         description=_('Run a challenge and find the best ideas to solve '
+                       'a particular problem.'),
+         content=[
+             ideas_phases.CollectPhase(),
+             ideas_phases.RatingPhase(),
+         ],
+         image='images/placeholder.png',
+         settings_model=None,
+     )),
+    ('map-ideas-challenge',
+     ProjectBlueprint(
+         title=_('Spatial Idea Challenge'),
+         description=_('Run a challenge concerning a certain area or space in '
+                       'your community and find the best ideas to solve a '
+                       'particular problem.'),
+         content=[
+             map_phases.CollectPhase(),
+             map_phases.RatingPhase(),
+         ],
+         image='images/placeholder.png',
+         settings_model=('euth_maps', 'AreaSettings'),
+     )),
+    ('agenda-setting',
+     ProjectBlueprint(
+         title=_('Agenda Setting'),
+         description=_('You can involve everyone in planning a meeting. '
+                       'Collect ideas for an upcoming event and let your '
+                       'participants vote on the topics you want to tackle.'),
          content=[
              ideas_phases.CollectPhase(),
              ideas_phases.RatingPhase(),
@@ -38,8 +76,10 @@
      )),
     ('commenting-text',
      ProjectBlueprint(
-         title=_('Commenting text'),
-         description=_('Add comments to an existing text'),
+         title=_('Text Review'),
+         description=_('Let participants discuss individual paragraphs of a '
+                       'text. This is ideal for discussing position papers or '
+                       'a mission statements with many people.'),
          content=[
              documents_phases.CreateDocumentPhase(),
              documents_phases.CommentPhase(),
@@ -49,24 +89,17 @@
      )),
     ('flashpoll',
      ProjectBlueprint(
-         title=_('Mobile Polling'),
-         description=_('Initiate a mobile polling process'),
+         title=_('Poll'),
+         description=_('Run customizable, multi-step polls on OPIN to get '
+                       'detailed opinions on topics from the public or your '
+                       'members. Via the OPIN polling app for iOS and Android '
+                       'these polls are also accessible on smartphones.'),
          content=[
              flashpoll_phases.FlashpollPhase(),
          ],
          image='images/placeholder.png',
          settings_model=('euth_flashpoll', 'Flashpoll'),
      )),
-    ('MapIdeas',
-     ProjectBlueprint(
-         title=_('Spatial Brainstorming'),
-         description=_('Initiate spatial brainstorming process'),
-         content=[
-             map_phases.IssuePhase(),
-         ],
-         image='images/placeholder.png',
-         settings_model=('euth_maps', 'AreaSettings'),
-     )),
 ]
 
 
diff --git a/euth/maps/phases.py b/euth/maps/phases.py
--- a/euth/maps/phases.py
+++ b/euth/maps/phases.py
@@ -5,14 +5,30 @@
 from . import apps, models, views
 
 
+class CollectPhase(phases.PhaseContent):
+    app = apps.MapConfig.label
+    phase = 'collect'
+    weight = 10
+    view = views.MapIdeaListView
+
+    name = _('Collect Phase')
+    description = _('Add and comment new ideas on a map.')
+    module_name = _('ideas collection')
+
+    features = {
+        'crud': (models.MapIdea,),
+        'comment': (models.MapIdea,),
+    }
+
+
 class IssuePhase(phases.PhaseContent):
     app = apps.MapConfig.label
     phase = 'issue'
-    weight = 10
+    weight = 20
     view = views.MapIdeaListView
 
     name = _('Issue Phase')
-    description = _('Add new ideas.')
+    description = _('Add, comment and rate new ideas on a map.')
     module_name = _('ideas collection')
 
     features = {
@@ -21,4 +37,22 @@ class IssuePhase(phases.PhaseContent):
         'rate': (models.MapIdea,),
     }
 
+
+class RatingPhase(phases.PhaseContent):
+    app = apps.MapConfig.label
+    phase = 'rating'
+    weight = 30
+    view = views.MapIdeaListView
+
+    name = _('Rating Phase')
+    description = _('Get quantative feeback by rating the collected '
+                    'ideas on a map.')
+    module_name = _('ideas collection')
+
+    features = {
+        'rate': (models.MapIdea,),
+    }
+
 phases.content.register(IssuePhase())
+phases.content.register(CollectPhase())
+phases.content.register(RatingPhase())


Test patch:
diff --git a/tests/dashboard/test_dashboard_views.py b/tests/dashboard/test_dashboard_views.py
--- a/tests/dashboard/test_dashboard_views.py
+++ b/tests/dashboard/test_dashboard_views.py
@@ -79,7 +79,7 @@ def test_initiator_create_project(client, organisation):
     assert project.is_draft
     assert project.name == 'Project name'
     assert list(project.moderators.all()) == [user]
-    assert len(project.module_set.first().phase_set.all()) == 2
+    assert len(project.module_set.first().phase_set.all()) == 1
 
 
 @pytest.mark.django_db