예제 #1
0
    def get(self):
        rq_name = self.request.args.get('name')
        rq_reg_id = self.request.args.get('registration_id')
        rq_phonetype = self.request.args.get('phonetype')
        if Game.all().count() == 0:
            Game(game_id=1, is_on=False).put()
            game = Game.all().get()
        elif Game.all().filter('is_on', True).count() == 0:
            game = Game.all().order('-game_id').get()
        else:
            game = Game.all().filter('is_on', True).order('-game_id').get()
        
        if rq_name is None or rq_reg_id is None or rq_phonetype is None:
            return MissingParams()
        elif rq_phonetype != 'android' and rq_phonetype != 'windows':
            return render_json_response({'status':{'code':99,'message':'Phonetype must be android or windows.'}})
        else:
            if not Profile.all().filter('name',rq_name).get() is None:
                return render_json_response({'status':{'code':99,'message':'Supplied name is not unique.'}})
            elif not Profile.all().filter('registration_id',rq_reg_id).get() is None:
                return render_json_response({'status':{'code':99,'message':'Supplied registration id is not unique.'}})
            else:
                new_profile = Profile(
                    name = rq_name,
                    registration_id = rq_reg_id,
                    phonetype = rq_phonetype,
                    token = ''.join(random.choice('0123456789abcdef') for x in range(40)),
                    score = 0,
                    game = game
                )
                new_profile.put()
#                if game.is_on:
#                    push(new_profile, 0)
                return render_json_response({'response':{'token':new_profile.token},'status':{'code':0,'message':'Success'}})
예제 #2
0
 def post(self):
     rq_cid = self.request.form.get('cid')
     rq_token = self.request.form.get('token')
     rq_image = self.request.files.get('image')
     
     if rq_token is None or rq_cid is None:
         return MissingParams()
     else:
         profile = Profile.all().filter('token', rq_token).get()
         if profile is None:
             return InvalidToken()
         elif not profile.game.is_on:
             return NoGameOn()
         else:
             point = CheckinPoint.all().filter('cid', int(rq_cid)).get()
             if point is None:
                 return InvalidCid()
             else:
                 ckin = Checkin.all().filter('profile', profile)
                 if ckin.filter('achieved', False).count() == 0:
                     return render_json_response({'status':{'code':13,'message':'You have no unachieved checkins.'}})
                 else:
                     ckin = ckin.filter('point', point).get()
                     if ckin is None:
                         return render_json_response({'status':{'code':11,'message':'You are checked in at another location!'}})
                     else:
                         rq_image.seek(0,2)
                         img_content_length = rq_image.tell()
                         rq_image.seek(0,0)
                         if img_content_length == 0:
                             return render_json_response({'status':{'code':95,'message':'You have not included a picture!'}})
                         else:
                             params = []
                             params.append(
                                 MultipartParam(
                                     "file",
                                     filename=ckin.cid,
                                     value=rq_image.read()
                                 )
                             )
                             payloadgen, headers = multipart_encode(params)
                             payload = str().join(payloadgen)
                             url = blobstore.create_upload_url('/handle_upload')
                             try:
                                 result = urlfetch.fetch(
                                     url=url,
                                     payload=payload,
                                     method=urlfetch.POST,
                                     headers=headers,
                                     deadline=10,
                                     follow_redirects=False
                                 )
                                 return render_json_response({'status':{'code':0,'message':'Success'}})
                             except:
                                 return render_json_response({'status':{'code':81,'message':'There was a server error uploading the image.'}})
예제 #3
0
파일: handlers.py 프로젝트: daffodil/nl
	def post(self, abbrev_requested):
		
		## Check if this is a json_import port
		ptable = self.request.form.get('table')
		#cls = self.request.form.get('class')
		description = self.request.form.get('description')
		
		if ptable and ptable == abbrev_requested:
			#g = json.loads(group_str)
			payload = {'success': True}
			#q = db.GqlQuery("select * from group where group=:1", g['group'])
			#G = g.get()
			A = Abbrev.get_by_key_name(ptable)
			if A == None:
				A = Abbrev(key_name=ptable, table=ptable, description=description)
				A.put()
				payload['action'] = 'new'
				
			else:
				#G.cls = cls
				A.description = description
				payload['action'] = 'updated'
				A.put()
			payload['group'] = A.dic()
		else:
			payload = {'error': 'url/group mismatches'}
		#return render_response('container.html', c=context, g=appGlobal)
		return render_json_response(payload)
