Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
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
Ejemplo n.º 6
0
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
Ejemplo n.º 7
0
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
Ejemplo n.º 8
0
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
Ejemplo n.º 9
0
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
Ejemplo n.º 10
0
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
Ejemplo n.º 11
0
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
Ejemplo n.º 12
0
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
Ejemplo n.º 13
0
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()}
Ejemplo n.º 14
0
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
Ejemplo n.º 15
0
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()}
Ejemplo n.º 16
0
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
Ejemplo n.º 17
0
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
Ejemplo n.º 18
0
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
Ejemplo n.º 19
0
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
Ejemplo n.º 20
0
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
Ejemplo n.º 21
0
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
Ejemplo n.º 22
0
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
Ejemplo n.º 23
0
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
Ejemplo n.º 24
0
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()}