コード例 #1
0
class UserCache(db.Model):
    """
    DB Model that holds member IDs in cached. Relationship with User (1) to many
    """
    __tablename__ = "usercache"
    cache_id = db.Column(db.String(16), primary_key=True)
    active = db.Column(db.Boolean, default=False)
    friendly_id = db.Column(db.Text)
    # We want a backref here so that any updates to user as well as UserCache are reflected on both ends
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'))
    profiles = db.relationship('LinkedInRecord', secondary=Cache_Records, lazy=True,
                               backref=db.backref('caches', lazy=True))
    created = db.Column(db.DateTime, default=datetime.now())

    def __init__(self):
        self.cache_id = self.generate_string

    @property
    def generate_string(self):
        """

        :return: Random ascii letters (string)
        """
        l = ascii_letters
        holder = []
        for i in range(16):
            holder.append(l[random.randrange(0, len(l))])
        return ''.join(holder)
コード例 #2
0
class Meetings(UserMixin, db.Model):
	id = db.Column(db.Integer, primary_key=True)
	length = db.Column(db.String(7), index=True, default=datetime.utcnow)
	user_id = db.Column(db.Integer, db.ForeignKey('user.id'))

	def __repr__(self):
		return '<Meetings length {}>'.format(self.length)
コード例 #3
0
class Post(UserMixin, db.Model):
    id = db.Column(db.Integer, primary_key=True)
    body = db.Column(db.String(256))
    timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))

    def __repr__(self):
        return '<Posts {}>'.format(self.body)
コード例 #4
0
ファイル: models.py プロジェクト: beekarthik/JournalBot
class Post(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    date_posted = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
    sentiment = db.Column(db.Float, nullable=False)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)

    def __repr__(self):
        return f"Post('{self.title}', '{self.date_posted}')"
コード例 #5
0
class Summary(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    date = db.Column(db.Date, nullable=False)
    total_calories = db.Column(db.Integer, nullable=False)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)

    def __repr__(self):
        return f"Food('{self.date}', '{self.total_calories}')"
コード例 #6
0
ファイル: models.py プロジェクト: AvEgA-ChuDoTvoreC/FlaskApp
class Tag(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    text = db.Column(db.String(32), nullable=False)

    message_id = db.Column(db.Integer,
                           db.ForeignKey('message.id'),
                           nullable=False)
    message = db.relationship('Message', backref=db.backref('tags', lazy=True))
コード例 #7
0
class Message(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    userMessage = db.Column(db.String(512), index=True)
    username = db.Column(db.String(64), index=True)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    userFrom = db.Column(db.String(64), index=True)

    def __repr__(self):
        return '<User {}>'.format(self.username)
コード例 #8
0
class listOfMeetings(UserMixin, db.Model):
    id = db.Column(db.Integer, primary_key=True)
    meetingDate = db.Column(db.String)
    meetingTime = db.Column(db.String)
    descriptionOfMeeting = db.Column(db.String(150))
    participants = db.Column(db.String(64))
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))

    def __repr__(self):
        return '<Appointment with{}, on {} from {}>'.format(self.participants, self.meetingDate, self.meetingTime)
コード例 #9
0
class Contact(db.Model):

    __tablename__ = "contacts"

    id = db.Column(db.Integer, primary_key=True)
    is_email = db.Column(db.Boolean)
    is_website = db.Column(db.Boolean)
    is_personal = db.Column(db.Boolean)
    address = db.Column(db.Text)
    profile_id = db.Column(db.Integer, db.ForeignKey('profiles.member_id'))
コード例 #10
0
class UserActivity(db.Model):

    __tablename__ = "useractivity"

    id = db.Column(db.Integer, primary_key=True)
    active = db.Column(db.Boolean, default=True)
    created = db.Column(db.DateTime, default=datetime.now())
    # Tally from /profiles/
    new_records = db.Column(db.Integer, default=0)
    # Tally from /prune/
    borrowed_records = db.Column(db.Integer, default=0)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'))
コード例 #11
0
class Post(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    body = db.Column(db.String(256))
    timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))

    def __repr__(self):
        ''' This function formats post.

            Returns:
                Will return a format.
        '''
        return '<Posts {}>'.format(self.body)
コード例 #12
0
class Food(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(100), nullable=False)
    date = db.Column(db.Date, nullable=False)
    quantity = db.Column(db.Integer, nullable=False)
    calories = db.Column(db.Integer, nullable=False)
    carbon = protein = db.Column(db.Integer, nullable=True)
    protein = db.Column(db.Integer, nullable=True)
    fat = db.Column(db.Integer, nullable=True)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)

    def __repr__(self):
        return f"Food('{self.name}', '{self.date}','{self.calories}','{self.quantity}')"
コード例 #13
0
ファイル: models.py プロジェクト: ali10ma/TaskSent
class Event(db.Model):
    '''
    Event database
    @id unique id required for database
    @user_id user's id that the event is for
    @datetime date and time of the meeting
    @guest_name name input by the person requesting the meeting
    @description description of the meeting

    Changelog:
        5/3 Dylan: Initial Implementation
    '''

    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), index=True)
    datetime = db.Column(db.DateTime(), index=True)
    guest_name = db.Column(db.String(64), index=True)
    description = db.Column(db.String(256), default = '')

    def __repr(self):
        return f'<Datetime: {datetime}, Guest: {guest_name}>'