예제 #4
0
    def post(self):
        if self.request.form.get('jobid'):
            job = JobModel.get(self.request.form.get('jobid'))

            if job.JobStage >= JobStatus.PrePress and job.JobStage <= JobStatus.Complete:
                if job.JobStage == JobStatus.PrePress:
                    job.OrderStage = OrderStatus.PendingCustomerApproval
                if job.JobStage > JobStatus.PrePress:
                    job.JobStage = job.JobStage - 1
                    job.OrderStage = OrderStatus.JobSubmitted
                else:
                    job.JobStage = 0

                job.put()
                add_history(
                    "Advanced job to " + getStageDescription(job.JobStage),
                    self.auth_current_user, job.key(), job.Client.key())

            else:
                if job.OrderStage > OrderStatus.PendingCustomerApproval and job.OrderStage < OrderStatus.OutForDelivery:
                    job.OrderStage -= 100
                    job.put()
                    add_history(
                        "Advanced job to " +
                        getStageDescription(job.OrderStage),
                        self.auth_current_user, job.key(), job.Client.key())

            if self.request.is_xhr:
                context = {'regressed': True}
                return render_json_response(context)
예제 #5
0
    def get(self, **kwargs):

        if not self.auth_current_user.is_admin and not self.auth_current_user.is_staff:
            return redirect(url_for('auth/login'))
        
        clientid = kwargs['clientid']
        jobs = JobModel.all()
        jobs.filter("Client = ", ClientModel.get(clientid))
        jobs.filter("Invoiced != " , True)
        context = []
        if self.request.is_xhr:
            for job in jobs:
                os = None
                js = None
                if job.OrderStage and lstOrderStages[job.OrderStage]: 
                    os = lstOrderStages[job.OrderStage]
                if job.JobStage:
                    js = lstJobStages[job.JobStage]
                    
                context.append({
                                'name' : job.Nickname, 
                                'jobstage': js, 
                                'orderstage': os, 
                                'id' : str(job.key()), 
                                'created': job.Created.strftime("%b %d %Y"), 
                                'quote' : job.Quote 
                                });
            return render_json_response(context)
        else:
            return render_response('hello.html', **context)
예제 #6
0
    def post(self):
        if self.request.form.get('jobid'):
            job = JobModel.get(self.request.form.get('jobid'))
            job.ChangedBy = self.auth_current_user
            job.Description = self.request.form.get('description')
            job.Nickname = self.request.form.get('nickname')
            add_history("job was updated", self.auth_current_user, job.key(),
                        self.auth_current_user.assigned_to)
            job.put()
        else:
            job = JobModel()
            job.Approved = False
            job.Description = self.request.form.get('description')
            job.Nickname = self.request.form.get('nickname')
            job.ChangedBy = self.auth_current_user
            job.CreatedBy = self.auth_current_user
            job.Client = ClientModel.get(self.auth_current_user.assigned_to)
            job.OrderStage = OrderStatus.PendingQuote
            job.put()
            #.Created.strftime("%a, %b %d %Y - %I:%M%P")
            job.JobNumber = job.Created.strftime("%Y_%b_%d_")
            job.JobNumber += str(job.key().id())
            job.put()

            add_history("a request for a quote was started. ",
                        self.auth_current_user, job.key(),
                        self.auth_current_user.assigned_to)

        context = {'added': True, 'key': str(job.key())}
        if self.request.is_xhr:
            return render_json_response(context)
        else:
            return render_response('hello.html', **context)
예제 #7
0
파일: handlers.py 프로젝트: daffodil/nl
	def post(self, group_requested):
		
		## Check if this is a json_import port
		pgroup = self.request.form.get('group')
		cls = self.request.form.get('class')
		description = self.request.form.get('description')
		if pgroup and pgroup == group_requested:
			#g = json.loads(group_str)
			payload = {'success': True}
			G = Group.get_by_key_name(pgroup)
			if G == None:
				G = Group(key_name=pgroup, name=pgroup, cls=cls, description=description)
				G.put()
				payload['action'] = 'new'
				
			else:
				G.cls = cls
				G.description = description
				payload['action'] = 'updated'
				G.put()
			payload['group'] = G.dic()
		else:
			payload = {'error': 'url/group mismatches'}
		#return render_response('container.html', c=context, g=appGlobal)
		return render_json_response(payload)
