Ejemplo n.º 1
0
class Settings(db.Model):
    companyName = db.StringProperty()
    companyAddress = db.PostalAddressProperty()
    companyPhone1 = db.PhoneNumberProperty()
    companyPhone2 = db.PhoneNumberProperty()
    logo = db.BlobProperty()
    bankName = db.StringProperty()
    bankAddress = db.PostalAddressProperty()
    bankAcctName = db.StringProperty()
    bankAcctNum = db.StringProperty()
    routingNumber = db.StringProperty()
    swiftCode = db.StringProperty()
    email = db.EmailProperty()
    sdin = db.StringProperty()
    sales_tax = db.FloatProperty(default=0.0)
    num_months = db.IntegerProperty(default=6)

    @classmethod
    def get_all(cls):
        cacheKey = "settings:all"
        allInstances = memcache.get(cacheKey)
        logging.info("******")
        logging.info(allInstances)
        if allInstances is None:
            logging.info("creating cache: " + cacheKey)
            allInstances = cls.all()[0]
            memcache.add(cacheKey, allInstances)
        else:
            logging.info("using cache: " + cacheKey)
        return allInstances
Ejemplo n.º 2
0
class UserSettings(db.Model):
    user = db.UserProperty()
    lastname = db.StringProperty(verbose_name=u'姓')
    firstname = db.StringProperty(verbose_name=u'名')
    gender = db.StringProperty(choices=(
        "M",
        "F",
    ), verbose_name=u'性别')
    profile = db.TextProperty(verbose_name=u'档案')
    language = db.IntegerProperty(verbose_name=u'语言')
    im = db.IMProperty()
    birthdate = db.DateProperty(verbose_name=u'生日')
    website = db.LinkProperty(verbose_name=u'网址')
    home_phone = db.PhoneNumberProperty(verbose_name=u'私人电话')
    work_phone = db.PhoneNumberProperty(verbose_name=u'工作电话')
    mobile = db.PhoneNumberProperty(verbose_name=u'手机')
    fax = db.PhoneNumberProperty(verbose_name=u'传真')
    address = db.PostalAddressProperty(verbose_name=u'地址')

    @staticmethod
    def getByUser(user):
        settings = UserSettings.all().filter('user =', user).get()
        if settings is None:
            settings = UserSettings(user=user)
            settings.put()
        return settings
        # q = db.GqlQuery("SELECT * FROM UserSettings WHERE user = :1", user)
        # return q.get()

    @staticmethod
    def getByCurrentUser():
        user = users.get_current_user()
        return UserSettings.getByUser(user)
Ejemplo n.º 3
0
class SocialUser(db.Model):
    first_name = db.StringProperty(required=True)
    last_name = db.StringProperty(required=True)
    display_name = db.StringProperty()

    user_entity = db.UserProperty()

    bio = db.TextProperty()

    gender = db.StringProperty(choices=set(["M", "F", "U"]))
    birth_date = db.DateTimeProperty()

    email = db.EmailProperty(required=True)
    email_alternate = db.EmailProperty()

    mobile_number = db.PhoneNumberProperty()

    mailing_address = db.PostalAddressProperty()

    personal_website = db.LinkProperty()

    hometown = db.StringProperty()
    current_location = db.StringProperty()

    relationship_status = db.StringProperty()

    locale = db.StringProperty()
    timezone = db.StringProperty()

    enabled = db.BooleanProperty()
Ejemplo n.º 4
0
class User(db.Model, Root.Handler):
    _address     = db.TextProperty()        # Check if Address property exists
    _email       = db.EmailProperty()
    _firstname   = db.StringProperty()
    _lastname    = db.StringProperty()
    _phoneNumber = db.PhoneNumberProperty()
    _campaigns   = db.ReferenceProperty(campaign.Campaign, collection_name="campaigns")
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()
Ejemplo n.º 6
0
class Player(db.Model):
    """Object representing a player for Esri Hockey"""
    fname = db.StringProperty()
    lname = db.StringProperty()
    email = db.EmailProperty()
    goalie = db.BooleanProperty()
    inThisWeek = db.BooleanProperty()
    sub = db.BooleanProperty()
    team = db.StringProperty()
    phone = db.PhoneNumberProperty()

    def full_name():
        return self.fname + " " + self.lname

    def toJson(self):
        json = {}
        json['fname'] = self.fname
        json['lname'] = self.lname
        json['email'] = self.email
        json['goalie'] = 'true' if self.goalie else 'false'
        json['inThisWeek'] = 'true' if self.inThisWeek else 'false'
        json['sub'] = 'true' if self.sub else 'false'
        json['team'] = self.team if self.team != "" else None
        json['phone'] = self.phone if self.phone else None
        return json
