コード例 #1
0
ファイル: project.py プロジェクト: KiboNaku/EE461L_Project
class Tag(db.Document):
    tag_name = db.StringField(required=True)
    # limit number of types somewhere
    tag_type = db.StringField(required=True)

    def to_json(self):
        return {"name": self.tag_name, "type": self.tag_type}
コード例 #2
0
class User(Base):
    name = db.StringField(required=True)
    lname = db.StringField()
    email = db.StringField(required=True, unique=True)
    username = db.StringField(required=True, unique=True)
    password = db.StringField(required=True)

    def transform(self):
        return {
            'name': self.name,
            'username': self.username,
            'id': self.get_id(),
            'email': self.email
        }
コード例 #3
0
class Project( db.Document):
    name = db.StringField(max_length=255)
    description = db.StringField(max_length=255)
    users = db.ListField(db.ReferenceField('User'))
    experiments = db.ListField(db.ReferenceField('Experiment'))
    target_sets = db.ListField(db.ReferenceField('TargetSet'))

    def add_user(self,user):
        self.users.append(user)
        self.save()

    def add_experiment(self,experiment):
        self.experiments.append(experiment)
        self.save()

    def add_target_set(self, target_set):
        self.target_sets.append(target_set)
        self.save()
コード例 #4
0
class Task(Base):
    name = db.StringField(required=True)
    # title = db.StringField(required = True)
    createdBy = db.ReferenceField(User)
    assignedTo = db.ReferenceField(User)
    description = db.StringField()
    orderNumber = db.IntField()

    def transform(self):
        return {
            'id': self.get_id(),
            'name': self.name,
            'createdBy': self.createdBy.transform(),
            'assignedTo': self.assignedTo.transform(),
            'description': self.description,
            'orderNumber': self.orderNumber,
            'createdAt': self.createdAt,
            'updatedAt': self.updatedAt
        }
コード例 #5
0
ファイル: project.py プロジェクト: KiboNaku/EE461L_Project
class Project(db.Document):
    project_name = db.StringField(required=True, max_length=50)
    owner = db.ReferenceField("User", required=True)
    contributors = db.ListField(db.ReferenceField("User"))
    created_time = db.DateTimeField()
    last_edited_time = db.DateTimeField()
    description = db.StringField(max_length=1000)
    tags = db.ListField(db.ReferenceField("Tag"))
    total_cost = db.FloatField(required=True)
    wishlisted_hardware = db.ListField(db.ReferenceField("RentRecord"))
    rented_hardware = db.ListField(db.ReferenceField("AssignedRecord"))

    def to_json(self):

        contr_names = []
        for contr in self.contributors:
            contr_names.append(contr.username)

        # tags = []
        # for tag in self.tags:
        #     tags.append(tag.to_json())

        rented_hw = []
        for rented in self.rented_hardware:
            rented_hw.append(rented.to_json())

        json_data = {
            "id": str(self.pk),
            "name": self.project_name,
            "owner": self.owner.username,
            "created_time": str(self.created_time),
            "last_edited_time": str(self.last_edited_time),
            "description": self.description,
            "total_cost": self.total_cost,
            "contributors": contr_names,
            # "tags": tags,
            # "wishlisted_hardware": self.wishlisted_hardware,
            "rented_hardware": rented_hw
        }

        return json_data
コード例 #6
0
ファイル: user.py プロジェクト: KiboNaku/EE461L_Project
class User(db.Document):
    username = db.StringField(required=True)
    email = db.EmailField(required=True)
    password = db.StringField(required=True)
    rented_hardware = db.ListField(db.ReferenceField("RentRecord"))
    # cross reference list to project, one as owner, and one as contributor
    owned_projects = db.ListField(db.ReferenceField("Project"))
    contributed_projects = db.ListField(db.ReferenceField("Project"))
    # profile pic?
    # cross reference to billing, shipping address and payment info
    billing_addr = db.ReferenceField("Address")
    shipping_addr = db.ReferenceField("Address")
    payment_info = db.ReferenceField("PaymentInformation")

    # TODO: encrypt password

    def to_json(self):
        return {
            "username": self.username,
            "email": self.email
        }
コード例 #7
0
ファイル: user.py プロジェクト: KiboNaku/EE461L_Project
class Address(db.Document):
    first_name = db.StringField(required=True)
    last_name = db.StringField(required=True)
    phone_number = db.StringField(required=True)
    line1 = db.StringField(required=True)
    line2 = db.StringField()
    city = db.StringField(required=True)
    state = db.StringField(required=True)
    zipcode = db.IntField(required=True)
    default = db.BooleanField(required=True)
コード例 #8
0
class Hardware(db.Document):
    # price per unit, name, total num, num available, extra rate?
    hardware_name = db.StringField(required=True, max_length=50)
    price_per_unit = db.FloatField(required=True)
    total_count = db.IntField(required=True)
    available_count = db.IntField(required=True)
    extra_time_rate = db.FloatField()

    def to_json(self):
        return {
            "hardware_name": self.hardware_name,
            "price_per_unit": self.price_per_unit,
            "total_count": self.total_count,
            "available_count": self.available_count,
            "extra_time_rate": self.extra_time_rate
        }