예제 #8
0
    def post(self):
        if self.request.form.get('jobid'):
            job = JobModel.get(self.request.form.get('jobid'))
            
            if job.JobStage >= JobStatus.PrePress and job.JobStage <= JobStatus.Complete:
                if job.JobStage == JobStatus.PrePress:
                    job.OrderStage = OrderStatus.PendingCustomerApproval
                if job.JobStage > JobStatus.PrePress:
                    job.JobStage = job.JobStage - 1
                    job.OrderStage = OrderStatus.JobSubmitted
                else:
                    job.JobStage = 0
                
                job.put()
                add_history("Advanced job to " + getStageDescription(job.JobStage), self.auth_current_user, job.key(), job.Client.key())
                
            else: 
                if  job.OrderStage > OrderStatus.PendingCustomerApproval and job.OrderStage < OrderStatus.OutForDelivery:
                    job.OrderStage -= 100
                    job.put()
                    add_history("Advanced job to " + getStageDescription(job.OrderStage), self.auth_current_user, job.key(), job.Client.key())

            if self.request.is_xhr:
                    context = {'regressed': True}
                    return render_json_response(context)                               
예제 #9
0
 def post(self):
     if self.request.form.get('jobid'):
         job = JobModel.get(self.request.form.get('jobid'))
         job.ChangedBy = self.auth_current_user
         job.Description = self.request.form.get('description')
         job.Nickname = self.request.form.get('nickname')
         add_history("job was updated", self.auth_current_user, job.key(), self.auth_current_user.assigned_to)
         job.put()  
     else: 
         job = JobModel()
         job.Approved = False
         job.Description = self.request.form.get('description')
         job.Nickname = self.request.form.get('nickname')
         job.ChangedBy = self.auth_current_user
         job.CreatedBy = self.auth_current_user
         job.Client = ClientModel.get(self.auth_current_user.assigned_to)
         job.OrderStage = OrderStatus.PendingQuote
         job.put()
         #.Created.strftime("%a, %b %d %Y - %I:%M%P")
         job.JobNumber = job.Created.strftime("%Y_%b_%d_")
         job.JobNumber += str(job.key().id())
         job.put()
         
         add_history("a request for a quote was started. ", self.auth_current_user, job.key(), self.auth_current_user.assigned_to)
     
     context = {'added': True, 'key' : str(job.key()) }
     if self.request.is_xhr:
         return render_json_response(context)
     else:
         return render_response('hello.html', **context)        
예제 #10
0
 def get(self):
     rq_reg_id = self.request.args.get('registration_id')
     rq_token = self.request.args.get('token')
     
     if rq_reg_id is None or rq_token is None:
         return MissingParams()
     elif not Profile.all().filter('registration_id',rq_reg_id).get() is None:
         return render_json_response({'status':{'code':90,'message':'Supplied registration id is not unique.'}})
     else:
         profile = Profile.all().filter('token',rq_token).get()
         if profile is None:
             return InvalidToken()
         else:
             profile.registration_id = rq_reg_id
             profile.put()
             return render_json_response({'response':{'token':profile.token},'status':{'code':0,'message':'success'}})
예제 #11
0
    def get(self, line=None, direction=None, **kwargs):
        bus_stops = BusStop.all()
        bus_stops.filter('lines =', line)
        bus_stops.filter('directions =', direction)

        ds = BusDirection.all()
        ds.filter('bus_line =', line)
        ds.filter('direction =', direction)

        # TODO: improve this feature
        directions_html = ''
        for d in ds:
            directions_html += '<strong>%s:</strong><ul><li>Desde: <em>%s</em></li><li>Hasta: <em>%s</em></li></ul>' % (d.direction,
                                                                                                  d.from_direction,
                                                                                                  d.to_direction)
        points = []
        for bs in bus_stops:
            points.append({
                'name': bs.name,
                'key': str(bs.key()),
                'address': bs.address,
                'icon': '/static/img/gmarkers/red_bus.png',
                'shadow': '/static/img/gmarkers/shadow_bus.png',
                'latitude': bs.point.lat,
                'longitude': bs.point.lon,
                'directions': bs.directions,
                })
        data = {'points': points,
                'directions_html': directions_html}
        return render_json_response(data)
