Exemplo n.º 1
0
 def post(self):
     user = self.getuser()
     if (user is not None):
         jirgaName = self.request.get('jirgaName')
         privacyOption = self.request.get('privacyOption')
         if privacyOption == "option1":
             i = uuid.uuid1()
             newJirga = Jirga(title=jirgaName,
                              owner=user.username,
                              publicJirga=1,
                              jirgaId=str(i))
             newJirga.put()
             user.jirgas.append(newJirga.key())
             user.put()
             self.redirect("/")
         elif privacyOption == "option2":
             i = uuid.uuid1()
             newJirga = Jirga(title=jirgaName,
                              owner=user.username,
                              publicJirga=0,
                              jirgaId=str(i))
             newJirga.put()
             user.jirgas.append(newJirga.key())
             user.put()
             self.redirect("/")
         else:
             self.response.write("FAIL - privacy not selected")
     else:
         self.response.write("FAIL - not logged in")
Exemplo n.º 2
0
 def get(self, jirgaId):
     loggedIn = False
     user = self.getuser()
     if (user is not None):
         jirga = Jirga.all().filter('jirgaId', jirgaId).get()
         public = jirga.publicJirga
         if (public == 0):
             #private jirga
             template_params = {
                 'public': public,
             }
         else:
             #public
             if (user in jirga.members):
                 #user is a member
                 member = 1
             else:
                 #user is not a member
                 member = 0
             template_params = {'public': public, 'member': member}
         member = User.get(jirga.members)
         obj2 = {'members': member}
         template_params.update(obj2)
         template_params.update({'user': user})
         template_params.update({'jirga': jirga})
         render_template(self, "jirgaSettings.html", template_params)
     else:
         self.response.write("FAIL - you need to be logged in for this")
Exemplo n.º 3
0
    def post(self):
        user = self.getuser()
        if user is not None:
            jirgaId = self.request.get('jirgaId')
            questionId = self.request.get('questionId')
            answerString = self.request.get('answerString')
            jirga = Jirga.all().filter('jirgaId', jirgaId).get()
            question = Question.all().filter('qId', questionId).get()
            relNum = self.request.get('relNum')
            if jirga is not None and question is not None:
                if answerString != "" and answerString is not None:
                    if question.author == user.username:
                        vote = Vote(
                            answer=answerString,
                            number=len(question.votes) + 1 + int(relNum),
                        )
                        vote.put()
                        print("vote: " + answerString)
                        question.votes.append(vote.key())
                        question.put()
                        self.response.write("OK")
                    else:
                        self.response.write("FAIL")
                else:
                    self.response.write("FAIL")
            else:

                self.response.write("FAIL")
        else:

            self.response.write("FAIL - not logged in")
Exemplo n.º 4
0
 def get(self,jirgaId):
     loggedIn= False
     user = self.getuser()
     if(user is not None):
         jirga = Jirga.all().filter('jirgaId', jirgaId).get()
         public = jirga.publicJirga
         if(public == 0):
             #private jirga
             template_params = {
                 'public':public,
             }
         else:
             #public
             if(user in jirga.members):
                 #user is a member
                 member = 1
             else:
                 #user is not a member
                 member = 0
             template_params = {
                 'public':public,
                 'member':member
             }
         member = User.get(jirga.members)
         obj2={'members':member}
         template_params.update(obj2)
         template_params.update({'user':user})
         template_params.update({'jirga':jirga})
         render_template(self,"jirgaSettings.html",template_params)
     else:
         self.response.write("FAIL - you need to be logged in for this")
Exemplo n.º 5
0
    def post(self):
        user = self.getuser()
        if user is not None:
            jirgaId = self.request.get('jirgaId')
            questionId = self.request.get('questionId')
            answerString = self.request.get('answerString')
            jirga = Jirga.all().filter('jirgaId', jirgaId).get()
            question = Question.all().filter('qId',questionId).get()
            relNum = self.request.get('relNum')
            if jirga is not None and question is not None:
                if answerString != "" and answerString is not None:
                    if question.author == user.username:
                        vote = Vote(answer=answerString,number=len(question.votes)+1+int(relNum),)
                        vote.put()
                        print("vote: " + answerString)
                        question.votes.append(vote.key())
                        question.put()
                        self.response.write("OK")
                    else:
                        self.response.write("FAIL")
                else:
                    self.response.write("FAIL")
            else:

                self.response.write("FAIL")
        else:

            self.response.write("FAIL - not logged in")