Ejemplo n.º 7
0
class Booking(db.Model):
    booking_reference = db.StringProperty(required=True)
    property = db.StringProperty(required=True)
    first_name = db.StringProperty(required=True)
    last_name = db.StringProperty(required=True)
    email = db.EmailProperty(required=True)
    phone = db.PhoneNumberProperty(required=True)
    notes = db.TextProperty(required=False)
    booking_date = db.DateTimeProperty(auto_now_add=True)
    source = db.StringProperty(required=True)
    arrival_date = db.DateProperty(required=True)
    departure_date = db.DateProperty(required=True)
    number_of_people = db.IntegerProperty(required=True)
    gross = db.FloatProperty(required=True)
    is_discount = db.BooleanProperty(required=True)
    commission = db.FloatProperty(required=True)
    due_date = db.DateProperty(required=True)
    is_commission = db.BooleanProperty(required=True)
    is_greeting = db.FloatProperty(required=True)
    is_laundry = db.FloatProperty(required=True)
    is_cleaning = db.FloatProperty(required=True)
    is_con = db.FloatProperty(required=True)
    net = db.FloatProperty(required=True)
    # TODO: Change the below to required=True
    booking_fee = db.FloatProperty(required=False)
    house_owner_fee = db.FloatProperty(required=False)
    total_fees = db.FloatProperty(required=False)
    owner_income = db.FloatProperty(required=False)
Ejemplo n.º 8
0
class Event(db.Model):
	eventID = db.IntegerProperty()
	eventTitle = db.StringProperty()
	eventDescription = db.TextProperty()
	eventImageURLs = db.ListProperty(db.Link)
	eventAttendance = db.IntegerProperty()
	eventReviews = db.IntegerProperty()
	eventTag = db.StringProperty()
	eventURL = db.LinkProperty()
	eventWebsite = db.LinkProperty()
	eventTickets = db.TextProperty()
	eventCancelled = db.BooleanProperty()
	
	venueID = db.IntegerProperty()
	venueName = db.StringProperty()
	venueURL = db.LinkProperty()
	venueWebsite = db.LinkProperty()
	venuePhoneNumber = db.PhoneNumberProperty()
	venueImageURLs = db.ListProperty(db.Link)
	venueAddress = db.PostalAddressProperty()
	venueTimeZone = db.StringProperty()
	
	artists = db.StringListProperty()
	headliner = db.StringProperty()
	
	tags = db.StringListProperty()
	
	geoPt = db.GeoPtProperty()
	date = db.DateTimeProperty()
	
	dateAdded = db.DateTimeProperty(auto_now_add=True)
Ejemplo n.º 9
0
class User(db.Model):
    # username = db.StringProperty()
    phone = db.PhoneNumberProperty()
    pw_hash = db.StringProperty()

    @classmethod
    def by_id(cls, uid):
        return User.get_by_id(uid, parent=users_key())

    # @classmethod
    # def by_name(cls, name):
    # 	u = User.all().filter('username ='******'phone =', phone).get()
        return u

    @classmethod
    def register(cls, phone, pw):
        pw_hash = make_pw_hash(phone, pw)
        return User(parent=users_key(), phone=phone, pw_hash=pw_hash)

    @classmethod
    def login(cls, phone, pw):
        u = cls.by_phone(phone)
        if u and valid_pw(phone, pw, u.pw_hash):
            return u
Ejemplo n.º 10
0
class User(db.Model):
    firstName = db.StringProperty()
    lastName = db.StringProperty()
    fullName = db.StringProperty()
    lcaseName = db.StringProperty()
    passwordHash = db.StringProperty()

    #Permissions key:
    # 0: Public Restricted
    # 1: Read-only Member, can read restricted content
    # 2: Read-Write Member, can create and edit content, but only if he/she created it
    # 3: Admin, can read, create, and edit everything

    #TODO Remove this, groups are enough now
    permissions = db.IntegerProperty()

    groups = db.StringProperty()
    keyHash = db.StringProperty()
    email = db.EmailProperty()

    #TODO This can also be done better with groups
    subscribed = db.BooleanProperty()

    number = db.PhoneNumberProperty()

    def isGroup(self, group):
        if self.groups is not None:
            split = self.groups.split(",")
            [x.strip().lower() for x in split]
            if group.strip().lower() in split:
                return True
            else:
                return False
        else:
            return False