예제 #12
0
파일: handlers.py 프로젝트: daffodil/nl
	def get(self):
		payload = {'success': True}
		
		#class_filter =  self.request.args.get('class')
		
		payload['abbrevs'] = queries.abbrevs()
		return render_json_response(payload)
예제 #13
0
파일: handlers.py 프로젝트: daffodil/nl
	def get(self):
		payload = {'success': True}
		
		
		
		payload['groups_meta'] = queries.groups_meta()
		return render_json_response(payload)
예제 #14
0
    def post(self):
        if self.request.form.get('key') is not None:
#            logging.log(logging.INFO, "deleting client with key " + self.request.form.get('key'))
            c = ClientModel.get(self.request.form.get('key'))
            name = c.Name
            if c:
                c.delete()
        add_history("a client was deleted! (%s)" % name, self.auth_current_user, None, None)
        return render_json_response({})
예제 #15
0
 def post(self):
     if self.request.form.get('jobid'):
         c = get_communication(self.request.form.get('jobid'), self.request.form.get('lastid'))
         context = []
         for item in c:
             context.append({'from' : item.CreatedBy.username, 'when': item.Created.strftime("%a, %b %d %Y - %I:%M%P"), 'text': item.Text, 'id': item.NumericId})
     else: context = { 'error' : True, 'reason': 'no job id specified' }
     if self.request.is_xhr:
         return render_json_response(context)       
예제 #16
0
 def post(self):
     if self.request.form.get('jobid'):                
         job = JobModel.get(self.request.form.get('jobid'))
         job.JobStage = JobStatus.PrePress
         job.put()
         add_history("Layout rejected by client.  ", self.auth_current_user, job.key(), job.Client.key())
         if self.request.is_xhr:
             context = {'regressed': True}
             return render_json_response(context)
예제 #17
0
파일: handlers.py 프로젝트: daffodil/nl
	def get(self, group_requested):
		
		payload = {'success': True}
		
		query = db.GqlQuery("select * from Note where group=:1 order by sort_order ASC", group_requested)
		results = query.fetch(1000)
		payload['notes'] = [ r.dic() for r in results ]
	
		return render_json_response(payload)
예제 #18
0
 def post(self, subtitle_id):
     subtitles = Subtitles.get_by_id(subtitle_id);
     if subtitles:
         changeset = map(format_line, simplejson.loads(self.request.form.get('changeset')))
         changedLines = subtitles.set_changeset(changeset)
         logging.debug(changedLines)
         if changedLines:
             changeset = SubtitlesChangeSet(
                 text=[simplejson.dumps(x) for x in changedLines],
                 subtitles=subtitles,
                 user=self.auth_current_user.user
             )
             changeset.put()
             subtitles.put()
             return render_json_response({'status': 'ok'})
         else: 
             return render_json_response({'status': 'error', 'message': _('Error happened during the saving process')})
     else:
         return render_json_response({'status': 'error', 'message': _('Not valid Subtitles ID')})
예제 #19
0
 def post(self):
     if self.request.form.get('jobid'):                
         job = JobModel.get(self.request.form.get('jobid'))
         job.OrderStage = OrderStatus.JobSubmitted
         job.JobStage = JobStatus.PrePress
         job.put()
         add_history("Quote accepted by client. ", self.auth_current_user, job.key(), job.Client.key())
         if self.request.is_xhr:
             context = {'advanced': True}
             return render_json_response(context)
예제 #20
0
 def post(self):
     if self.request.form.get('jobid'):
         job = JobModel.get(self.request.form.get('jobid'))
         job.OrderStage = OrderStatus.PendingCustomerApproval
         job.Quote = self.request.form.get('quote')
         job.put()
         add_history("Quote submitted to client. ", self.auth_current_user, job.key(), job.Client.key())
         if self.request.is_xhr:
             context = {'advanced': True}
             return render_json_response(context)
