Ejemplo n.º 1
0
    def _getProfileFromUser(self):
        """Return user Profile from datastore, creating new one if non-existent."""
        user = endpoints.get_current_user()
        if not user:
            raise endpoints.UnauthorizedException('Authorization required')

        # TODO 1
        # step 1. copy utils.py from additions folder to this folder
        #         and import getUserId from it
        # step 2. get user id by calling getUserId(user)
        # step 3. create a new key of kind Profile from the id

        user_id = getUserId(user)
        p_key = ndb.key(Profile, user_id)

        # TODO 3
        # get the entity from datastore by using get() on the key
        profile = p_key.get()
        if not profile:
            profile = Profile(
                key=p_key,  # TODO 1 step 4. replace with the key from step 3
                displayName=user.nickname(),
                mainEmail=user.email(),
                teeShirtSize=str(TeeShirtSize.NOT_SPECIFIED),
            )
            # TODO 2
            # save the profile to datastore
            profile.put()

        return profile  # return Profile
Ejemplo n.º 2
0
	def put(self, id=None):
		if id:
			try:
				slip = ndb.key(urlsafe=id).get()
			except Exception:
				slip = None
			if Slip is none:
				self.response.set_status(400)
			else:
				put_data = json.loads(self.request.body)
				if 'number' in put_data:
					new_slip_numcheck = put_data['number']
					numcheck = Slip.query(Slip.number == new_slip_numcheck).get()
					if numcheck is None:
						slip_data.number = put_data['number']
						slip_data.put()
				if 'current_boat' in put_data:
					if put_data['current_boat'] is None and slip_data.current_boat is not None:
						try:
							boat = ndb.Key(urlsafe=(slip_data.current_boat)).get()
						except Exception:
							boat = None
						if boat is None:
							self.response.set_status(400)
						else:
							boat.at_sea = True
							boat.put()
							slip_data.current_boat = put_data['current_boat']
							slip_data.arrival_date = None
							slip_data.put()
					if put_data['current_boat'] is not None and slip_data.current_boat is None:
						try:
							boat = ndb.Key(urlsafe=(put_data['current_boat'])).get()
						except Exception:
							boat = None
						if boat is None:
							self.response.set_status(400)
						else:
							boat.at_sea = False
							boat.put()
							slip_data.current_boat = put_data['current_boat']
							slip_data.arrival_date = datetime.strftime(datetime.utcnow().date(), "%d/%m/%y")
							slip_data.put()
					if put_data['current_boat'] is not None and slip_data.current_boat is not None:
						self.response.set_status(403)
						# already boat inside, cant put another. 
				slip_dict = slip_data.to_dict()
				slip_dict['self'] = '/slip/' + slip_data.id
				self.response.write(json.dumps(slip_dict))
				
		else:
			self.response.set_status(400)
Ejemplo n.º 3
0
    def getConferenceSessions(self, request):
        """Retrieve sessions in a conference"""
        # get key
        c_key = ndb.Key(urlsafe=request.websafeConferenceKey).get()

        # check that it's legit
        if not c_key:
            raise endpoints.NotFoundException("Hold up! No conference with key %s" % request.websafeConferenceKey)

        # get specific conference's sessions
        sessionsList = session.Query(ancestor=ndb.key(Conference, c_key.key.id()))

        # show sessions
        return SessionForms(items=[self._copySessionToForm(session) for session in sessions])
Ejemplo n.º 4
0
def edit_job(job_id):
    job = JobModel.get_by_id(int(job_id))
    if not job:
        flash(_('no such job'), 'error')
        return redirect(url_for('exhibitor.jobs'))
    form = JobForm(request.form, obj=job)
    if request.method == 'POST' and form.validate():
        try:
            job.title = form.title.data
            job.type = form.type.data
            job.enterprise = ndb.key(form.enterprise.data)
            job.content = form.content.data
            job.put()
            flash('job modified successfully!', 'success')
        except CapabilityDisabledError:
            flash('fail to modify job', 'error')
    return render_template('exhibitors/edit_job.html', form=form, job=job)
Ejemplo n.º 5
0
def edit_job(job_id):
    job = JobModel.get_by_id(int(job_id))
    if not job:
        flash(_('no such job'), 'error')
        return redirect(url_for('exhibitor.jobs'))
    form = JobForm(request.form, obj=job)
    if request.method == 'POST' and form.validate():
        try:
            job.title = form.title.data
            job.type = form.type.data
            job.enterprise = ndb.key(form.enterprise.data)
            job.content = form.content.data
            job.put()
            flash('job modified successfully!', 'success')
        except CapabilityDisabledError:
            flash('fail to modify job', 'error')
    return render_template('exhibitors/edit_job.html', form=form, job=job)
Ejemplo n.º 6
0
def book_verse_key(verse_key=DEFAULT_BOOK_VERSE_KEY):
  return ndb.key('Verse', verse_key)
Ejemplo n.º 7
0
def pensieve_key(name=None):
	"""Constructs a Datastore key for a Guestbook entity with guestbook_name."""
	if name is not None:
		return ndb.key('Pensieve', name);
	return ndb.Key('Pensieve', DEFAULT_NAME)
Ejemplo n.º 8
0
"""
Databstore models.
"""

from google.appengine.ext import ndb


# Parent key for all models except FilmTimes
parent_key = ndb.key('parent')

class Cinemas(ndb.Model):
    """
    Cineworld cinemas.
    """
    
    api_id = ndb.IntegerProperty()
    name = ndb.StringProperty()
    address = ndb.StringProperty()
    url = ndb.StringProperty()
    
    @classmethod
    def get_by_api_id(self, id):
        """Returns a single result or None."""
        return Films.query(api_id=id).get()
    
    @classmethod
    def get_film_times(self):
        """Returns a list of FilmTime objects."""
        return FilmTimes.query(ancestor=self).fetch(1000)
    
    @classmethod