Пример #1
0
    def mutate(root, args, context, info):
        post_cls = models.SynthesisPost

        synthesis_post_id = utils.get_primary_id(args.get('id'))
        synthesis_post = post_cls.get(synthesis_post_id)

        discussion = models.Discussion.get(context.matchdict['discussion_id'])

        require_instance_permission(CrudPermissions.UPDATE, synthesis_post,
                                    context)

        with post_cls.default_db.no_autoflush as db:
            for langstring_field in ('body', 'subject', 'introduction',
                                     'conclusion'):
                field_entries = args.get(langstring_field + '_entries')
                update_langstring_from_input_entries(
                    synthesis_post.publishes_synthesis, langstring_field,
                    field_entries)

            publication_state = models.PublicationStates.from_string(
                args['publication_state'])
            synthesis_post.publication_state = publication_state
            # add uploaded image as an attachment to the resource
            image = args.get('image')
            if image is not None:
                utils.update_attachment(discussion, models.PostAttachment,
                                        image, synthesis_post.attachments,
                                        models.AttachmentPurpose.IMAGE.value,
                                        db, context)

            db.flush()

        return UpdateSynthesis(synthesis_post=synthesis_post)
Пример #2
0
 def resolve_vote_session(self, args, context, info):
     discussion_id = context.matchdict['discussion_id']
     discussion = models.Discussion.get(discussion_id)
     idea_id = args.get('idea_id')
     idea_id = int(Node.from_global_id(idea_id)[1])
     vote_session = discussion.db.query(models.VoteSession).filter(models.VoteSession.idea_id == idea_id).first()
     if vote_session is not None:
         require_instance_permission(CrudPermissions.READ, vote_session, context)
     return vote_session
Пример #3
0
 def resolve_vote_session(self, args, context, info):
     discussion_id = context.matchdict['discussion_id']
     discussion = models.Discussion.get(discussion_id)
     idea_id = args.get('idea_id')
     idea_id = int(Node.from_global_id(idea_id)[1])
     vote_session = discussion.db.query(models.VoteSession).filter(models.VoteSession.idea_id == idea_id).first()
     if vote_session is not None:
         require_instance_permission(CrudPermissions.READ, vote_session, context)
     return vote_session
Пример #4
0
 def resolve_vote_session(self, args, context, info):
     discussion_phase_id = args.get('discussion_phase_id')
     discussion_phase = models.DiscussionPhase.get(discussion_phase_id)
     require_instance_permission(CrudPermissions.READ, discussion_phase,
                                 context)
     vote_session = discussion_phase.vote_session
     if vote_session is not None:
         require_instance_permission(CrudPermissions.READ, vote_session,
                                     context)
     return vote_session
Пример #5
0
    def mutate(root, args, context, info):
        synthesis_post_id = utils.get_primary_id(args.get('id'))
        synthesis_post = models.SynthesisPost.get(synthesis_post_id)

        require_instance_permission(CrudPermissions.DELETE, synthesis_post,
                                    context)

        synthesis_post.db.delete(synthesis_post)
        synthesis_post.db.flush()

        return DeleteSynthesis(success=True)