예제 #21
0
 def post(self):
     if self.request.form.get('jobid'):
         job = JobModel.get(self.request.form.get('jobid'))
         job.JobStage = JobStatus.PrePress
         job.put()
         add_history("Layout rejected by client.  ", self.auth_current_user,
                     job.key(), job.Client.key())
         if self.request.is_xhr:
             context = {'regressed': True}
             return render_json_response(context)
예제 #22
0
    def get(self, **kwargs):
        bus_stop = db.get(self.request.values.get('busstop_key'))
        directions = self.request.values.get('directions', '')

        if len(directions.split(',')) == 2:
            directions = None
        else:
            directions = directions
        bus_times = bus_stop.get_next_bus_times(settings.NEXT_BUS_TIME_MINUTES,
                                                direction=directions)

        bus_direction = BusDirection.all()
        bus_direction.filter('direction =', directions)
        # README
        # BadValueError: Filtering on lists is not supported
        # We can't use "bus_direction.filter('bus_line =', bus_stop.lines)"
        # So, in the while we will use "bus_stop.lines[0]" because a BusStop only
        # has one line for the moment
        bus_direction.filter('bus_line =', bus_stop.lines[0])
        bus_direction = bus_direction.fetch(1)
        bus_direction = bus_direction[0]


        info_content = '<b>%s</b><br /> %s<br /><em style="font-size: 10px">%s / Hacia: %s (%s)</em>' % \
            (bus_stop.name, bus_stop.address, utils.get_weekday_display(), bus_direction.to_direction, bus_direction.direction)
        for bus_time in bus_times:
            left_time = relativedelta(bus_time.time_1970(), utils.now_time()).minutes
            bus_already_gone = False
            if left_time < 0:
                if bus_time.time_1970().hour == 0:
                    # Time over 00hs
                    next_day = bus_time.time_1970() + datetime.timedelta(days=1)
                    left_time = relativedelta(next_day, utils.now_time()).minutes
                else:
                    # This bus has already gone by
                    bus_already_gone = True
            time = bus_time.time.strftime('%H:%M')

            time_content = '<br /><b>%s min:</b><span> %s hs</span>' % (left_time, time)

            if bus_already_gone:
                info_content += '<span style="color: red">' + time_content + '</span>'
            else:
                info_content += time_content

            if bus_time.comments:
                info_content += '<em> ('
                for comment in bus_time.comments:
                    info_content += '%s, ' % comment
                info_content = info_content[:-2]
                info_content += ')</em>'

        return render_json_response({
                'info_content': info_content
                })
예제 #23
0
파일: handlers.py 프로젝트: daffodil/nl
	def get(self):
		payload = {'success': True}
		
		class_filter =  self.request.args.get('class')
		if class_filter == 'All':
			class_filter = None
		search_text =  self.request.args.get('search_text')
		search_col =  self.request.args.get('search_col')
		
		payload['groups'] = queries.groups(class_filter=class_filter, search_text=search_text, search_col=search_col)
		return render_json_response(payload)
예제 #24
0
 def post(self):
     if self.request.form.get('jobid'):
         job = JobModel.get(self.request.form.get('jobid'))
         job.OrderStage = OrderStatus.PendingCustomerApproval
         job.Quote = self.request.form.get('quote')
         job.put()
         add_history("Quote submitted to client. ", self.auth_current_user,
                     job.key(), job.Client.key())
         if self.request.is_xhr:
             context = {'advanced': True}
             return render_json_response(context)
예제 #25
0
 def post(self):
     if self.request.form.get('jobid'):
         job = JobModel.get(self.request.form.get('jobid'))
         job.OrderStage = OrderStatus.JobSubmitted
         job.JobStage = JobStatus.PrePress
         job.put()
         add_history("Quote accepted by client. ", self.auth_current_user,
                     job.key(), job.Client.key())
         if self.request.is_xhr:
             context = {'advanced': True}
             return render_json_response(context)
예제 #26
0
    def get(self):
