class FinalPostdb(db.Model): username = db.StringProperty(required=True) post_title = db.StringProperty(required=True) post_details = db.StringProperty(required=True) post_date = db.DateTimeProperty(auto_now_add=True) min_bid = db.IntegerProperty(required=True) max_bid = db.IntegerProperty(required=True) status = db.StringProperty(default="null") start_date = db.DateProperty(required=True) end_date = db.DateProperty(auto_now_add=True) Freelancer = db.StringProperty(default="null") @classmethod def add_post(cls, username, post_title, post_details, min_bid, max_bid, start_date, end_date): f = FinalPostdb(username=username, post_title=post_title, post_details=post_details, min_bid=int(min_bid), max_bid=int(max_bid), start_date=start_date, end_date=end_date) print 'giojoa' f.put() @classmethod def by_username(cls, username): return FinalPostdb.all().filter(username=username) @classmethod def by_id(cls, uid): FinalPostdb.get_by_id(uid)
class ConferenceData(db.Model): module = db.StringProperty(default=module) dbox_access_token = db.StringProperty() db_user_id = db.StringProperty() db_account_info = db.StringProperty() dbox_update = db.BooleanProperty(default=False) c_client = db.StringProperty(default='Client') name = db.StringProperty(default='Conference') start_date = db.DateProperty() end_date = db.DateProperty() account_verification_msg = db.TextProperty( default= '''Dear {name},\n Thank you for activating your account, we look forward to receiving your presentations. To complete the process please click on the following link to verify your email address {url}''' ) password_reset_msg = db.TextProperty( default= '''Dear {name},\nPlease click on the following link to reset your password {url}''' ) new_account_msg = db.TextProperty( default= '''Dear {name},\nYour account is ready for activation for the upcoming event, Please click on the following link to activate your account {url}''' ) recieved_presentation_msg = db.TextProperty( default= '''Dear {name},\nCongratulations your presentation has uploaded successfully, to view your submission and confirm the upload please click <a href="{url}">here</a>''' )
class Shop(GeoModel): """TODO: Describe Shop""" Company = db.ReferenceProperty(reference_class=Company, collection_name="company_shops") Name= db.StringProperty(required=True, ) ContactPhone= db.PhoneNumberProperty() WorkingDays= db.StringListProperty(required=True, )#choices=[x[0] for x in Days]) NormalHoursStart= db.TimeProperty(required=True, default=time(8,0), ) NormalHoursEnd= db.TimeProperty(required=True, default=time(20,0) ,) WeekendHoursStart= db.TimeProperty(required=True, default=time(10, 00), ) WeekendHoursEnd= db.TimeProperty(required=True, default=time(22,00), ) IsWorkingOnWeekend= db.BooleanProperty(default=True, ) IsWorkingSunday= db.BooleanProperty(default=False, ) DateAdded= db.DateProperty(auto_now_add=True) DateModified = db.DateProperty(auto_now=True) def put(self): self.update_location() super(Shop, self).put() @classmethod def CreateNew(cls ,name,location,contactphone,workingdays,normalhoursstart,normalhoursend,weekendhoursstart,weekendhoursend,isworkingonweekend,isworkingsunday , _isAutoInsert=False): result = cls( Name=name, Location=location, ContactPhone=contactphone, WorkingDays=workingdays, NormalHoursStart=normalhoursstart, NormalHoursEnd=normalhoursend, WeekendHoursStart=weekendhoursstart, WeekendHoursEnd=weekendhoursend, IsWorkingOnWeekend=isworkingonweekend, IsWorkingSunday=isworkingsunday,) if _isAutoInsert: result.put() return result def __str__(self): #TODO: Change the method to represent something meaningful return self.Name+"("+self.Company.Name+")"+str(self.location)
class Promotion(db.Model): """TODO: Describe Promotion""" Items= db.ListProperty(db.Key, required=True) Promotors = db.ListProperty(db.Key, required=True) IsCompanyWide = db.BooleanProperty(default=True) PromotionLink= db.LinkProperty() DateStart= db.DateProperty(required=True) DateEnd= db.DateProperty(required=True) @classmethod def CreateNew(cls ,items,promotionlink,datestart,dateend, isCompanyWide=True, promotors=None , _isAutoInsert=False): if not promotors: promotors = [] if isCompanyWide: promotors = [items[0].Shop.Company.key(),] else: promotors = [items[0].Shop.key(),] result = cls(Items=items, Promotors=promotors, PromotionLink=promotionlink, DateStart=datestart, DateEnd=dateend,) if _isAutoInsert: result.put() return result def __str__(self): #TODO: Change the method to represent something meaningful return ', '.join([x.Name for x in db.get(self.Items)])
class Equity(db.Model): ticker = db.StringProperty(required=True) style = db.BooleanProperty(required=True) target = db.FloatProperty(required=True) price = db.FloatProperty(required=True) date = db.DateProperty(auto_now_add=True) maturity = db.DateProperty(required=True)
class Person(db.Model): """Base person class. Necessary in the case of non-member board nominees.""" firstname = db.StringProperty() lastname = db.StringProperty() username = db.StringProperty(required=True) email = db.EmailProperty(required=True) altemails = db.ListProperty(item_type=db.Email) phone = db.PhoneNumberProperty() altphones = db.ListProperty(item_type=db.PhoneNumber) address = db.PostalAddressProperty() # password is hashed with sha256 password = db.BlobProperty(required=True) password_expired = db.BooleanProperty(default=False) active = db.BooleanProperty(default=True) admin = db.BooleanProperty(default=False) joined = db.DateProperty() left = db.DateProperty() @staticmethod def EncryptPassword(password): """Encrypts a password using SHA-256 encoding. Args: password: str, password to encrypt. Returns: str, encrypted password. """ return hashlib.sha256(password).digest()
class Venue(GeoModel): name = db.StringProperty() address = db.PostalAddressProperty() start_date = db.DateProperty() end_date = db.DateProperty() def date_string(self): start_date = self.start_date.strftime("%m/%d/%Y") end_date = self.end_date.strftime("%m/%d/%Y") return '%s - %s' % (start_date, end_date) def unlink_templates(self): templates = self.template_set for template in templates: template.venue = None template.put() def to_dict(self): result = to_dict(self) result['id'] = self.key().id() return result def delete(self): self.unlink_templates() super(Venue, self).delete()
class Internship(db.Model): member = db.ReferenceProperty(Member, collection_name="Member_Internship") ep_id = db.StringProperty() project = db.ReferenceProperty(Project, collection_name="Project_Internship") date_start = db.DateProperty(auto_now_add=True) date_end = db.DateProperty() approved = db.BooleanProperty()
class Contest(db.Model): title = db.StringProperty(required=True) contest_type = db.StringProperty(required=True, choices=set(["online", "onsite"])) contest_start_date = db.DateProperty() contest_end_date = db.DateProperty() approved_contest = db.BooleanProperty(required=True) detail = db.StringProperty()
class Campaign(db.Model, Root.Handler): _name = db.StringProperty() _organisation = db.StringProperty() _category = db.StringProperty() _targetAmount = db.StringProperty() _startDate = db.DateProperty() _endDate = db.DateProperty() _description = db.TextProperty()
class Betlin(db.Model): #key = db.Key.from_path('Persons','root','Person','%s' % (Nr), 'Betlin', '%s' % (Id)) Id = db.IntegerProperty() Betref = db.ReferenceProperty(Bet, collection_name='listBetlin') Pbssektionnr = db.StringProperty() Pbstranskode = db.StringProperty() Nr = db.IntegerProperty() Faknr = db.IntegerProperty() Debitorkonto = db.StringProperty() Aftalenr = db.IntegerProperty() Betalingsdato = db.DateProperty() Belob = db.FloatProperty() Indbetalingsdato = db.DateProperty() Bogforingsdato = db.DateProperty() Indbetalingsbelob = db.FloatProperty() Pbskortart = db.StringProperty() Pbsgebyrbelob = db.FloatProperty() Pbsarkivnr = db.StringProperty() Fakref = db.ReferenceProperty(Fak, collection_name='listBetlin') def linkFak(self): if not self.Fakref: qry = Fak.all().filter('Faknr =', self.Faknr) for fakrec in qry: if fakrec.Nr == self.Nr: self.Fakref = fakrec.key() self.put() break def addMedlog(self): if self.Pbstranskode in ['0236','0237','0297']: fakroot = db.Key.from_path('Persons','root','Person','%s' % (self.Nr), 'Betlin', '%s' % (self.Id)) medlog = Medlog.get_or_insert('%s' % (self.Id), parent=fakroot) medlog.Id = self.Id medlog.Source = 'Betlin' medlog.Source_id = self.Id medlog.Nr = self.Nr try: medlog.Logdato = self.Betref.Frapbsref.Udtrukket except: pass if self.Pbstranskode in ['0236','0297']: qry = Fak.all().filter('Faknr =', self.Faknr) for fakrec in qry: if fakrec.Nr == self.Nr: medlog.Akt_dato = fakrec.Tildato medlog.Akt_id = 30 medlog.put() return elif self.Pbstranskode in ['0237']: medlog.Akt_id = 40 medlog.Akt_dato = self.Betalingsdato medlog.put() return medlog.delete() return
class Occasion(db.Model): """ A container of events. """ title = db.StringProperty(required=True) description = db.TextProperty(required=True) date_start = db.DateProperty(required=True) date_end = db.DateProperty(required=True) author = db.UserProperty(required=True)
class Quiz(db.Model): """Definisce un quiz come una domanda, un intervallo di validita' per il quiz stesso ed una lista di risposte ( di cui una o piu' corretta )""" title = db.StringProperty() body = db.TextProperty() dateStart = db.DateProperty() dateEnd = db.DateProperty() answer = db.ListProperty(db.Key) # Quizanswer # utenti che hanno gia' risposto al quiz users = db.ListProperty(db.Key) #User
class IndicatorConfirmation(DerefModel): submission = db.ReferenceProperty(IndicatorSubmission, required=True) indicator = db.ReferenceProperty(Indicator, required=True) snaparea = db.ReferenceProperty(SnapArea, required=True) area = db.ReferenceProperty(Area, required=True) zone = db.ReferenceProperty(Zone, required=True) week = db.ReferenceProperty(Week, required=True) weekdate = db.DateProperty(required=True) name = db.StringProperty(required=True, indexed=False) date = db.DateProperty(required=True, indexed=False)
class usuarios(db.Model): usuario = db.StringProperty() password = db.StringProperty() nombre = db.StringProperty() paterno = db.StringProperty() materno = db.StringProperty() fecha_nacimiento = db.DateProperty() fecha_alta = db.DateProperty() sexo = db.StringProperty() pregunta_secreta = db.StringProperty() respuesta_secreta = db.StringProperty()
class DateTimeModel(db.Model): prop_date_time_1 = db.DateTimeProperty() prop_date_time_2 = db.DateTimeProperty(auto_now=True) prop_date_time_3 = db.DateTimeProperty(auto_now_add=True) prop_date_1 = db.DateProperty() prop_date_2 = db.DateProperty(auto_now=True) prop_date_3 = db.DateProperty(auto_now_add=True) prop_time_1 = db.TimeProperty() prop_time_2 = db.TimeProperty(auto_now=True) prop_time_3 = db.TimeProperty(auto_now_add=True)
class Aftalelin(db.Model): #key = db.Key.from_path('Persons','root','Person','%s' % (Nr), 'Aftalelin', '%s' % (Id)) Id = db.IntegerProperty() Frapbsref = db.ReferenceProperty(Frapbs, collection_name='listAftalelin') Pbstranskode = db.StringProperty() Nr = db.IntegerProperty() Debitorkonto = db.StringProperty() Debgrpnr = db.StringProperty() Aftalenr = db.IntegerProperty() Aftalestartdato = db.DateProperty() Aftaleslutdato = db.DateProperty() Pbssektionnr = db.StringProperty()
class Task(db.Model): client_name = db.StringProperty() client_address = db.StringProperty(multiline=True) tags = db.StringProperty(multiline=True) content = db.StringProperty(multiline=True) start_date = db.DateProperty() end_date = db.DateProperty() start_at = db.TimeProperty() hour = db.IntegerProperty() reward = db.StringProperty() difficulty = db.IntegerProperty() date = db.DateTimeProperty(auto_now_add=True)
class Iniciativa(db.Expando): uuid = db.StringProperty() link_gaceta = db.StringProperty() rol_iniciativa = db.StringProperty() sinopsis = db.Text() titulo = db.Text() tramite = db.StringProperty() fecha = db.DateProperty() fecha_aprobacion = db.DateProperty() fecha_publicacion = db.DateProperty() diputado = db.StringProperty()
class TeacherEntity(entities.BaseEntity): """A class that represents a persistent database entity of teacher.""" enrolled_on = db.DateProperty() is_enrolled = db.BooleanProperty(indexed=False) is_active = db.BooleanProperty(indexed=False) user_id = db.StringProperty(indexed=True) name = db.StringProperty(indexed=False) date = db.DateProperty() email = db.StringProperty(indexed=True) school = db.TextProperty(indexed=False) # Additional field for teachers sections = db.TextProperty(indexed=False) memcache_key = 'teachers' @classmethod def get_teachers(cls, allow_cached=True): items = MemcacheManager.get(cls.memcache_key) if not allow_cached or items is None: items = TeacherEntity.all().order('-date').fetch(1000) # TODO(psimakov): prepare to exceed 1MB max item size # read more here: http://stackoverflow.com # /questions/5081502/memcache-1-mb-limit-in-google-app-engine MemcacheManager.set(cls.memcache_key, items) return items @classmethod def make(cls, name, email, school): entity = cls() entity.name = name entity.date = datetime.datetime.now().date() entity.enrolled_on = entity.date entity.is_enrolled = True entity.is_active = True entity.email = email entity.school = school return entity def put(self): """Do the normal put() and also invalidate memcache.""" result = super(TeacherEntity, self).put() MemcacheManager.delete(self.memcache_key) return result def delete(self): """Do the normal delete() and invalidate memcache.""" super(TeacherEntity, self).delete() MemcacheManager.delete(self.memcache_key)
class League(db.Model): """ A league is used for each set of individuals playing in a competition. Eg for Euro 2008 there might be a Blades league and a separate work league. """ competition = db.ReferenceProperty(Competition) name = db.StringProperty() date = db.DateProperty() start = db.DateProperty() end = db.DateProperty() def __str__(self): return self.name
class Pedido(db.Model): cliente = db.ReferenceProperty(Cliente, collection_name='pedidos', required=True) descricao = db.TextProperty(required=True) valor = db.StringProperty(required=True) data_entrega = db.DateProperty(required=True) data_pedido = db.DateProperty(auto_now_add=True) pago = db.BooleanProperty(default=False) producao = db.ReferenceProperty(Producao, required=True) entrega = db.ReferenceProperty(Entrega, required=True) def finalizado(self): return self.producao.pronto() and self.entrega.entregue() and self.pago
class MissionaryProfile(db.Model): # itenary data it_flight_num = db.StringProperty(indexed=False) it_flight_comp = db.StringProperty(indexed=False) it_flight_arrive = db.DateTimeProperty(indexed=False) it_destination = db.StringProperty(indexed=False) it_ward = db.TextProperty(indexed=False) it_stake = db.TextProperty(indexed=False) return_areas = db.TextProperty(indexed=False) # history hist_data = db.TextProperty(indexed=False) hist_last_update = db.DateTimeProperty(indexed=False) hometown = db.StringProperty(indexed=False) photo = db.BlobProperty(indexed=False) stake = db.StringProperty(indexed=False) spres = db.StringProperty(indexed=False) stele = db.StringProperty(indexed=False) conf_date = db.DateProperty(indexed=False) # policia federal father = db.StringProperty(verbose_name="Father's name", indexed=False) mother = db.StringProperty(verbose_name="Mother's name", indexed=False) birth_city = db.StringProperty(verbose_name="City of birth", indexed=False) passport = db.StringProperty(verbose_name="Passport number", indexed=False) entrance = db.DateProperty(verbose_name="Entrance date", indexed=False) visa_num = db.StringProperty( verbose_name="Visa number: on glued-in paper in passport", indexed=False) issue_date = db.DateProperty( verbose_name="Issue date: on glued-in paper in passport", indexed=False) issued_by = db.StringProperty( verbose_name= "Repartição expedida, probably Los Angeles or San Francisco", indexed=False) entrance_place = db.StringProperty( verbose_name="Place of entrance: probably Guarulhos or Rio de Janeiro", indexed=False) entrance_state = db.StringProperty( verbose_name="State of entrance: probably SP or RJ", indexed=False) dou_prazo = db.DateProperty( verbose_name= "Prazo do DOU: date after the missionary's name on the DOU sheet", indexed=False) dou_date = db.DateProperty( verbose_name="Data do DOU: date at the top of the DOU sheet", indexed=False)
class StoredImage(db.Model): date_start = db.DateProperty() date_end = db.DateProperty() processed_image = db.BlobProperty() @staticmethod def KeyForImage(sequence, resized=False, start_date=None, end_date=None): if not start_date: raise Error('No start date given') base_key = '%s_%s' % (sequence, start_date.toordinal()) if end_date: base_key += '_%s' % end_date.toordinal() if resized: base_key += '_r' return base_key
class IndicatorBaptism(DerefModel): submission = db.ReferenceProperty(IndicatorSubmission, required=True) indicator = db.ReferenceProperty(Indicator, required=True) snaparea = db.ReferenceProperty(SnapArea, required=True) area = db.ReferenceProperty(Area, required=True) zone = db.ReferenceProperty(Zone, required=True) week = db.ReferenceProperty(Week, required=True) weekdate = db.DateProperty(required=True) name = db.StringProperty(required=True, indexed=False) date = db.DateProperty(required=True, indexed=False) age = db.IntegerProperty(required=True, indexed=False) sex = db.StringProperty(choices=BAPTISM_SEX_CHOICES, required=True, indexed=False)
class AnnouncementEntity(entities.BaseEntity): """A class that represents a persistent database entity of announcement.""" title = db.StringProperty(indexed=False) date = db.DateProperty() html = db.TextProperty(indexed=False) labels = db.StringProperty(indexed=False) is_draft = db.BooleanProperty() send_email = db.BooleanProperty() memcache_key = 'announcements' @classmethod def get_announcements(cls, allow_cached=True): items = MemcacheManager.get(cls.memcache_key) if not allow_cached or items is None: items = AnnouncementEntity.all().order('-date').fetch(1000) # TODO(psimakov): prepare to exceed 1MB max item size # read more here: http://stackoverflow.com # /questions/5081502/memcache-1-mb-limit-in-google-app-engine MemcacheManager.set(cls.memcache_key, items) return items def put(self): """Do the normal put() and also invalidate memcache.""" result = super(AnnouncementEntity, self).put() MemcacheManager.delete(self.memcache_key) return result def delete(self): """Do the normal delete() and invalidate memcache.""" super(AnnouncementEntity, self).delete() MemcacheManager.delete(self.memcache_key)
class Candidate(db.Model): candidateId = db.StringProperty(required=True) name = db.StringProperty() date = db.DateProperty() email = db.EmailProperty() resumelink = db.LinkProperty() status = db.StringProperty()
class QuoteRequest(db.Model): """Quote request profile with user information""" state = db.StringProperty(required=True) gender = db.StringProperty(required=True,choices=strip(GENDERS)) dob = db.DateProperty(required=True,verbose_name="Born on") height = db.StringProperty(required=True) weight = db.IntegerProperty(required=True) tobacco = db.StringProperty(required=True,choices=strip(TOBACCOS)) rating = db.StringProperty(required=True,choices=strip(RATINGS)) coverage = db.IntegerProperty(required=True,choices=stri(COVERAGE_RANGES)) term = db.IntegerProperty(required=True,choices=stri(TERMS), verbose_name="Term (years)") payment_mode = db.StringProperty(required=True,choices=strip(PAYMENT_MODES)) created = db.DateTimeProperty(auto_now_add=True) modified = db.DateTimeProperty(auto_now=True) def __unicode__(self): return "%s %s %s %s" % (self.created, self.state, self.gender, self.dob) @permalink def get_absolute_url(self): return ('efs.views.quote_request_detail', (), {'key': self.key()})
class Student(db.Model): name = db.StringProperty(required=True) role = db.StringProperty(required=True, choices=set(["student", "classrep"])) enrolled_date = db.DateProperty() induction_completed = db.BooleanProperty(indexed=False) email = db.StringProperty()
class User(db.Model): @classmethod def new(cls): return User(enabled=0, restore_password=0) first_name = db.StringProperty() last_name = db.StringProperty() mobile_number = db.StringProperty(indexed=False) telephone_number = db.StringProperty(indexed=False) email = db.EmailProperty() rol = db.StringProperty(required=True, default='oper') password = db.StringProperty() gender = db.StringProperty(indexed=False) birthday = db.DateProperty(auto_now_add=True, indexed=False) realestate = db.ReferenceProperty(RealEstate) enabled = db.IntegerProperty() restore_password = db.IntegerProperty() updated_at = db.DateTimeProperty(auto_now=True) created_at = db.DateTimeProperty(auto_now_add=True) @property def full_name(self): return '%s %s' % (self.first_name if self.first_name else '', self.last_name if self.last_name else '') def __repr__(self): return self.name