def creativity_session_widget_new_idea(request, test_session, discussion, subidea_1, creativity_session_widget, participant1_user): """An Idea fixture with an bound ideaLink, GeneratedIdeaWidgetLink, and a IdeaProposalPost""" from assembl.models import (Idea, IdeaLink, GeneratedIdeaWidgetLink, IdeaProposalPost, LangString) i = Idea(discussion=discussion, title=LangString.create(u"generated idea", 'en')) test_session.add(i) l_1_wi = IdeaLink(source=subidea_1, target=i) test_session.add(l_1_wi) l_w_wi = GeneratedIdeaWidgetLink(widget=creativity_session_widget, idea=i) ipp = IdeaProposalPost(proposes_idea=i, creator=participant1_user, discussion=discussion, message_id='*****@*****.**', subject=LangString.create(u"propose idea"), body=LangString.EMPTY(test_session)) test_session.add(ipp) def fin(): print "finalizer creativity_session_widget_new_idea" test_session.delete(ipp) test_session.delete(l_w_wi) test_session.delete(l_1_wi) test_session.delete(i) test_session.flush() request.addfinalizer(fin) return i
def creativity_session_widget_new_idea( request, test_session, discussion, subidea_1, creativity_session_widget, participant1_user): from assembl.models import (Idea, IdeaLink, GeneratedIdeaWidgetLink, IdeaProposalPost) i = Idea( discussion=discussion, short_title="generated idea") test_session.add(i) l_1_wi = IdeaLink(source=subidea_1, target=i) test_session.add(l_1_wi) l_w_wi = GeneratedIdeaWidgetLink( widget=creativity_session_widget, idea=i) ipp = IdeaProposalPost( proposes_idea=i, creator=participant1_user, discussion=discussion, message_id='proposal', subject=u"propose idea", body="") test_session.add(ipp) def fin(): print "finalizer creativity_session_widget_new_idea" test_session.delete(ipp) test_session.delete(l_w_wi) test_session.delete(l_1_wi) test_session.delete(i) test_session.flush() request.addfinalizer(fin) return i
def subidea_1_1_1_1_2_1(request, discussion, subidea_1_1_1_1_2, test_session): """An Idea fixture with a idealink to subidea_1_1_1_1_2 fixture - root_idea |-> subidea_1 |-> subidea_1_1 |-> subidea_1_1_1 |-> subidea_1_1_1_1 |-> subidea_1_1_1_1 |-> subidea_1_1_1_2 |-> subidea_1_1_1_1_2_1""" from assembl.models import Idea, IdeaLink i = Idea(short_title=u"Bad for the environment", discussion=discussion) test_session.add(i) l_11112_111121 = IdeaLink(source=subidea_1_1_1_1_2, target=i) test_session.add(l_11112_111121) test_session.flush() def fin(): print "finalizer subidea_1_1_1_1_2_1" test_session.delete(l_11112_111121) test_session.delete(i) test_session.flush() request.addfinalizer(fin) return i
def subidea_1_1_1_1_2_2(request, discussion, subidea_1_1_1_1_2, test_session): """An Idea fixture with a idealink to subidea_1_1_1_1_2 fixture - root_idea |-> subidea_1 |-> subidea_1_1 |-> subidea_1_1_1 |-> subidea_1_1_1_1 |-> subidea_1_1_1_1 |-> subidea_1_1_1_2 |-> subidea_1_1_1_1_2_1 |-> subidea_1_1_1_1_2_2""" from assembl.models import Idea, IdeaLink i = Idea(short_title=u"Federal programs are ineffective", discussion=discussion) test_session.add(i) l_11112_111122 = IdeaLink(source=subidea_1_1_1_1_2, target=i) test_session.add(l_11112_111122) test_session.flush() def fin(): print "finalizer subidea_1_1_1_1_2_2" test_session.delete(l_11112_111122) test_session.delete(i) test_session.flush() request.addfinalizer(fin) return i
def subidea_1( request, discussion, root_idea, test_session, ): """An Idea fixture with a idealink to root idea fixture - root_idea |-> subidea_1""" from assembl.models import Idea, IdeaLink, LangString i = Idea(title=LangString.create(u"Favor economic growth", 'en'), discussion=discussion, description=LangString.create("Some definition of an idea", 'en')) test_session.add(i) l_r_1 = IdeaLink(source=root_idea, target=i) test_session.add(l_r_1) test_session.flush() def fin(): print("finalizer subidea_1") test_session.delete(l_r_1) test_session.delete(i) test_session.flush() request.addfinalizer(fin) return i
def subidea_1_1_1_1_2(request, discussion, subidea_1_1_1_1, test_session): """An Idea fixture with a idealink to subidea_1_1_1_1 fixture - root_idea |-> subidea_1 |-> subidea_1_1 |-> subidea_1_1_1 |-> subidea_1_1_1_1 |-> subidea_1_1_1_1 |-> subidea_1_1_1_2""" from assembl.models import Idea, IdeaLink i = Idea(short_title=u"Environmental program cuts", discussion=discussion) test_session.add(i) l_1111_11112 = IdeaLink(source=subidea_1_1_1_1, target=i) test_session.add(l_1111_11112) test_session.flush() def fin(): print "finalizer subidea_1_1_1_1_2" test_session.delete(l_1111_11112) test_session.delete(i) test_session.flush() request.addfinalizer(fin) return i
def subidea_1_1_1_1_2(request, discussion, subidea_1_1_1_1, test_session): """An Idea fixture with a idealink to subidea_1_1_1_1 fixture - root_idea |-> subidea_1 |-> subidea_1_1 |-> subidea_1_1_1 |-> subidea_1_1_1_1 |-> subidea_1_1_1_1 |-> subidea_1_1_1_2""" from assembl.models import Idea, IdeaLink, LangString i = Idea(title=LangString.create(u"Environmental program cuts", 'en'), discussion=discussion, description=LangString.create("Some definition of an idea", 'en')) test_session.add(i) l_1111_11112 = IdeaLink(source=subidea_1_1_1_1, target=i) test_session.add(l_1111_11112) test_session.flush() def fin(): print "finalizer subidea_1_1_1_1_2" test_session.delete(l_1111_11112) test_session.delete(i) test_session.flush() request.addfinalizer(fin) return i
def subidea_1_1_1(request, discussion, subidea_1_1, test_session): """An Idea fixture with a idealink to subidea_1_1 fixture:: root_idea |-> subidea_1 |-> subidea_1_1 |-> subidea_1_1_1""" from assembl.models import Idea, IdeaLink, LangString title = LangString.create(u"Lower government revenue", 'en') title.add_value(u'Moins de revenus pour le gouvernement', 'fr') i = Idea(title=title, discussion=discussion, description=LangString.create("Some definition of an idea", 'en')) test_session.add(i) l_11_111 = IdeaLink(source=subidea_1_1, target=i) test_session.add(l_11_111) test_session.flush() def fin(): print("finalizer subidea_1_1_1") test_session.delete(l_11_111) test_session.delete(i) test_session.flush() request.addfinalizer(fin) return i
def subidea_1_1_1_1_2_2(request, discussion, subidea_1_1_1_1_2, test_session): """An Idea fixture with a idealink to subidea_1_1_1_1_2 fixture:: root_idea |-> subidea_1 |-> subidea_1_1 |-> subidea_1_1_1 |-> subidea_1_1_1_1 |-> subidea_1_1_1_1 |-> subidea_1_1_1_2 |-> subidea_1_1_1_1_2_1 |-> subidea_1_1_1_1_2_2""" from assembl.models import Idea, IdeaLink, LangString i = Idea(title=LangString.create(u"Federal programs are ineffective", 'en'), discussion=discussion, description=LangString.create("Some definition of an idea", 'en')) test_session.add(i) l_11112_111122 = IdeaLink(source=subidea_1_1_1_1_2, target=i) test_session.add(l_11112_111122) test_session.flush() def fin(): print("finalizer subidea_1_1_1_1_2_2") test_session.delete(l_11112_111122) test_session.delete(i) test_session.flush() request.addfinalizer(fin) return i
def subidea_1_2_1(request, discussion, subidea_1_2, test_session): """An Idea fixture with a idealink to subidea_1 fixture:: root_idea |-> subidea_1 |-> subidea_1_2 |-> subidea_1_2_1""" from assembl.models import Idea, IdeaLink, LangString i = Idea(title=LangString.create(u"Bad for the environment", 'en'), discussion=discussion, description=LangString.create("Some definition of an idea", 'en')) test_session.add(i) l_12_121 = IdeaLink(source=subidea_1_2, target=i) test_session.add(l_12_121) test_session.flush() def fin(): print("finalizer subidea_1_2_1") test_session.delete(l_12_121) test_session.delete(i) test_session.flush() request.addfinalizer(fin) return i
def subidea_1_1_1_1_1(request, discussion, subidea_1_1_1_1, test_session): """An Idea fixture with a idealink to subidea_1_1_1_1 fixture - root_idea |-> subidea_1 |-> subidea_1_1 |-> subidea_1_1_1 |-> subidea_1_1_1_1 |-> subidea_1_1_1_1""" from assembl.models import Idea, IdeaLink i = Idea(short_title=u"Job loss", discussion=discussion, definition="Some definition of an idea") test_session.add(i) l_1111_11111 = IdeaLink(source=subidea_1_1_1_1, target=i) test_session.add(l_1111_11111) test_session.flush() def fin(): print "finalizer subidea_1_1_1_1_1_1" test_session.delete(l_1111_11111) test_session.delete(i) test_session.flush() request.addfinalizer(fin) return i
def subidea_1_1_1_1(request, discussion, subidea_1_1_1, test_session): """An Idea fixture with a idealink to subidea_1_1_1 fixture:: root_idea |-> subidea_1 |-> subidea_1_1 |-> subidea_1_1_1 |->subidea_1_1_1_1""" from assembl.models import Idea, IdeaLink, LangString i = Idea(title=LangString.create(u"Austerity yields contraction", 'en'), discussion=discussion, description=LangString.create("Some definition of an idea", 'en')) test_session.add(i) l_111_1111 = IdeaLink(source=subidea_1_1_1, target=i) test_session.add(l_111_1111) test_session.flush() def fin(): print "finalizer subidea_1_1_1_1" test_session.delete(l_111_1111) test_session.delete(i) test_session.flush() request.addfinalizer(fin) return i
def create_idea(request): discussion_id = int(request.matchdict['discussion_id']) session = Discussion.default_db discussion = session.query(Discussion).get(int(discussion_id)) idea_data = json.loads(request.body) new_idea = Idea( short_title=idea_data['shortTitle'], long_title=idea_data['longTitle'], discussion=discussion, ) session.add(new_idea) if idea_data['parentId']: parent = Idea.get_instance(idea_data['parentId']) else: parent = discussion.root_idea session.add( IdeaLink(source=parent, target=new_idea, order=idea_data.get('order', 0.0))) session.flush() return {'ok': True, '@id': new_idea.uri()}
def subidea_1_1_1(request, discussion, subidea_1_1, test_session): from assembl.models import Idea, IdeaLink i = Idea(short_title="idea 1.1.1", discussion=discussion) test_session.add(i) l_11_111 = IdeaLink(source=subidea_1_1, target=i) test_session.add(l_11_111) test_session.flush() def fin(): print "finalizer subidea_1_1_1" test_session.delete(l_11_111) test_session.delete(i) test_session.flush() request.addfinalizer(fin) return i
def create_idea(request): discussion = request.context session = discussion.db user_id = authenticated_userid(request) permissions = request.permissions idea_data = request.json_body now = datetime.utcnow() pub_state = None pub_flow = discussion.idea_publication_flow if pub_flow: pub_state_name = discussion.preferences['default_idea_pub_state'] pub_state = pub_flow.state_by_label(pub_state_name) kwargs = { "discussion": discussion, "creation_date": now, "pub_state": pub_state, "creator_id": user_id, } new_idea = Idea(**kwargs) session.add(new_idea) context = new_idea.get_instance_context(request=request) for key, attr_name in langstring_fields.items(): if key in idea_data: ls_data = idea_data[key] if ls_data is None: continue subcontext = new_idea.get_collection_context(key, context) current = LangString.create_from_json(ls_data, context=subcontext) setattr(new_idea, attr_name, current._instance) if idea_data['parentId']: parent = Idea.get_instance(idea_data['parentId']) else: parent = discussion.root_idea session.add( IdeaLink(source=parent, target=new_idea, creation_date=now, order=idea_data.get('order', 0.0))) session.flush() return {'ok': True, '@id': new_idea.uri()}
def criterion_3(request, discussion, subidea_1, test_session): """An Idea fixture with IdeaLink to subidea_1""" from assembl.models import Idea, IdeaLink i = Idea(short_title=u"time", discussion=discussion) test_session.add(i) l_1_11 = IdeaLink(source=subidea_1, target=i) test_session.add(l_1_11) test_session.flush() def fin(): print "finalizer criterion_3" test_session.delete(l_1_11) test_session.delete(i) test_session.flush() request.addfinalizer(fin) return i
def criterion_1(request, discussion, subidea_1, test_session): """An Idea fixture with IdeaLink to subidea_1""" from assembl.models import Idea, IdeaLink, LangString i = Idea(title=LangString.create(u"cost", 'en'), discussion=discussion) test_session.add(i) l_1_11 = IdeaLink(source=subidea_1, target=i) test_session.add(l_1_11) test_session.flush() def fin(): print("finalizer criterion_1") test_session.delete(l_1_11) test_session.delete(i) test_session.flush() request.addfinalizer(fin) return i
def subidea_1_2(request, discussion, subidea_1, test_session): """A subidea fixture with idealink to subidea_1 fixture""" from assembl.models import Idea, IdeaLink, LangString i = Idea(title=LangString.create(u"Even lower taxes", 'en'), discussion=discussion, description=LangString.create("The definition of the subidea_1_2", 'en')) test_session.add(i) l_1_12 = IdeaLink(source=subidea_1, target=i) test_session.add(l_1_12) test_session.flush() def fin(): print("finalizer subidea_1_2") test_session.delete(l_1_12) test_session.delete(i) test_session.flush() request.addfinalizer(fin) return i
def idea_with_en_fr(request, discussion, en_locale, fr_locale, test_session): """A top idea with english and french""" from assembl.models import Idea, LangString, LangStringEntry title = LangString.create(u'Title in english', 'en') title.add_entry(LangStringEntry( locale=fr_locale, value=u'Titre en français', locale_confirmed=True)) synthesis_title = LangString.create(u'What you need to know', 'en') synthesis_title.add_entry(LangStringEntry( locale=fr_locale, value=u'A retnir', locale_confirmed=True)) description = LangString.create(u'Idea description', 'en') description.add_entry(LangStringEntry( locale=fr_locale, value=u'Un Description', locale_confirmed=True)) idea = Idea(title=title, discussion=discussion, description=description, synthesis_title=synthesis_title) test_session.add(title) test_session.add(synthesis_title) test_session.add(description) test_session.add(idea) test_session.flush() def fin(): print("finalizer idea_with_en_fr") test_session.delete(idea) test_session.delete(title) test_session.delete(synthesis_title) test_session.delete(description) test_session.flush() request.addfinalizer(fin) return idea
def test_get_ideas(discussion, test_app, test_session, test_webrequest): url = get_url(discussion, 'ideas') res = test_app.get(url) assert res.status_code == 200 ideas = json.loads(res.body) num_ideas = len(ideas) idea = Idea(synthesis_title=LangString.create('This is a long test', 'en'), title=LangString.create('This is a test', 'en'), discussion=discussion) test_session.add(idea) test_session.flush() test_session.commit() url = get_url(discussion, 'ideas') res = test_app.get(url) assert res.status_code == 200 ideas = json.loads(res.body) assert len(ideas) == num_ideas + 1
def subidea_1(request, discussion, root_idea, test_session): """An Idea fixture with a idealink to root idea fixture - root_idea |-> subidea_1""" from assembl.models import Idea, IdeaLink i = Idea(short_title=u"Favor economic growth", discussion=discussion) test_session.add(i) l_r_1 = IdeaLink(source=root_idea, target=i) test_session.add(l_r_1) test_session.flush() def fin(): print "finalizer subidea_1" test_session.delete(l_r_1) test_session.delete(i) test_session.flush() request.addfinalizer(fin) return i
def test_get_ideas(discussion, test_app, test_session, test_webrequest): url = get_url(discussion, 'ideas') res = test_app.get(url) assert res.status_code == 200 ideas = json.loads(res.body) num_ideas = len(ideas) idea = Idea(long_title='This is a long test', short_title='This is a test', discussion=discussion) test_session.add(idea) test_session.flush() test_session.commit() url = get_url(discussion, 'ideas') res = test_app.get(url) assert res.status_code == 200 ideas = json.loads(res.body) assert len(ideas) == num_ideas + 1
def subidea_2(request, discussion, root_idea, test_session): """A subidea fixture with a idealink to root idea fixture:: root_idea |-> subidea_1""" from assembl.models import Idea, IdeaLink, LangString i = Idea(title=LangString.create(u"An idea for another phase", 'en'), discussion=discussion, description=LangString.create("Some definition of an idea", 'en')) test_session.add(i) l_r_2 = IdeaLink(source=root_idea, target=i) test_session.add(l_r_2) test_session.flush() def fin(): print("finalizer subidea_2") test_session.delete(l_r_2) test_session.delete(i) test_session.flush() request.addfinalizer(fin) return i
def create_idea(request): discussion_id = int(request.matchdict['discussion_id']) session = Discussion.default_db discussion = session.query(Discussion).get(int(discussion_id)) user_id = request.authenticated_userid permissions = get_permissions(user_id, discussion.id) idea_data = json.loads(request.body) kwargs = {"discussion": discussion} for key, attr_name in langstring_fields.iteritems(): if key in idea_data: ls_data = idea_data[key] if ls_data is None: continue assert isinstance(ls_data, dict) current = LangString.create_from_json(ls_data, user_id, permissions=permissions) kwargs[attr_name] = current new_idea = Idea(**kwargs) session.add(new_idea) if idea_data['parentId']: parent = Idea.get_instance(idea_data['parentId']) else: parent = discussion.root_idea session.add( IdeaLink(source=parent, target=new_idea, order=idea_data.get('order', 0.0))) session.flush() return {'ok': True, '@id': new_idea.uri()}