#        rq_cid = self.request.args.get('cid')
        rq_token = self.request.args.get('token')
        
        if rq_token is None:
            return MissingParams()
        else:
            profile = Profile.all().filter('token', rq_token).get()
            if profile is None:
                return InvalidToken()
            else:
                if not profile.game.is_on:
                    return NoGameOn()
                else:
                    ckin = Checkin.all().filter('profile', profile).filter('achieved', False).get()
                    if ckin is None:
                        return render_json_response({'status':{'code':11,'message':'Not locked in to any location.'}})
                    else:
                        ckin.delete()
                        return render_json_response({'response':{'message':'You are no longer locked to a checkin.'},'status':{'code':0,'message':'Success'}})
예제 #27
0
파일: handlers.py 프로젝트: daffodil/nl
	def get(self, group_requested, note_requested):
		
		payload = {'success': True}
		query = db.GqlQuery("select * from Note where group=:1 and key_name=:2", 
							group_requested, note_requested)
		F = query.get()
		if F:
			payload['heading'] = [F.dic()]
		else:
			payload['error'] = "Field '%s/%s/' Not Found" % (group_requested, heading_requested)
	
		return render_json_response(payload)
예제 #28
0
파일: handlers.py 프로젝트: daffodil/nl
	def get(self, group_requested):
		
		payload = {'success': True}
		query = db.GqlQuery("select * from Heading where group=:1 order by sort_order ASC", group_requested)
		results = query.fetch(1000)
		payload['headings'] = [ r.dic() for r in results ]
		#if F:
			#payload['field'] = [F.dic()]
		#else:
			#payload['error'] = "Field '%s/%s/' Not Found" % (group_requested, heading_requested)
	
		return render_json_response(payload)
예제 #29
0
 def post(self):
     if self.request.form.get('jobid'):
         add_communication(self.request.form.get('text'), self.auth_current_user, self.request.form.get('jobid'))
         context = {'added': True}
         connections = getConnections(JobModel.get(self.request.form.get('jobid')).key().id())
         for connection in connections:
             logging.log(logging.INFO, 'sending message to ' + connection)
             channel.send_message(connection, "{'action': 'communication'}")
     else: 
         context = {'added': False, 'reason' : "no job specified" }
     if self.request.is_xhr:
         return render_json_response(context)
예제 #30
0
 def get(self):
     rq_token = self.request.args.get('token')
     if rq_token is None:
         return MissingParams()
     else:
         prof = Profile.all().filter('token', rq_token).get()
         if prof is None:
             return InvalidToken()
         elif not prof.game.is_on:
             return NoGameOn()
         else:
             num_points = CheckinPoint.all().filter('game', prof.game).count()
             return render_json_response({'response':{'n':str(num_points)},'status':{'code':0,'message':'Success'}})
예제 #31
0
파일: handlers.py 프로젝트: daffodil/nl
	def get(self, abbrev_requested):
		payload = {'success': True}
		
		A = Abbrev.get_by_key_name(abbrev_requested)
		if A:
			#payload = {'abbrev': {}}
			payload['table'] = A.dic()
			query = db.GqlQuery("select * from AbbrevCode where table=:1", A.table)
			results = query.fetch(2000)
			payload['abbrev_codes'] = [r.dic() for r in results]
		else:
			payload['error'] = "Abbrev table '%s' not found" % abbrev_requested
			
		return render_json_response(payload)	
예제 #32
0
    def get(self, **kwargs):

        if not self.auth_current_user.is_admin and not self.auth_current_user.is_staff:
            return redirect(url_for('auth/login'))
        
        logging.log(logging.INFO, "searching for " + kwargs['term'])
        clients = db.GqlQuery("SELECT FROM ClientModel WHERE Name >= :1 AND Name < :2", kwargs['term'], u"%s" % kwargs['term'] + u"\ufffd")
        context = []
        if self.request.is_xhr:
            for client in clients:
                context.append({'value' : client.Name, 'id' : str(client.key()) });
            return render_json_response(context)
        else:
            return render_response('hello.html', **context)            