Ejemplo n.º 11
0
class Dealer(db.Model):
    name = db.StringProperty()
    url = db.LinkProperty()
    address = db.PostalAddressProperty()
    phone = db.PhoneNumberProperty()
    cars = db.ListProperty(db.Key)
    area = db.StringProperty()
Ejemplo n.º 12
0
class Site(db.Model):
  
  # RPC private/protected properties: read-only for ALL
  _deleted = db.BooleanProperty(default=False)
  _dateCreated = db.DateTimeProperty(auto_now_add=True)
  _dateModified = db.DateTimeProperty(auto_now=True)
  _dateAccessed = db.DateTimeProperty()
  _userLastAccessed = db.UserProperty()
  _rating = db.RatingProperty()
  
  # RPC public properties: writable by creator/admin
  userCreator = db.UserProperty(required=True) # creator or admin may change creator
  name = db.StringProperty(required=True)
  latlng = db.GeoPtProperty(required=True)
  address = db.PostalAddressProperty()
  description = db.TextProperty()
  pay = db.BooleanProperty() # pay access only?
  restricted = db.BooleanProperty() # authorized access only?
  
  # List of Service entries in the DB 
  services = db.ListProperty(db.Key) # List of keys to Service entities

  #db.BlobProperty() # images, etc
  #db.ListProperty() # images, history, ...
  # ReferenceProperty?
  # Related sites?
  
  contactName = db.StringProperty()
  contactAddress = db.PostalAddressProperty()
  contactPhone = db.PhoneNumberProperty()
  contactEmail = db.EmailProperty()
  contactURL = db.LinkProperty()
  contactIM = db.IMProperty()

  evcmid = db.StringProperty() # ID, if imported from EVChargerMaps.com
Ejemplo n.º 13
0
class AllPropertiesModel(db.Model):
    """Property names are ugly, yes."""
    prop_string = db.StringProperty()
    prop_byte_string = db.ByteStringProperty()
    prop_boolean = db.BooleanProperty()
    prop_integer = db.IntegerProperty()
    prop_float = db.FloatProperty()
    prop_date_time = db.DateTimeProperty()
    prop_date = db.DateProperty()
    prop_time = db.TimeProperty()
    prop_list = db.ListProperty(int)
    prop_string_list = db.StringListProperty()
    prop_reference = db.ReferenceProperty()
    prop_self_refeference = db.SelfReferenceProperty()
    prop_user = db.UserProperty()
    prop_blob = db.BlobProperty()
    prop_text = db.TextProperty()
    prop_category = db.CategoryProperty()
    prop_link = db.LinkProperty()
    prop_email = db.EmailProperty()
    prop_geo_pt = db.GeoPtProperty()
    prop_im = db.IMProperty()
    prop_phone_number = db.PhoneNumberProperty()
    prop_postal_address = db.PostalAddressProperty()
    prop_rating = db.RatingProperty()
Ejemplo n.º 14
0
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) 
Ejemplo n.º 15
0
class Phone(db.Model):
    date_added = db.DateTimeProperty(auto_now_add=True)
    phone = db.PhoneNumberProperty()
    # Напоминания отправляются только на подтверждённые номера.
    confirmed = db.BooleanProperty()
    # Код подтверждения.  Сохраняется при выдаче, после проверки очищается.
    confirm_code = db.IntegerProperty()
