class Answer(ndb.Model): # get from the form author = ndb.UserProperty() name = ndb.StringProperty() content = ndb.TextProperty() qid = ndb.IntegerProperty() # default 0 and change it later manually vote = ndb.IntegerProperty(default=0) voteTracker = ndb.JsonProperty() # assign and change manually createTime = ndb.DateTimeProperty(auto_now_add=True) modifyTime = ndb.DateTimeProperty(auto_now=True)
class myStream(ndb.Model): streamname = ndb.StringProperty() streamOwner = ndb.UserProperty() doc_id = ndb.StringProperty() lastNewPicture = ndb.DateProperty(required=False) createTime = ndb.DateProperty() urltoCoverPhoto = ndb.StringProperty() numOfPictures = ndb.IntegerProperty() numOfViews = ndb.IntegerProperty() viewTimeQueue = ndb.DateTimeProperty(repeated=True) blob_key = ndb.BlobKeyProperty(repeated=True) photoComments = ndb.StringProperty(repeated=True)
class Answer(ndb.Model): author = ndb.UserProperty() content = ndb.StringProperty(indexed=False) date_create = ndb.DateTimeProperty(auto_now_add=True) date_edit = ndb.DateTimeProperty(auto_now=True) ups = ndb.StringProperty( repeated=True, indexed=False) # stores a list of users who voted up on this question downs = ndb.StringProperty( repeated=True, indexed=False ) # stores a list of users who voted down on this question vote = ndb.ComputedProperty(lambda self: len(self.ups) - len(self.downs))
class SearchTestModel(ndb.Model): string = ndb.StringProperty() string2 = ndb.StringProperty() repeated_string = ndb.StringProperty(repeated=True) datetime = ndb.DateTimeProperty( ) # auto_now_add=True is broken due to it calling now() locally instead of utcnow() person = ndb.UserProperty(auto_current_user=True) date = ndb.DateProperty(auto_now_add=True) time = ndb.TimeProperty() ref = ndb.KeyProperty() geopt = ndb.GeoPtProperty() repeated_number = ndb.IntegerProperty(repeated=True)
class MyModel(EndpointsModel): _message_fields_schema = ('id', 'productname', 'category', 'offerprice', 'usualprice', 'doe', 'owner', 'productimg') productname = ndb.StringProperty() category = ndb.StringProperty() offerprice = ndb.FloatProperty() usualprice = ndb.FloatProperty() doe = EndpointsDateProperty() productimg = ndb.BlobProperty() owner = ndb.UserProperty() created = ndb.DateTimeProperty(auto_now_add=True) modified = ndb.DateTimeProperty(auto_now=True)
class Entry(ndb.Model): title = ndb.StringProperty() summary = ndb.StringProperty() post = ndb.StringProperty() tags = ndb.KeyProperty(kind=Tag, repeated=True) user = ndb.UserProperty() created = ndb.DateTimeProperty(auto_now_add=True) slug = ndb.StringProperty() # stats views = ndb.IntegerProperty(default=0) likes = ndb.IntegerProperty(default=0) shares = ndb.IntegerProperty(default=0)
class Resource(ndb.Model): name = ndb.StringProperty() owner = ndb.UserProperty() start_time = ndb.DateTimeProperty() end_time = ndb.DateTimeProperty() tags = ndb.StructuredProperty(Tag, repeated=True) last_res_time = ndb.DateTimeProperty( default=datetime.datetime.strptime("1900", "%Y")) description = ndb.StringProperty(default="") reserved_num = ndb.IntegerProperty(default=0) capacity = ndb.IntegerProperty(default=1) image = ndb.BlobProperty()
class Link(ndb.Model): owner = ndb.UserProperty() title = ndb.StringProperty() url = ndb.StringProperty() created_at = ndb.DateTimeProperty(auto_now_add=True) def serialize(self): return { 'title': self.title, 'url': self.url, 'created_at': self.created_at }
class Session(ndb.Model): owner = ndb.UserProperty(required=True) event = ndb.KeyProperty(required=True, kind=Event) name = ndb.StringProperty(required=True) room = ndb.StringProperty(required=True) @classmethod def in_event(cls, event_key): for session in cls.query(Session.event == ndb.Key(urlsafe=event_key)): yield session def to_dict(self): return {'name': self.name, 'room': self.room}
class Streams(ndb.Model): """Models an individual Stream entry.""" stream_name = ndb.StringProperty(indexed=False) thumb_img = ndb.BlobProperty() owner_name = ndb.UserProperty(required=True, indexed=False) stream_id = ndb.StringProperty(required=True, indexed=True) owner_name = ndb.StringProperty(indexed=False) subscriber_list = ndb.StringProperty(indexed=False) create_date = ndb.DateTimeProperty(auto_now_add=True) category_id = ndb.IntegerProperty(required=False, indexed=False) category_name = ndb.StringProperty() location_id = ndb.StringProperty() location_name = ndb.StringProperty()
class UserInfo(ndb.Expando): user = ndb.UserProperty() email = ndb.ComputedProperty(lambda self: self.user.email()) data = ndb.DateTimeProperty(auto_now=True) mys = ndb.BooleanProperty(default=False) daily = ndb.BooleanProperty(default=False) twitt = ndb.BooleanProperty(default=False) delicious = ndb.BlobKeyProperty() cursor = ndb.IntegerProperty(default=0) @property def tag_list(self): return Tags.query(Tags.user == self.user)
class Change(ndb.Model): upload_paths = ndb.StringProperty(repeated=True) project_prefixes = ndb.StringProperty(repeated=True) created_by = ndb.UserProperty() is_committed = ndb.BooleanProperty(default=False) is_aborted = ndb.BooleanProperty(default=False) def get_change_id(self): return int(self.key.string_id()) @classmethod def get_key(cls, change_id): return ndb.Key(ChangeGroup, '1', cls, '%012d' % change_id)
class Redirect_Url(ndb.Model): # Username user = ndb.UserProperty() # Destination url to_url = ndb.TextProperty(required=True, indexed=True) # Url as input by the user input_url = ndb.TextProperty(required=True, indexed=True) # Computed field to compare against when making a request. Forced to lower case input_url_lower = ndb.ComputedProperty(lambda self: self.input_url.lower())
class ResourceReview(ndb.Model): submitter = ndb.UserProperty(required=True) ts_created = ndb.DateTimeProperty(required=True, auto_now_add=True) text = ndb.TextProperty(required=True) @classmethod def query_resource(cls, ancestor_key): return cls.query(ancestor=ancestor_key).order(-cls.ts_created) @property def dict(self): return { "submitter": self.submitter.nickname(), "ts_created" : self.ts_created, "text" : self.text }
class Greeting(ndb.Model): """ Models an individual Guestbook entry with author, content, and date. Attributes: author: string: the author of the greeting content: string: the content of the greeting date: string: the date of the greeting """ author = ndb.UserProperty() content = ndb.StringProperty(indexed=False) date = ndb.DateTimeProperty(auto_now_add=True)
class Score(EndpointsModel): """Model to store scores that have been inserted by users. Since the played property is auto_now_add=True, Scores will document when they were inserted immediately after being stored. """ outcome = ndb.StringProperty(required=True) played = ndb.DateTimeProperty(auto_now_add=True) player = ndb.UserProperty(required=False) @property def timestamp(self): """Property to format a datetime object to string.""" return self.played.strftime(TIME_FORMAT_STRING)
class UserPreferences(ndb.Model): user = ndb.UserProperty() userpage_title = ndb.StringProperty() created_at = ndb.DateTimeProperty() @classmethod def get_by_user(cls, user): keyid = ndb.Key(cls, user.email()).string_id() prefs = cls.get_by_id(keyid) if prefs is None: prefs = cls(id=keyid) prefs.user = user prefs.created_at = datetime.now() return prefs
class Reservation(ndb.Model): """Resource: ...""" # User who make reservation of a resource author = ndb.UserProperty(indexed=True) # Name of the reservation name = ndb.StringProperty(indexed=True) pubDate = ndb.DateTimeProperty(auto_now_add=True) modDate = ndb.DateTimeProperty(auto_now=True) startDateTime = ndb.DateTimeProperty() endDateTime = ndb.DateTimeProperty() duration = ndb.StringProperty(indexed=False) numsOfAttendee = ndb.IntegerProperty(indexed=False)
class BlogPost(ndb.Model, VisibilityAndPrivacy, TouchedCreated): ''' Represents a post in a blog. ''' blog = ndb.KeyProperty() author = ndb.UserProperty() shortname = ndb.StringProperty() title = ndb.StringProperty() status = ndb.StringProperty(choices=['ARCHIVED', 'DRAFT', 'PUBLISHED']) byline = ndb.StringProperty() body = ndb.TextProperty() excerpt = ndb.StringProperty() published = ndb.BooleanProperty() tags = ndb.StringProperty(repeated=True) keywords = ndb.StringProperty(repeated=True)
class gaetk_LongTask(ndb.Model): """Represents a long running task.""" # url-path to do statistic for common kinds of tasks path = ndb.StringProperty() method = ndb.StringProperty(default='GET') parameters_blob = ndb.BlobProperty(compressed=True) result_blob = ndb.BlobProperty(compressed=True) status = ndb.StringProperty( default='ready', choices=['ready', 'started', 'error', 'done', 'showing', 'finished']) starttime = ndb.FloatProperty() # Unix timestamp endtime = ndb.FloatProperty() # Unix timestamp # When was the result last accessed last_accessed_at = ndb.DateTimeProperty(auto_now=True) # Speichern wann und von wem der Datensatz angelegt und geändert wurde. Die Appengine füllt diese # Felder automatisch aus. updated_at = ndb.DateTimeProperty(auto_now=True) updated_by = ndb.UserProperty(required=False, auto_current_user=True) created_at = ndb.DateTimeProperty(auto_now_add=True) created_by = ndb.UserProperty(required=False, auto_current_user_add=True) def __repr__(self): return '<LongTask status=%r>' % self.status
class AppUser(ndb.Model): """Implements AppUser. The AppUser represents an API user in a datastore. For each user, we store their email address and API credentials. """ user = ndb.UserProperty(required=True) date = ndb.DateProperty(auto_now=True) email = ndb.StringProperty(required=True) client_id = ndb.StringProperty(required=False) client_secret = ndb.StringProperty(required=False) refresh_token = ndb.StringProperty(required=False) mcc_cid = ndb.StringProperty(required=False) developer_token = ndb.StringProperty(required=False)
class Volunteer(EndpointsModel): _message_fields_schema = ("id", "applied_on", "confirmed", "confirmed_by", "name", "email", "sex", "city", "country", "phone_no") applied_on = ndb.DateTimeProperty(auto_now_add=True) confirmed = ndb.BooleanProperty(default=False) confirmed_by = ndb.UserProperty() name = ndb.StringProperty() email = ndb.StringProperty() sex = ndb.StringProperty() city = ndb.StringProperty() country = ndb.StringProperty() phone_no = ndb.StringProperty()
class GelGroup(NdbBaseModel): relevant_page_urls = ["/catalyst/small_groups"] Createdby = ndb.UserProperty(auto_current_user_add=True) CreationDateTime = NdbUtcDateTimeProperty(auto_now_add=True) ModifiedBy = ndb.UserProperty(auto_current_user=True) ModifiedDateTime = NdbUtcDateTimeProperty(auto_now=True) Title = ndb.StringProperty( verbose_name="Title", required=True, ) DayAndTime = ndb.DateTimeProperty( verbose_name="Day And Time", required=True, ) Leaders = ndb.StringProperty( verbose_name="Leaders", required=True, ) ContactEmail = ndb.StringProperty( verbose_name="Leaders", required=True, ) Description = ndb.TextProperty( verbose_name="Description", required=True, ) @property def FormattedDayAndTime(self): if self.DayAndTime.minute == 0: return self.DayAndTime.strftime('%A') + ' ' + self.DayAndTime.strftime('%I').lstrip( '0') + self.DayAndTime.strftime('%p').lower() else: return self.DayAndTime.strftime('%A') + ' ' + self.DayAndTime.strftime('%I').lstrip('0') + ':' + str( self.DayAndTime.minute) + self.DayAndTime.strftime('%p').lower()
class Event(ndb.Model): title = ndb.StringProperty(required=True) description = ndb.StringProperty() date = ndb.DateProperty(required=True) colour = ndb.StringProperty(choices=COLOURS) owner = ndb.UserProperty() #Converts the Date Format @property def date_formatted(self): return datetime.datetime.strftime(self.date, '%d %B %Y') @property def only_date(self): return datetime.datetime.strftime(self.date, '%d')
class Stream(ndb.Model): name = ndb.StringProperty() tag = ndb.StringProperty(repeated=True, default=None) subscribers = ndb.StringProperty(repeated=True) url = ndb.StringProperty() guesturl = ndb.StringProperty() creattime = ndb.DateTimeProperty(auto_now_add=True) lastnewdate = ndb.DateTimeProperty(auto_now_add=True) numberofpictures = ndb.IntegerProperty() total = ndb.IntegerProperty() #views=ndb.IntegerProperty() coverurl = ndb.StringProperty() author = ndb.UserProperty() author_name = ndb.StringProperty()
class FeedModel(ndb.Model): user = ndb.UserProperty(required=True, indexed=True) title = ndb.TextProperty(required=True, indexed=False) description = ndb.TextProperty(required=True, indexed=False) link = ndb.StringProperty(required=True, indexed=True) # Internal use timestamp = ndb.DateTimeProperty(required=True, indexed=True) # Optionals # tag in app tag = ndb.StringProperty(indexed=False) # pubdate published = ndb.StringProperty(indexed=False) # For requests etag = ndb.StringProperty(indexed=True) modified = ndb.StringProperty(indexed=True)
class Newsletter(NdbBaseModel): relevant_page_urls = ["/alumni/newsletter"] Createdby = ndb.UserProperty(auto_current_user_add=True) CreationDateTime = NdbUtcDateTimeProperty(auto_now_add=True) DisplayOrder = ndb.IntegerProperty() Title = ndb.StringProperty( verbose_name="Title", required=True, ) NewsletterBlob = ndb.BlobKeyProperty( verbose_name="Newsletter", required=True, )
class MyModel(EndpointsModel): # By default, the ProtoRPC message schema corresponding to this model will # have four fields: attr1, attr2, created and owner # in an arbitrary order (the ordering of properties in a dictionary is not # guaranteed). attr1 = ndb.StringProperty() attr2 = ndb.StringProperty() created = ndb.DateTimeProperty(auto_now_add=True) # The three properties above are represented by string fields, but the # UserProperty below is represented in the ProtoRPC message schema as a # message field -- a field whose value is itself a message. To hold a user # property, a custom ProtoRPC message class is defined in # endpoints_proto_datastore.utils and is used to convert to and from the NDB # property and the corresponding ProtoRPC field. owner = ndb.UserProperty()
class Post(ndb.Model): title = ndb.StringProperty(required=True) author = ndb.UserProperty(required=True) post_date = ndb.DateTimeProperty(auto_now=True) description = ndb.TextProperty(required=True) price = ndb.StringProperty(required=True) picture = ndb.BlobProperty(default="") contact_email = ndb.StringProperty(required=True) contact_phone = ndb.StringProperty(default="") category = ndb.StringProperty(choices=('Home, Garden & Tools', 'Beauty', 'Electronics & Computers', 'Clothing, Shoes & Jewelry', 'Books', 'Movies, Music & Games', 'Sports & Outdoors', 'Automotive', 'Pets', 'Free'), required=True) @property def picture_url(self): return "/img_serve/{}".format(self.key.id())
class Person(ndb.Model): role = ndb.StringProperty(choices=[ 'superadmin', 'superintendent', 'principal', 'teacher', 'student' ], repeated=True) profile = ndb.UserProperty() user_id = ndb.StringProperty() f_name = ndb.StringProperty(default="No") l_name = ndb.StringProperty(default="Name") full_name = ndb.ComputedProperty( lambda self: self.f_name + " " + self.l_name) email = ndb.StringProperty() guid = ndb.StringProperty() validated = ndb.BooleanProperty(default=False) date = ndb.DateTimeProperty(auto_now_add=True)