예제 #33
0
 def get(self):
     rq_cid = self.request.args.get('cid')
     rq_token = self.request.args.get('token')
     rq_lat = self.request.args.get('latitude')
     rq_lon = self.request.args.get('longitude')
     
     if rq_cid is None or rq_token is None or rq_lat is None or rq_lon is None:
         return MissingParams()
     else:
         profile = Profile.all().filter('token', rq_token).get()
         if profile is None:
             return InvalidToken()
         else:
             if not profile.game.is_on:
                 return NoGameOn()
             else:
                 point = CheckinPoint.all().filter('game', profile.game).filter('cid', int(rq_cid)).get()
                 if point is None:
                     return InvalidCid()
                 else:
                     if not Checkin.all().filter('profile', profile).filter('point', point).get() is None:
                         return render_json_response({'status':{'code':13,'message':'Already checked in here.'}})
                     elif not Checkin.all().filter('profile', profile).filter('achieved', False).get() is None:
                         return render_json_response({'status':{'code':12,'message':'Currently locked in at another location.'}})
                     else:
                         dist = math.sqrt((float(rq_lat) - point.latitude)*(float(rq_lat)- point.latitude) + (float(rq_lon) - point.longitude)*(float(rq_lon) - point.longitude))
                         if dist > point.hint_dist:
                             return render_json_response({'status':{'code':10,'message':'Too far from checkin point.'}})
                         else:
                             if Checkin.all().count() == 0:
                                 cid = 1
                             else:
                                 cid = Checkin.all().order('-cid').get().cid + 1
                             checkin = Checkin(profile = profile, point = point, achieved = False, cid = cid)
                             checkin.put()
                             return render_json_response({'response':{'hint':point.hint}, 'status':{'code':0,'message':'Success'}})
예제 #34
0
파일: handlers.py 프로젝트: daffodil/nl
	def get(self):
		
		payload = {'success': True}
		query = AgsFile.all()
		F = query.get()
		
		#payload['ags_file'] = F.dic()
		
		from apps.ags import Ags4Parser
		P = Ags4Parser(F.contents)
		payload['ags_data'] = P.meta()
		#payload['ags_data'] = groups
		#payload['data'] = data
		
		return render_json_response(payload)
예제 #35
0
 def post(self):
     if self.request.form.get('jobid'):
         add_communication(self.request.form.get('text'),
                           self.auth_current_user,
                           self.request.form.get('jobid'))
         context = {'added': True}
         connections = getConnections(
             JobModel.get(self.request.form.get('jobid')).key().id())
         for connection in connections:
             logging.log(logging.INFO, 'sending message to ' + connection)
             channel.send_message(connection, "{'action': 'communication'}")
     else:
         context = {'added': False, 'reason': "no job specified"}
     if self.request.is_xhr:
         return render_json_response(context)
예제 #36
0
파일: handlers.py 프로젝트: daffodil/nl
	def post(self, abbrev_requested):
		
		## Check if this is a json_import port
		ptable = self.request.form.get('table')
		pcode = self.request.form.get('code')
		
		description = self.request.form.get('description')
		date_added_str = self.request.form.get('date_added')
		added_by = self.request.form.get('added_by')
		
		#if date_added != "":
		date_parts = date_added_str.split("-")
		date_added = datetime.date(int(date_parts[0]), int(date_parts[1]), int(date_parts[2]))
		
		if ptable and ptable == abbrev_requested:
			#g = json.loads(group_str)
			payload = {'success': True}
			#q = db.GqlQuery("select * from group where group=:1", g['group'])
			#G = g.get()
			A = Abbrev.get_by_key_name(ptable)
			if A == None:
				#A = Abbrev(key_name=ptable, table=ptable, description=description)
				#A.put()
				payload['error'] = "AbbrevTable '%s' not found" % ptable
				
			else:
				query = db.GqlQuery("select * from AbbrevCode where table=:1 and code=:2", ptable, pcode)
				AC = query.get()
				if AC == None:
					AC = AbbrevCode(key_name="%s/%s" % (ptable, pcode), 
									table=ptable, code=pcode, 
									description=description,
									date_added=date_added, added_by=added_by
									)
					payload['action'] = 'added'
				else:
					#if AC.description != description:
					AC.description = description
					#AC.date_added = date_added
					modi = True
					#if 
					payload['action'] = 'updated'
				AC.put()
			payload['abbrev_code'] = AC.dic()
		else:
			payload = {'error': 'url/group mismatches'}
		#return render_response('container.html', c=context, g=appGlobal)
		return render_json_response(payload)