Ejemplo n.º 16
0
class Captain(BaseModel):
    """A work captain."""
    name = db.StringProperty(required=True)  # "Joe User"
    # Using the UserProperty seems to be more hassle than it's worth.
    # I was getting errors about users that didn't exist when loading sample
    # data.
    email = db.EmailProperty()  # "*****@*****.**"
    rooms_id = db.StringProperty()
    phone1 = db.PhoneNumberProperty()
    phone1.verbose_name = 'Preferred Phone (deprecated)'
    phone2 = db.PhoneNumberProperty()
    phone2.verbose_name = 'Backup Phone (deprecated)'
    phone_mobile = db.StringProperty()
    phone_work = db.StringProperty()
    phone_home = db.StringProperty()
    phone_fax = db.StringProperty()
    phone_other = db.StringProperty()
    tshirt_size = db.StringProperty(choices=('Small', 'Medium', 'Large',
                                             'X-Large', '2XL', '3XL'))
    notes = db.TextProperty()
    last_welcome = db.DateTimeProperty()
    modified = db.DateTimeProperty(auto_now=True)
    last_editor = db.UserProperty(auto_current_user=True)
    search_prefixes = db.StringListProperty()

    def put(self, *a, **k):
        self.email = self.email.lower()
        prefixes = set()
        if self.name:
            prefixes.add(self.name)
            for part in self.name.split():
                prefixes.add(part)
                for i in xrange(1, 7):
                    prefixes.add(part[:i])
            if self.email:
                prefixes.add(self.email)
                for i in xrange(1, 7):
                    prefixes.add(self.email[:i])
        self.search_prefixes = [p.lower() for p in prefixes]
        super(BaseModel, self).put(*a, **k)

    def __unicode__(self):
        return self.name

    def Label(self):
        return "%s <%s>" % (self.name, self.email)
Ejemplo n.º 17
0
class Congressman(db.Model):
    name = db.StringProperty()
    district = db.StringProperty()
    party = db.StringProperty()
    email = db.StringProperty()
    phone_number = db.PhoneNumberProperty()
    twitter = db.StringProperty()
    created_on = db.DateTimeProperty(auto_now_add=1)
Ejemplo n.º 18
0
class LicensePlates(db.Model):
    user_id = db.IntegerProperty()
    unique_plate = db.StringProperty()
    state = db.StringProperty()
    plate = db.StringProperty()
    phone = db.PhoneNumberProperty()
    created = db.DateTimeProperty(auto_now_add=True)
    last_modified = db.DateTimeProperty(auto_now=True)
Ejemplo n.º 19
0
class Watcher(db.Model):
    user = db.UserProperty()
    mobile = db.PhoneNumberProperty()
    code = db.StringProperty()
    date = db.DateTimeProperty(auto_now_add=True)
    websites = db.ListProperty(db.Key)
    ports = db.ListProperty(db.Key)
    wgets = db.ListProperty(db.Key)