Exemplo n.º 6
0
 def post(self):
     user = self.getuser()
     if user is not None:
         jirgaId = self.request.get('jirgaId')
         print(self.request)
         questionString = self.request.get('question')
         print(jirgaId)
         jirga = Jirga.all().filter('jirgaId', jirgaId).get()
         votes = []
         for x in range(1,6):
             curr = self.request.get("vote"+str(x))
             if curr is not None and curr != "":
                 vote = Vote(answer=curr,number=x,count=0)
                 print vote.answer
                 vote.put()
                 votes.append(vote.key())
         if jirga is not None:
             if questionString != "" and questionString is not None and votes.count > 1:
                 if jirga.publicJirga == 1 or jirga.owner == user.username:
                     i = uuid.uuid1()
                     question = Question(questionString=questionString, author=user.username,qId=(str(i)),votes=votes)
                     question.put()
                     jirga.questions.append(question.key())
                     jirga.put()
                     time.sleep(.5)
                     self.redirect("/viewQuestion/"+question.qId)
                 else:
                     self.response.write("FAIL - insufficient permissions")
             else:
                 self.response.write("FAIL - invalid question - " + questionString)
         else:
             self.response.write("FAIL - invalid jirga")
     else:
         self.response.write("FAIL - not logged in")
Exemplo n.º 7
0
 def get(self):
     user = self.getuser()
     if(user is not None):
         jirgas = Jirga.all()
         newlist = []
         for jirga in jirgas:
             if jirga is not None and (user.key() in jirga.members or jirga.owner == user.username):
                 newlist.append(jirga)
         template_params = {'jirgas':newlist}
         render_template(self,"askJirga.html",template_params)
     else:
         self.response.write("FAIL - not logged in")
Exemplo n.º 8
0
 def post(self):
     user = self.getuser()
     if (user is not None):
         #check if user has permission to add target user to jirga
         #user can add if owner of private jirga
         #user can add if adding self to public jirga
         targetJirga = self.request.get('jirga')
         targetJ = Jirga.all().filter('jirgaId', targetJirga).get()
         if (targetJ is not None):
             #jirga was found
             targetUser = self.request.get('user')
             targetU = User.all().filter('username', targetUser).get()
             if targetU is not None and targetU.key(
             ) not in targetJ.members:
                 print(targetU.key)
                 #user was found
                 if (targetJ.publicJirga == 0) and (targetJ.owner
                                                    == user.username):
                     #private jirga but user owns it
                     flag = True
                     for key in targetU.jirgas:
                         if key == targetJ.key:
                             print(key() + "    -     " + targetJ.key())
                             flag = False
                     if flag:
                         targetU.jirgas.append(targetJ.key())
                     targetJ.members.append(targetU.key())
                     targetJ.put()
                     targetU.put()
                     #todo get rid of these time.sleeps start having better data routes
                     time.sleep(1)
                     self.redirect("/jirgaSettings/" + targetJ.jirgaId)
                 elif (targetJ.publicJirga == 1) and (targetU.username
                                                      == user.username):
                     #public jirga, user is adding self
                     user.jirgas.append(targetJ.key())
                     targetJ.members.append(targetU.key())
                     user.put()
                     targetJ.put()
                     time.sleep(1)
                     self.redirect("/jirgaSettings/" + targetJ.jirgaId)
                 else:
                     #insufficient permissions
                     self.response.write("FAIL - insufficient permissions")
             else:
                 #user was not found
                 self.redirect("/jirgaSettings/" + targetJ.jirgaId)
         else:
             #jirga was found
             self.response.write("FAIL - invalid jirga")
     else:
         self.response.write("FAIL - not logged in")
Exemplo n.º 9
0
    def get(self, jirgaId, questionId):
        loggedIn = False
        user = self.getuser()
        if (user is not None):
            question = Question.all().filter('qId', questionId).get()
            jirga = Jirga.all().filter('jirgaId', jirgaId).get()
            votes = Vote.get(question.votes)
            template_params = {
                'question': question,
                'votes': votes,
                'user': user,
                'jirga': jirga
            }

            render_template(self, "viewQuestion.html", template_params)
        else:
            self.response.write("FAIL - you need to be logged in for this")
Exemplo n.º 10
0
 def get(self,jirgaId,questionId):
     loggedIn= False
     user = self.getuser()
     if(user is not None):
         question = Question.all().filter('qId', questionId).get()
         jirga = Jirga.all().filter('jirgaId', jirgaId).get()
         votes = Vote.get(question.votes)
         template_params = {
             'question': question,
             'votes': votes,
             'user':user,
             'jirga':jirga
         }
         
         render_template(self,"viewQuestion.html",template_params)
     else:
         self.response.write("FAIL - you need to be logged in for this")
Exemplo n.º 11
0
 def get(self,sessId):
     sess = Session.all().filter('sessId',sessId).get()
     if sess is not None:
         user = User.all().filter('username',sess.user).get()
         print("user" + user.username)
         if(user is not None):
             jirgas = Jirga.get(user.jirgas)
             result = []
             self.response.headers['Content-Type'] = 'application/json'
             for jirga in jirgas:
                 obj2 = {
                     'name': jirga.title,
                     'key': jirga.jirgaId,
                 }
                 result.append(obj2)
                 print(jirga.title)
             self.response.out.write(json.dumps(result))
         else:
             self.response.write("FAIL - not logged in")