예제 #37
0
 def post(self, **kwargs):
     if not self.auth_current_user.is_admin and not self.auth_current_user.is_staff:
         return redirect(url_for('auth/login'))       
     if self.request.form.get('invoiceid'):
         invoice = InvoiceModel.get(self.request.form.get('invoiceid'))
         invoice.Paid = True
         invoice.put()       
         jobs = JobModel.all()
         jobs.filter("Invoice = ", invoice)
         for job in jobs: 
             job.OrderStage = OrderStatus.Paid
             job.put()
         
         context = {'invoiced': True }
         if self.request.is_xhr:
             return render_json_response(context)
예제 #38
0
    def get(self):
        if not self.auth_current_user.is_admin and not self.auth_current_user.is_staff:
            return redirect(url_for('auth/login'))

        clients = ClientModel.all().order("Name")
        context = []
        if self.request.is_xhr:
            for client in clients:
                users_query = db.Query(User).filter("assigned_to", str(client.key()))
                logging.log(logging.INFO, "users: " + str(users_query.count()))
                u = []
                if users_query.count() > 0: 
                    for user in users_query:
                        u.append({'Username' : user.username, 'Email' : user.email, 'Key': str(user.key())})
                context.append({'Name' : client.Name, 'Key' : str(client.key()), 'Address': client.Address, 'Email' : client.Email, 'PhoneNumber': client.PhoneNumber, 'Users' : u});
            return render_json_response(context)
        else:
            return render_response('hello.html', **context)
예제 #39
0
    def post(self, **kwargs):
        product_quantity = self.request.form.get('product_quantity', type=int)
        product_id = self.request.form.get('product_id', type=int)

        # check if product exists
        product = Product.get_by_id(product_id)
        product_name = product.name
        product_price = product.price
        product_unit = product.unit

        context = {}

        if product is not None:
            cart = self._add_to_cart(product_id, product_quantity,
                                     product_name, product_price, product_unit)
            context = {'success': True, 'products': cart}
        else:
            context = {'success': False, 'products': []}
        return render_json_response(context)
예제 #40
0
 def post(self):
     if self.request.form.get('jobid'):
         c = get_communication(self.request.form.get('jobid'),
                               self.request.form.get('lastid'))
         context = []
         for item in c:
             context.append({
                 'from':
                 item.CreatedBy.username,
                 'when':
                 item.Created.strftime("%a, %b %d %Y - %I:%M%P"),
                 'text':
                 item.Text,
                 'id':
                 item.NumericId
             })
     else:
         context = {'error': True, 'reason': 'no job id specified'}
     if self.request.is_xhr:
         return render_json_response(context)
예제 #41
0
    def post(self, **kwargs):

        if not self.auth_current_user.is_admin and not self.auth_current_user.is_staff:
            return redirect(url_for('auth/login'))

        #get the client or create new if new
        if self.request.form.get('key') is not None:
            c = ClientModel.get(self.request.form.get('key'))
        else :
            c = ClientModel()
        #set the client properties and save
#        c.Changed = datetime.now()
        c.Name = self.request.form.get('name')  
        c.Address = self.request.form.get('address')  
        if self.request.form.get('phone') is not None:
            c.PhoneNumber = self.request.form.get('phone')
        c.Email = self.request.form.get('email')
        c.CreatedBy = self.auth_current_user
        c.put()  
        add_history("a client was updated", self.auth_current_user, None, c.key())
        self.set_message('success', 'Successfully saved your changes. ', flash=True, life=5)
        
        #create the user 
        username = self.request.form.get('username')
        password = self.request.form.get('password')
        context = {}
        if username and password:
            auth_id = 'own|%s' % username
            user = self.auth_create_user(username, auth_id, password=password, assigned_to=str(c.key()), email=self.request.form.get('email'))
            #create the result
            if user:
                context = {'clientadded': True, 'key': str(c.key()), 'user' : str(user.key()) }
                add_history("user was created", self.auth_current_user, None, c.key(), user.key())
                self.set_message('success', 'The user was created. ', flash=True, life=5)

        else :
            context = {'clientadded': True, 'key' : str(c.key()) }
        if self.request.is_xhr:
            return render_json_response(context)
        else:
            return redirect(self.request.form.get('redirect'))