Ejemplo n.º 20
0
class Phonebook(db.Model):
    #id_ = db.IntegerProperty(required=True)
    timestamp_ = db.DateTimeProperty(auto_now_add=True)
    name = db.StringProperty(required=True)
    phonenumber = db.PhoneNumberProperty(required=False)
    email = db.EmailProperty(required=False)
    description = db.StringProperty(multiline=True)
    """ will be trying for auto_id
Ejemplo n.º 21
0
class Business(geo.geomodel.GeoModel):
    user_id = db.StringProperty(required=True)
    address = db.StringProperty(required=True)
    name = db.StringProperty(required=True)
    phone_number = db.PhoneNumberProperty()
    boo = db.IntegerProperty()
    open_time = db.TimeProperty()
    close_time = db.TimeProperty()
Ejemplo n.º 22
0
class WebsiteElem(db.Model):
    """Models global site data store."""
    title = db.StringProperty()
    subtitle = db.StringProperty()
    welcome = db.TextProperty()
    email = db.EmailProperty()
    phone = db.PhoneNumberProperty()
    address = db.StringProperty()
    categories = db.ListProperty(str)
Ejemplo n.º 23
0
class User(db.Model):
  name = db.StringProperty()
  surname = db.StringProperty()
  account = db.StringProperty()
  password = db.StringProperty()
  address= db.PostalAddressProperty()
  cellphone= db.PhoneNumberProperty()
  email= db.EmailProperty()  
  id_photo=db.BlobProperty()
Ejemplo n.º 24
0
class Contact(db.Model):
    id = db.IntegerProperty(required=True)
    timestamp = db.DateTimeProperty(auto_now_add=True)
    name = db.StringProperty()
    email = db.EmailProperty()
    phone = db.PhoneNumberProperty()
    street = db.StringProperty()
    city = db.StringProperty()
    state = db.StringProperty()
    zip = db.StringProperty()
Ejemplo n.º 25
0
class Volunteer(db.Model):
    first_name = db.StringProperty(required=True)
    last_name = db.StringProperty(required=True)
    phone = db.PhoneNumberProperty(required=False)
    email = db.EmailProperty(required=False)
    trainee_input = db.StringProperty(required=False)
    project = db.StringProperty(required=True)
    cos = db.DateTimeProperty(required=False)
    sitelocation = db.TextProperty(required=False)
    notes = db.TextProperty(required=False)
Ejemplo n.º 26
0
class Contact(db.Model):
    """Data model class to hold user objects."""

    handle = db.StringProperty(required=True)
    firstname = db.StringProperty()
    lastname = db.StringProperty()
    phone_home = db.PhoneNumberProperty()
    phone_office = db.PhoneNumberProperty()
    phone_mobile = db.PhoneNumberProperty()
    email = db.EmailProperty()
    status = db.TextProperty()
    avatar = db.BlobProperty()
    deleted = db.BooleanProperty()
    updated = db.DateTimeProperty(auto_now_add=True)

    @classmethod
    def get_contact_info(cls, username):
        if username not in (None, ''):
            query = cls.gql('WHERE handle = :1', username)
            return query.get()
        return None

    @classmethod
    def get_contact_last_updated(cls, username):
        if username not in (None, ''):
            query = cls.gql('WHERE handle = :1', username)
            return query.get().updated
        return None

    @classmethod
    def get_contact_id(cls, username):
        if username not in (None, ''):
            query = cls.gql('WHERE handle = :1', username)
            return query.get().key().id()
        return None

    @classmethod
    def get_contact_status(cls, username):
        if username not in (None, ''):
            query = cls.gql('WHERE handle = :1', username)
            return query.get().status
        return None
Ejemplo n.º 27
0
class Winery(db.Model):
    """Models a winery"""
    name = db.StringProperty()
    description = db.TextProperty()
    rating = db.RatingProperty()
    email = db.EmailProperty()
    phone = db.PhoneNumberProperty()
    hours = db.ReferenceProperty(WeeklyHours)
    address = db.PostalAddressProperty()
    location = db.GeoPtProperty()
    image = db.BlobProperty()
Ejemplo n.º 28
0
class Reports(db.Model):
    user_id = db.StringProperty()
    nickname = db.StringProperty()
    unique_plate = db.StringProperty()
    state = db.StringProperty()
    plate = db.StringProperty()
    phone = db.PhoneNumberProperty()
    status = db.StringProperty()
    incident = db.StringProperty()
    notes = db.StringProperty()
    created = db.DateTimeProperty(auto_now_add=True)
Ejemplo n.º 29
0
class Billboard(db.Model):
    created = db.DateTimeProperty(auto_now_add=True)
    title = db.StringProperty()
    phone = db.PhoneNumberProperty()
    email = db.EmailProperty()
    image = db.BlobProperty()
    image_thumb = db.BlobProperty()
    image_medium = db.BlobProperty()
    image_small = db.BlobProperty()
    ads = db.ListProperty(db.Key)
    sponsors = db.ListProperty(db.Key)
Ejemplo n.º 30
0
class Doctor(db.Model):
    first_name = db.StringProperty(required=True)
    last_name = db.StringProperty(required=True)
    phone = db.PhoneNumberProperty(required=True)
    hospital = db.StringProperty()

    def to_message(self):
        """
        Turns the Doctor entity into a ProtoRPC object.
        """
        return DoctorPut(email=self.key().name(),
                         first_name=self.first_name,
                         last_name=self.last_name,
                         phone=self.phone,
                         hospital=self.hospital)

    def get_patients(self):
        """
        Builds a message consisting of all the doctor's patients
        Returns:
            An instance of PatientListResponse
        """
        patients = [patient.to_message() for patient in self.patient_set]
        return PatientListResponse(patients=patients)

    def get_alerts(self):
        """
        Builds a message consisting of all the doctor's patients alerts
        Returns:
            An instance of AlertListResponse
        """
        alerts = []
        for patient in self.patient_set:
            for alert in patient.alert_set:
                alerts.append(alert.to_message())
        return AlertListResponse(alerts=alerts)

    @classmethod
    def put_from_message(cls, message):
        """
        Inserts a doctor into the DB

        Args:
            message: A DoctorPut instance to be inserted, note that the email is used as the entity key
        Returns:
            The Doctor entity that was inserted.
        """
        new_doctor = cls(key_name=message.email,
                         first_name=message.first_name,
                         last_name=message.last_name,
                         phone=message.phone,
                         hospital=message.hospital)
        new_doctor.put()
        return new_doctor