Exemplo n.º 12
0
 def get(self, sessId):
     sess = Session.all().filter('sessId', sessId).get()
     if sess is not None:
         user = User.all().filter('username', sess.user).get()
         print("user" + user.username)
         if (user is not None):
             jirgas = Jirga.get(user.jirgas)
             result = []
             self.response.headers['Content-Type'] = 'application/json'
             for jirga in jirgas:
                 obj2 = {
                     'name': jirga.title,
                     'key': jirga.jirgaId,
                 }
                 result.append(obj2)
                 print(jirga.title)
             self.response.out.write(json.dumps(result))
         else:
             self.response.write("FAIL - not logged in")
Exemplo n.º 13
0
 def post(self):
     user = self.getuser()
     if (user is not None):
         jirgaName = self.request.get('jirgaName')
         privacyOption = self.request.get('privacyOption')
         if privacyOption == "option1":
             i = uuid.uuid1()
             newJirga = Jirga(title=jirgaName, owner=user.username, publicJirga=1, jirgaId=str(i))
             newJirga.put()
             user.jirgas.append(newJirga.key())
             user.put()
             self.redirect("/")
         elif privacyOption == "option2":
             i = uuid.uuid1()
             newJirga = Jirga(title=jirgaName, owner=user.username, publicJirga=0, jirgaId=str(i))
             newJirga.put()
             user.jirgas.append(newJirga.key())
             user.put()
             self.redirect("/")
         else:
             self.response.write("FAIL - privacy not selected")
     else:
         self.response.write("FAIL - not logged in")
Exemplo n.º 14
0
    def post(self):
        user = self.getuser()
        if(user is not None):

            questionKey = self.request.get('questionKey')
            jirgaKey = self.request.get('jirgaId')
            question = Question.all().filter('qId',questionKey).get()
            jirga = Jirga.all().filter('jirgaId',jirgaKey).get()
            voteNum = int(self.request.get('voteselect'))
            if question is not None and jirga is not None and user.key not in question.voted and user.key() in jirga.members:
                for v in question.votes:
                    vc = Vote.get(v)
                    print(vc.number)
                    if vc.number == voteNum:
                        vc.users.append(user.key())
                        vc.count += 1
                        vc.put()
                        question.voted.append(user.key())
                        question.put()
                        self.redirect("/viewResults/"+question.qId)
        else:
            self.response.write("FAIL - not logged in")
Exemplo n.º 15
0
    def get(self):
        user = self.getuser()
        if(user is not None):
            jirgas = Jirga.all()
            newlist=[]
            pubJirgas = []
            lanks = []
            questions = []
            for jirga in jirgas:
                if jirga is not None and (user.key() in jirga.members or jirga.owner == user.username):
                    newlist.append(jirga)
                    for qkey in jirga.questions:
                        question = Question.get(qkey)
                        if question is not None and user.key not in question.voted:
                            question.lank=(str(jirga.jirgaId) +"/" +str(question.qId))
                            questions.append(question)
                elif jirga is not None and jirga.publicJirga==1:
                    pubJirgas.append(jirga)

            #check to avoid throwing unbounderror when no jirgas
            #todo - make this give a warning when no jirgas
            if len(newlist) < 1:
                template_params = {
                    'jirgasmem':newlist,
                    'jirgaspub':pubJirgas,
                    'questions':questions
                }
            else:
                template_params = {
                    'questions':questions, #throws exception when goodQuestions not initialized (due to no Jirgas)
                    'jirgasmem':jirgas,
                    'jirgaspub':pubJirgas
                }
            render_template(self,"home.html",template_params)
        else:
            self.redirect("/login")
Exemplo n.º 16
0
    def get(self):
        user = self.getuser()
        if(user is not None):
            jirgas = Jirga.get(user.jirgas)
            result = {}
            self.response.headers['Content-Type'] = 'application/json'
            for jirga in jirgas:
                obj2 = {
                    'name': jirga.title,
                    'key': jirga.jirgaId,
                }
                questions = Question.get(jirga.questions)
                for question in questions:
                    if user.key not in question.voted:
                        obj3 = {
                            'key':question.key(),
                            'title':question.questionString,
                            'author':question.author
                        }
                        votes = Vote.get(question.votes)
                        for vote in votes:
                            if vote is not None:
                                obj4 = {
                                    'vote':vote.number,
                                    'answer':vote.answer,
                                    'count':vote.count
                                }
                                obj3.update(obj4)
                        obj2.update(obj3)
                        result.update(obj2)
                    #else:
                    #user has already voted skip this question

            self.response.out.write(json.dumps(result))
        else:
            self.response.write("FAIL - not logged in")