Exemplo n.º 1
0
    def mutate(cls, _, info, title, body, category):
        author = User.objects(email=get_jwt_identity()).first()

        new_idea = Idea(author=author,
                        title=title,
                        body=body,
                        category=category)
        new_idea.save()

        author.update(inc__point=50)
        author.update(push__ideas=new_idea)

        idea_activity_logger(user=author, type="new")

        return NewIdeaMutation(result=ResponseMessageField(
            is_success=True, message="Idea upload success"))
Exemplo n.º 2
0
def bookmarklet(request):
    posted = False
    if request.method == 'POST': #If something has been submitted
        if 'submit_idea' in request.POST:
                ideaForm = IdeaForm(request.POST) # A form bound to the POST data
                if ideaForm.is_valid(): # All validation rules pass
                    # Process the data in form.cleaned_data
                    # ...
                    clean = ideaForm.cleaned_data
                    idea = Idea(idea=clean['idea_content'], user =
                            request.user, private=clean['private'])
                    idea.save()
                    helpers.filter_tags(clean['tags'], idea)
                    posted = True
    ideaForm = IdeaForm()
    return render_to_response("main/bookmarklet.html", locals(),
            context_instance=RequestContext(request))
Exemplo n.º 3
0
 def create(self, request, apikey, apisignature):
     """
     Creates an Idea
     """
     if not key_check( apikey, apisignature, '/idea/post/'):
         return {'error':'authentication failed'}
     else:
         tags = False
         try:
             ideaForm = IdeaForm({"idea_content":request.POST['idea_text'],"tags":request.POST['idea_tags']})
         except: 
             ideaForm = IdeaForm({"idea_content":request.POST['idea_text'],})
         else:
             if request.POST['idea_tags'] != '':
                 tags = True #set tags if the user submitted them
         if ideaForm.is_valid():
             private = False
             try:
                 if request.POST['private'] == '1':
                     private = True
             except:
                 pass
             clean = ideaForm.cleaned_data
             idea = Idea(idea=clean['idea_content'], 
                 user = User.objects.get(id = request.POST['user_id']),
                 private = private
                 )
             idea.save()
             # if tags:
             helpers.filter_tags(clean['tags'], idea)
             
             # try:
             #     if request.POST['slate'] != "":
             #         print "slate problem"
             #         slate = Slate.objects.get(id=request.POST['slate'])
             #         slate.ideas.add(idea)
             #         slate.save()
             # except Error as e:
             #     print e
             return idea
         else:
             return {'error':'no idea'}
Exemplo n.º 4
0
def add_idea(request, slate_id=None):
    print slate_id
    ideaForm = IdeaForm(request.POST)
    if ideaForm.is_valid(): # All validation rules pass
        # Process the data in form.cleaned_data
        # ...
        clean = ideaForm.cleaned_data
        idea = Idea(
                idea=clean['idea_content'], 
                user = request.user, 
                private = clean['private'],
                )
        idea.save()
        if slate_id:
            print "add to slate"
            slate = Slate.objects.get(id=slate_id)
            slate.ideas.add(idea)
            slate.save()
        filter_tags(clean['tags'], idea)
        print "returning idea"
        return idea
Exemplo n.º 5
0
    def ideas():
        if not request.data:
            return make_response(jsonify(error="Missing parameters."), 400)

        if request.method == "POST":
            token = str(request.json.get('id', ''))
            user = User.query.filter_by(token=token)
            action = Action.query.filter_by(
                action=str(request.json.get('action', '')))
            idea = Idea.query.filter_by(
                response=str(request.json.get('idea', '')))
            categories = request.json.get('categories', '')

            if str(request.json.get('isGenius', '')) == 'True':
                is_genius = True
            if str(request.json.get('isGenius', '')) == 'False':
                is_genius = False

            if user.count() <= 0:
                return make_response(jsonify(error="User not found."), 404)
            elif idea.count() > 0:
                return make_response(
                    jsonify(
                        error=
                        "{0} idea already exists in the database for {1} {2}.".
                        format(action[0].action, user[0].first_name,
                               user[0].last_name)), 400)
            else:
                idea = Idea(response=str(request.json.get('idea', '')),
                            random_word=str(request.json.get(
                                'random_word', '')),
                            user_id=user[0].id,
                            action_id=action[0].id,
                            is_genius=is_genius,
                            question=str(request.json.get('question', '')))
                idea.save()

                for category in categories:
                    found_cat = Category.query.filter_by(name=category['name'])
                    new_idea_categories = idea_categories.insert().values(
                        idea_id=idea.id, category_id=found_cat[0].id)
                    db.session.execute(new_idea_categories)
                    db.session.commit()

                return make_response(
                    jsonify(
                        success=
                        "{0} idea for {1} {2} has been successfully created!".
                        format(action[0].action, user[0].first_name,
                               user[0].last_name)), 200)

        if request.method == "DELETE":
            token = str(request.json.get('token', ''))
            user = User.query.filter_by(token=token)
            idea_id = str(request.json.get('idea_id', ''))

            if user.count() <= 0:
                return make_response(jsonify(error="User not found."), 404)
            else:
                idea = Idea.query.filter_by(id=idea_id, user_id=user[0].id)

                if idea.count() <= 0:
                    return make_response(jsonify(error="Idea not found."), 404)
                else:
                    idea_name = idea[0].question
                    Idea.delete(idea[0])
                    return make_response('', 204)
Exemplo n.º 6
0
    def setUp(self):
        self.app = create_app(config_name="testing")
        self.client = self.app.test_client
        from app.models import User, Category, Action, Idea

        with self.app.app_context():
            db.create_all()

            user = User(first_name="Ryan",
                        last_name="Hantak",
                        email="*****@*****.**",
                        password="******")
            user.save()

            cat1 = Category(name="Finance")
            cat1.save()
            cat2 = Category(name="Education")
            cat2.save()
            cat3 = Category(name="Tech")
            cat3.save()

            action1 = Action(action="Create an app")
            action1.save()
            action2 = Action(action="Draft an ad campaign")
            action2.save()

            idea1 = Idea(
                user_id=user.id,
                random_word="Skate",
                action_id=action2.id,
                is_genius=True,
                question=
                "Create an ad campaign to sell a book about financial literacy.",
                response=
                "Two friends in a roller derby match are having a conversation about how they're investing their money, one tells the other about what they learned from the book and the second person is so impressed they want to buy it."
            )
            idea1.save()
            idea2 = Idea(
                user_id=user.id,
                random_word="Bird",
                action_id=action1.id,
                is_genius=False,
                question="Create an app people use to trade stocks",
                response=
                "Make it easy to trade stocks mobile, charge a monthly fee so people don't feel like each trade costs them extra money and offer daily articles to encourage them to keep checking."
            )
            idea2.save()

            user.categories.append(cat1)
            user.categories.append(cat2)
            user.categories.append(cat3)

            user.actions.append(action1)
            user.actions.append(action2)

            idea1.categories.append(cat1)
            idea1.categories.append(cat2)

            idea2.categories.append(cat1)
            idea2.categories.append(cat3)

            db.session.add_all([idea1, idea2])
            db.session.commit()

            global user_token
            user_token = User.query.filter_by(
                email='*****@*****.**').first().token