コード例 #14
0
class CustomHTMLCalendar(UserMixin, HTMLCalendar, db.Model):
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    # It's not being linked to the other table

    username = ""
    def set_username(self, user):
        self.username = user

    def formatday(self, day, weekday):
        """This method returns a line of html that is used to create the calendar. Each date of the calendar is a link that will open a new page and redirect you to google.com
           This link can be changed to redirect to another website later on.

           Args:
                day (String): The date, such as 1, 2, 3 etc.
                weekday (String): The day of the week such as mon, tue, wed, etc.
           Returns:
                   A string corresponding to the html code that should be written for each day in the month. If the day is 0, this method will return html code to be blank.
                   If the day is within the date range of the month, the method will return the html to represent the day of the month with each day being a link.
        """
        if day == 0:
            return '<td class="noday">&nbsp;</td>' # day outside month
        else:
            return '<td class="%s"><a href="%s" target="_blank">%d</a></td>' % (self.cssclasses[weekday], "{}/{}".format(self.username, day), day)
コード例 #15
0
class OAuth(db.Model, OAuthConsumerMixin):
    """Contain the associated Oauth."""

    provider_user_id = db.Column(db.String(256), unique=True)
    user_id = db.Column(db.Integer, db.ForeignKey(User.id))
    user = db.relationship(User)
コード例 #16
0
import random
from datetime import date, datetime
from string import ascii_letters

from flask_login import UserMixin
from itsdangerous import (TimedJSONWebSignatureSerializer
                          as Serializer, BadSignature, SignatureExpired)
from werkzeug.security import check_password_hash, generate_password_hash

from app_folder import app_run, db
from app_folder import login

User_Records = db.Table('user_records',
                        db.Column('user_id', db.Integer, db.ForeignKey('users.id'), primary_key=True),
                        db.Column('member_id', db.Integer, db.ForeignKey('profiles.member_id'), primary_key=True)
                        )

Cache_Records = db.Table('cache_records',
                         db.Column('cache_id', db.String(16), db.ForeignKey('usercache.cache_id'), primary_key=True),
                         db.Column('member_id', db.Integer, db.ForeignKey('profiles.member_id'), primary_key=True)
                         )


class LinkedInRecord(db.Model):
    """
    DB Model for Profile Data
    """
    __tablename__ = 'profiles'
    member_id = db.Column(db.Integer, primary_key=True)
    first_name = db.Column(db.String(128))
    last_name = db.Column(db.String(128))
コード例 #17
0
class Availability(UserMixin, db.Model):
    id = db.Column(db.Integer, primary_key=True)
    from_time = db.Column(db.String(7), index=True, default=datetime.utcnow)
    to_time = db.Column(db.String(7), index=True, default=datetime.utcnow)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))

    def __repr__(self):
        return '<Availability from  {} to {}>'.format(self.from_time,self.to_time)

    # calculates the endtime of an appointment based off of the start time and meeting duration
    def calculateEndTime(self, apptStartTime, meetingLength):
        splitTime = apptStartTime.split(':')
        splitMeetingminutes = meetingLength.split(':')
        if int(splitMeetingminutes[0]) == 1:
            endHour = int(splitTime[0]) + 1
            endTime = str(endHour) + ':' + str(splitTime[1])
        else:
            endMinutes = int(splitTime[1]) + int(splitMeetingminutes[1])
            if endMinutes >= 60:
                endMinutes = endMinutes - 60
                endHour = int(splitTime[0]) + 1
                if endMinutes < 10 and endMinutes != 0:
                    endTime = str(endHour) + ':0' + str(endMinutes)
                elif endMinutes == 0:
                    endTime = str(endHour) + ':00'
                else:
                    endTime = str(endHour) + ':' + str(endMinutes)
            else:
                endHour = splitTime[0]
                endTime = str(endHour) + ':' + str(endMinutes)
        return endTime

    # checks to see if the endtime is not past the user's available times
    def in_range(self, availableEndTime, apptEndTime):
        splitAvailEnd = availableEndTime.split(':')
        splitApptEnd = apptEndTime.split(':')
        # comparing end times of availability and appointment
        endAvailInt = int(splitAvailEnd[0]) * 100 + int(splitAvailEnd[1])
        endApptInt = int(splitApptEnd[0]) * 100 + int(splitApptEnd[1])
        if endAvailInt < endApptInt:
            return False
        else:
            return True


    # add to an array to hold all the possible meeting intervals
    def set_available_times(
        self,
        start_time,
        incrementAmount,
        end_time,
        ):
        availAppts = []
        apptEndTime = self.calculateEndTime(start_time, incrementAmount)
        apptStartTime = start_time
        while self.in_range(end_time, apptEndTime):
            appointmentTime = apptStartTime + ' - ' + apptEndTime
            availAppts.append((appointmentTime, appointmentTime))
            apptStartTime = apptEndTime
            apptEndTime = self.calculateEndTime(apptStartTime, incrementAmount)
        return availAppts

    def remove_busy_times(self, apptArray, listOfMadeMeetingsArray):
        #this gets an array of the appointments that that user has on that day
        something = []
        for times in listOfMadeMeetingsArray:
            if ((times.meetingTime, times.meetingTime)) in apptArray:
                apptArray.remove((times.meetingTime, times.meetingTime))
        return apptArray