コード例 #9
0
ファイル: experiment.py プロジェクト: aybuketurker/NEXT-psych
class Experiment(db.Document):
    exp_uid = db.StringField()
    exp_key = db.StringField()
    perm_key = db.StringField()
    app_id = db.StringField()
    name = db.StringField()
    description = db.StringField()
    instructions = db.StringField()
    debrief = db.StringField()
    params = db.DictField()
    status = db.StringField(default="staging")
    target_set = db.ReferenceField('TargetSet')
    query_tries = db.IntField()
    query_duration = db.IntField()
    info = db.DictField()

    # Use set's on any parameters that can be changed outside of a constructor.
    def set_status(self, status):
        self.status = status
        self.save()

    def set_exp_uid(self, exp_uid):
        self.exp_uid = exp_uid
        self.save()

    def set_exp_key(self, exp_key):
        self.exp_key = exp_key
        self.save()

    def set_perm_key(self, perm_key):
        self.perm_key = perm_key
        self.save()

    def set_info(self, info):
        self.info = info
        self.save()
コード例 #10
0
class Board(Base):
    name = db.StringField(required=True)
    owner = db.ReferenceField(User)
    isShared = db.BooleanField(default=False)
    members = db.ListField(db.ReferenceField(User))
    lists = db.ListField(db.ReferenceField(List))

    def transform(self):
        return {
            'name': self.name,
            'owner': self.owner.transform(),
            'isShared': self.isShared,
            'members': self.members,
            'lists': self.lists,
            'id': self.get_id(),
            'createdAt': self.createdAt,
            'updatedAt': self.updatedAt,
            'timeStamp': self.get_updatedAt()
        }

    def get_updatedAt(self):
        return (self.updatedAt - datetime(1970, 1, 1)).total_seconds()

    def get_meta(self):
        return {
            'name': self.name,
            'id': self.get_id(),
            'owner': self.owner.transform()
        }

    def getAll(self):
        return {
            'name': self.name,
            'owner': self.owner.transform(),
            'isShared': self.isShared,
            'members': [member.transform() for member in self.members],
            'lists': [item.getAll() for item in self.lists],
            'id': self.get_id(),
            'createdAt': self.createdAt,
            'updatedAt': self.updatedAt,
            'timeStamp': self.get_updatedAt()
        }
コード例 #11
0
class List(Base):
    name = db.StringField(required=True)
    tasklists = db.ListField(db.ReferenceField(Task))
    orderNumber = db.IntField()

    def transform(self):
        return {
            'id': self.get_id(),
            'tasklists': self.tasklists,
            'orderNumber': self.orderNumber,
            'name': self.name
        }

    def getAll(self):
        return {
            'id': self.get_id(),
            'tasklists': [task.transform() for task in self.tasklists],
            'orderNumber': self.orderNumber,
            'name': self.name
        }
コード例 #12
0
class User(db.Document, UserMixin):
    email = db.StringField(max_length=255, required=True)
    password = db.StringField(max_length=255)
    projects = db.ListField(db.ReferenceField('Project'))
    access_key_id = db.StringField(required=True)
    secret_access_key = db.StringField(required=True)
    aws_bucket_name = db.StringField(required=True)
    next_backend_global_host = db.StringField(required=True)

    def set_password(self, password):
        self.password = generate_password_hash(password)

    def check_password(self, password):
        return check_password_hash(self.password, password)

    def is_authenticated(self):
        if isinstance(self, AnonymousUserMixin):
            return False
        else:
            return True

    def is_active(self):
        return True

    def is_anonymous(self):
        if isinstance(self, AnonymousUserMixin):
            return True
        else:
            return False

    def get_id(self):
        return self.email

    def __repr__(self):
        return '<User %r>' % self.email

    def add_project(self, project):
        self.projects.append(project)
        self.save()
コード例 #13
0
ファイル: user.py プロジェクト: KiboNaku/EE461L_Project
class PaymentInformation(db.Document):
    first_name = db.StringField(required=True)
    last_name = db.StringField(required=True)
    card_number = db.StringField(required=True)
    expiration_month = db.IntField(required=True)
    expiration_year = db.IntField(required=True)
コード例 #14
0
class UserDetails(Base):
    user = db.ReferenceField(User)
    address = db.StringField()
    mobile = db.StringField()
コード例 #15
0
class UserToken(Base):
    token = db.StringField(required=True)
    expiresAt = db.DateTimeField(required=True,
                                 default=datetime.now() + timedelta(days=7))
    user = db.ReferenceField(User)
コード例 #16
0
ファイル: targets.py プロジェクト: aybuketurker/NEXT-psych
class Target(db.Document):
    target_id = db.StringField()
    primary_description = db.StringField()
    primary_type = db.StringField()
    alt_type = db.StringField()
    alt_description = db.StringField()
コード例 #17
0
ファイル: targets.py プロジェクト: aybuketurker/NEXT-psych
class TargetSet(db.Document):
    name = db.StringField()
    targets = db.ListField(db.ReferenceField(Target))