예제 #1
0
파일: models.py 프로젝트: youandvern/encomp
class Project(db.Document):
    _id         =   db.ObjectIdField()
    project_name    =   db.StringField( max_length=100 )
    description     =   db.StringField( max_length=255 )
    user_id         =   db.ObjectIdField()

    meta = {'db_alias': 'default'}
예제 #2
0
파일: models.py 프로젝트: youandvern/encomp
class DeletedCalc(db.Document):
    _id             =   db.ObjectIdField()
    calc_name       =   db.StringField( max_length=100 )
    description     =   db.StringField( max_length=250 )
    calc_type_id    =   db.ObjectIdField()
    project_id      =   db.ObjectIdField( )
    calc_input_dict =   db.DictField()

    meta = {'db_alias': 'default'}
예제 #3
0
파일: models.py 프로젝트: youandvern/encomp
class CalcInput(db.Document):
    _id             =   db.ObjectIdField()
    calc_name       =   db.StringField( max_length=100 )
    description     =   db.StringField( max_length=250 )
    calc_type_id    =   db.ObjectIdField()
    project_id      =   db.ObjectIdField( )
    calc_input_dict =   db.DictField()
    left_header     =   db.StringField( max_length=250 )
    center_header   =   db.StringField( max_length=250 )
    right_header    =   db.StringField( max_length=250 )

    meta = {'db_alias': 'default'}
예제 #4
0
class AISCSections2L(db.Document):
    _id         =   db.ObjectIdField()
    Type        =   db.StringField()
    EDI_Std_Nomenclature  = db.StringField()
    AISC_name   =   db.StringField()
    T_F         =   db.StringField()
    W           =   db.FloatField( )
    A           =   db.FloatField( )
    d           =   db.FloatField( )
    b           =   db.FloatField( )
    t           =   db.FloatField( )
    y            =   db.FloatField( )
    yp           =   db.FloatField( )
    Ix            =   db.FloatField( )
    Zx            =   db.FloatField( )
    Sx            =   db.FloatField( )
    rx            =   db.FloatField( )
    Iy            =   db.FloatField( )
    Zy            =   db.FloatField( )
    Sy            =   db.FloatField( )
    ry            =   db.FloatField( )
    ro           =   db.FloatField( )
    H           =   db.FloatField( )
    blt            =   db.FloatField( )

    meta = {'db_alias': 'calc_db', 'collection': 'aisc_sections_2L'}
예제 #5
0
class AlumShapesWF(db.Document):
    _id         =   db.ObjectIdField()
    Size        =   db.StringField()
    Type        =   db.StringField()
    d           =   db.FloatField( )
    bf           =   db.FloatField( )
    tf           =   db.FloatField( )
    tw           =   db.FloatField( )
    R1           =   db.FloatField( )
    R2           =   db.FloatField( )
    d1           =   db.FloatField( )
    A           =   db.FloatField( )
    W            =   db.FloatField( )
    Ix            =   db.FloatField( )
    Sx            =   db.FloatField( )
    Zx            =   db.FloatField( )
    rx            =   db.FloatField( )
    Iy            =   db.FloatField( )
    Sy            =   db.FloatField( )
    Zy            =   db.FloatField( )
    ry            =   db.FloatField( )
    Cw            =   db.FloatField( )
    J            =   db.FloatField( )

    meta = {'db_alias': 'calc_db', 'collection': 'alum_shapes_wf'}
예제 #6
0
class Message(db.Document):
    from_user = db.ReferenceField(User, db_field="fu", reverse_delete_rule=CASCADE)
    to_user = db.ReferenceField(User, db_field="tu", default=None, reverse_delete_rule=CASCADE)
    text = db.StringField(db_field="t", max_length=1024)
    live = db.BooleanField(db_field="l", default=True)
    create_date = db.LongField(db_field="c", default=now())
    parent = db.ObjectIdField(db_field="p", default=None)
    images = db.ListField(db_field="ii")
    message_type = db.IntField(db_field="mt", default=POST, choices=MESSAGE_TYPE)
    
    @property
    def text_linkified(self):
        return linkify(self.text)        
    
    @property
    def human_timestamp(self):
        return ms_stamp_humanize(self.create_date)
        
    @property
    def comments(self):
        return Message.objects.filter(parent=self.id, message_type=COMMENT).order_by('create_date')

    @property
    def likes(self):
        return Message.objects.filter(parent=self.id, message_type=LIKE).order_by('-create_date')

    def post_imgsrc(self, image_ts, size):
        if AWS_BUCKET:
            return os.path.join(AWS_CONTENT_URL, AWS_BUCKET, 'posts', '%s.%s.%s.png' % (self.id, image_ts, size))
        else:
            return url_for('static', filename=os.path.join(STATIC_IMAGE_URL, 'posts', '%s.%s.%s.png' % (self.id, image_ts, size)))

    meta = {
        'indexes': [('from_user', 'to_user', '-create_date', 'message_type', 'live')]
    }
예제 #7
0
class Course(db.Document):
    _id = db.ObjectIdField()
    courseID = db.StringField(max_length=10, unique=True)
    title = db.StringField(max_length=10)
    description = db.StringField(max_length=255)
    credits = db.IntField()
    term = db.StringField(max_length=30)
예제 #8
0
파일: models.py 프로젝트: youandvern/encomp
class CalcType(db.Document):
    _id             =   db.ObjectIdField()
    type_name       =   db.StringField( max_length=100, unique=True)
    description     =   db.StringField( max_length=255 )
    file_name       =   db.StringField()

    meta = {'db_alias': 'default'}
예제 #9
0
class AISCSectionsRectangular(db.Document):
    _id         =   db.ObjectIdField()
    Type        =   db.StringField()
    EDI_Std_Nomenclature  = db.StringField()
    AISC_name   =   db.StringField()
    T_F         =   db.StringField()
    W           =   db.FloatField( )
    A           =   db.FloatField( )
    Ht            =   db.FloatField( )
    h           =   db.FloatField( )
    B           =   db.FloatField( )
    b           =   db.FloatField( )
    tnom            =   db.FloatField( )
    tdes            =   db.FloatField( )
    Ix            =   db.FloatField( )
    Zx            =   db.FloatField( )
    Sx            =   db.FloatField( )
    rx            =   db.FloatField( )
    Iy            =   db.FloatField( )
    Zy            =   db.FloatField( )
    Sy            =   db.FloatField( )
    ry            =   db.FloatField( )
    J            =   db.FloatField( )
    C            =   db.FloatField( )
    bltdes            =   db.FloatField( )
    hltdes            =   db.FloatField( )

    meta = {'db_alias': 'calc_db', 'collection': 'aisc_sections_rectangular'}
예제 #10
0
class Feed(db.Document):
    user = db.ReferenceField(User, db_field="u", reverse_delete_rule=CASCADE)
    message = db.ReferenceField(Message, db_field="m", reverse_delete_rule=CASCADE)
    parent = db.ObjectIdField(db_field="p", default=None)
    create_date = db.IntField(db_field="cd", default=now())
    
    meta = {
        'indexes': [('user', 'parent', '-create_date')]
    }
예제 #11
0
class FaASCE710(db.Document):
    _id         =   db.ObjectIdField()
    SiteClass   =   db.StringField( max_length=10 )
    ss25        =   db.FloatField( )
    ss50        =   db.FloatField( )
    ss75        =   db.FloatField( )
    ss100       =   db.FloatField( )
    ss125       =   db.FloatField( )

    meta = {'db_alias': 'calc_db', 'collection': 'FaASCE710'}
예제 #12
0
class FvASCE716(db.Document):
    _id         =   db.ObjectIdField()
    SiteClass   =   db.StringField( max_length=10 )
    s11        =   db.FloatField( )
    s12        =   db.FloatField( )
    s13        =   db.FloatField( )
    s14       =   db.FloatField( )
    s15       =   db.FloatField( )
    s16       =   db.FloatField( )

    meta = {'db_alias': 'calc_db', 'collection': 'FvASCE716'}
예제 #13
0
class Event(db.Document):
    name = db.StringField(required=True)
    place = db.StringField(required=True)
    location = db.PointField(required=True)
    start_datetime = db.DateTimeField(required=True)
    end_datetime = db.DateTimeField(required=True)
    event_photo = db.StringField()
    description = db.StringField(min_length=50, required=True)
    host = db.ObjectIdField(required=True)
    cancel = db.BooleanField(default=False)
    attendees = db.ListField(db.ReferenceField(User))
예제 #14
0
class AISCSectionsL(db.Document):
    _id         =   db.ObjectIdField()
    Type        =   db.StringField()
    EDI_Std_Nomenclature  = db.StringField()
    AISC_name   =   db.StringField()
    T_F         =   db.StringField()
    W           =   db.FloatField( )
    A           =   db.FloatField( )
    d           =   db.FloatField( )
    b           =   db.FloatField( )
    t           =   db.FloatField( )
    kdes           =   db.FloatField( )
    kdet           =   db.FloatField( )
    x           =   db.FloatField( )
    y           =   db.FloatField( )
    xp           =   db.FloatField( )
    yp           =   db.FloatField( )
    Ix            =   db.FloatField( )
    Zx            =   db.FloatField( )
    Sx            =   db.FloatField( )
    rx            =   db.FloatField( )
    Iy            =   db.FloatField( )
    Zy            =   db.FloatField( )
    Sy            =   db.FloatField( )
    ry            =   db.FloatField( )
    Iz           =   db.FloatField( )
    rz           =   db.FloatField( )
    Sz           =   db.FloatField( )
    J            =   db.FloatField( )
    Cw            =   db.FloatField( )
    ro           =   db.FloatField( )
    H           =   db.FloatField( )
    Iw           =   db.FloatField( )
    zA           =   db.FloatField( )
    zB           =   db.FloatField( )
    zC           =   db.FloatField( )
    wA           =   db.FloatField( )
    wB           =   db.FloatField( )
    wC           =   db.FloatField( )
    SwA           =   db.FloatField( )
    SwB           =   db.FloatField( )
    SwC           =   db.FloatField( )
    SzA           =   db.FloatField( )
    SzB           =   db.FloatField( )
    SzC           =   db.FloatField( )
    PA           =   db.FloatField( )
    PA2           =   db.FloatField( )
    PB           =   db.FloatField( )
    blt            =   db.FloatField( )
    tana            =   db.FloatField( )

    meta = {'db_alias': 'calc_db', 'collection': 'aisc_sections_L'}
예제 #15
0
class AISCSectionsChannel(db.Document):
    _id         =   db.ObjectIdField()
    Type        =   db.StringField()
    EDI_Std_Nomenclature  = db.StringField()
    AISC_name   =   db.StringField()
    T_F         =   db.StringField()
    W           =   db.FloatField( )
    A           =   db.FloatField( )
    d           =   db.FloatField( )
    ddet           =   db.FloatField( )
    bf            =   db.FloatField( )
    bfdet           =   db.FloatField( )
    tw           =   db.FloatField( )
    twdet           =   db.FloatField( )
    tf            =   db.FloatField( )
    tfdet            =   db.FloatField( )
    kdes           =   db.FloatField( )
    kdet           =   db.FloatField( )
    x           =   db.FloatField( )
    eo           =   db.FloatField( )
    xp           =   db.FloatField( )
    Ix            =   db.FloatField( )
    Zx            =   db.FloatField( )
    Sx            =   db.FloatField( )
    rx            =   db.FloatField( )
    Iy            =   db.FloatField( )
    Zy            =   db.FloatField( )
    Sy            =   db.FloatField( )
    ry            =   db.FloatField( )
    J            =   db.FloatField( )
    Cw            =   db.FloatField( )
    Wno           =   db.FloatField( )
    Sw1           =   db.FloatField( )
    Sw2           =   db.FloatField( )
    Sw3           =   db.FloatField( )
    Qf           =   db.FloatField( )
    Qw           =   db.FloatField( )
    ro           =   db.FloatField( )
    H           =   db.FloatField( )
    rts           =   db.FloatField( )
    ho           =   db.FloatField( )
    PA           =   db.FloatField( )
    PB           =   db.FloatField( )
    PC           =   db.FloatField( )
    PD           =   db.FloatField( )
    T           =   db.FloatField( )
    WGi           =   db.FloatField( )
    blt            =   db.FloatField( )
    hltw            =   db.FloatField( )
    twdetl2           =   db.FloatField( )

    meta = {'db_alias': 'calc_db', 'collection': 'aisc_sections_channel'}
예제 #16
0
class User(db.Document):
    _id = db.ObjectIdField()
    id = db.IntField(unique=True)
    first_name = db.StringField(max_length=50)
    last_name = db.StringField(max_length=50)
    email = db.StringField(max_length=30, unique=True)
    password = db.StringField()

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

    def get_password(self, password):
        return check_password_hash(self.password, password)
예제 #17
0
class Message(db.Document):
    from_user = db.ReferenceField(User, db_field="fu", reverse_delete_rule=CASCADE)
    
    #optional, if not set, from_user is broadcasting. If set message sent to specific person
    to_user = db.ReferenceField(User, db_field="tu", default=None, reverse_delete_rule=CASCADE)
    text = db.StringField(db_field="t", max_length=300)
    live = db.BooleanField(db_field="l", default=None)
    create_date = db.IntField(db_field="cd", default=now())
    parent = db.ObjectIdField(db_field="p", default=None)
    image = db.StringField(db_field="i", default=None)
    
    meta = {
        'indexes': [('from_user', 'to_user', '-create_date', 'parent', 'live')]
    }
예제 #18
0
class Notification(db.Document):
    name = db.StringField(db_field="n")
    user_id = db.ObjectIdField(db_field='uid')
    payload_json = db.StringField(db_field="pj")

    def get_message(self):
        return json.loads(str(self.payload_json))

    def save_tail(self):
        pre = Tail(pre=self.get_message())
        pre.save()
        return pre.pre

    meta = {'indexes': ['user_id']}
예제 #19
0
class File_Record(db.Document):
    #store email
    from_user = db.ReferenceField(User, db_field="rfu")
    #store storecodes
    to_store = db.ReferenceField(Store, db_field="rt")
    date_time = db.StringField(db_field="dt")
    int_time = db.LongField(db_field="it")
    prize = db.StringField()
    size = db.StringField()
    descp = db.StringField()
    paid = db.BooleanField()
    type = db.StringField()
    parent = db.ObjectIdField(db_field="p")

    meta = {'indexes': ['type', 'to_store', 'from_user', 'int_time']}
예제 #20
0
class AlumShapesCircular(db.Document):
    _id         =   db.ObjectIdField()
    Size        =   db.StringField()
    OD           =   db.FloatField( )
    ID           =   db.FloatField( )
    t           =   db.FloatField( )
    A           =   db.FloatField( )
    W            =   db.FloatField( )
    I            =   db.FloatField( )
    S            =   db.FloatField( )
    Z           =   db.FloatField( )
    r            =   db.FloatField( )
    J           =   db.FloatField( )
    Rblt           =   db.FloatField( )

    meta = {'db_alias': 'calc_db', 'collection': 'alum_shapes_circular'}
예제 #21
0
class AISCSectionsT(db.Document):
    _id         =   db.ObjectIdField()
    Type        =   db.StringField()
    EDI_Std_Nomenclature  = db.StringField()
    AISC_name   =   db.StringField()
    T_F         =   db.StringField()
    W           =   db.FloatField( )
    A           =   db.FloatField( )
    d           =   db.FloatField( )
    ddet           =   db.FloatField( )
    bf            =   db.FloatField( )
    bfdet           =   db.FloatField( )
    tw           =   db.FloatField( )
    twdet           =   db.FloatField( )
    tf            =   db.FloatField( )
    tfdet            =   db.FloatField( )
    kdes           =   db.FloatField( )
    kdet           =   db.FloatField( )
    y           =   db.FloatField( )
    yp           =   db.FloatField( )
    Ix            =   db.FloatField( )
    Zx            =   db.FloatField( )
    Sx            =   db.FloatField( )
    rx            =   db.FloatField( )
    Iy            =   db.FloatField( )
    Zy            =   db.FloatField( )
    Sy            =   db.FloatField( )
    ry            =   db.FloatField( )
    J            =   db.FloatField( )
    Cw            =   db.FloatField( )
    ro           =   db.FloatField( )
    H           =   db.FloatField( )
    PA           =   db.FloatField( )
    PB           =   db.FloatField( )
    PC           =   db.FloatField( )
    PD           =   db.FloatField( )
    WGi           =   db.FloatField( )
    Dlt            =   db.FloatField( )
    bfl2tf            =   db.FloatField( )
    twdetl2           =   db.FloatField( )

    meta = {'db_alias': 'calc_db', 'collection': 'aisc_sections_T'}
예제 #22
0
class AlumShapesRectangular(db.Document):
    _id         =   db.ObjectIdField()
    Name        =   db.StringField()
    Type        =   db.StringField()
    d           =   db.FloatField( )
    b           =   db.FloatField( )
    t           =   db.FloatField( )
    W            =   db.FloatField( )
    A           =   db.FloatField( )
    Ix            =   db.FloatField( )
    Sx            =   db.FloatField( )
    Zx            =   db.FloatField( )
    rx            =   db.FloatField( )
    Iy            =   db.FloatField( )
    Sy            =   db.FloatField( )
    Zy            =   db.FloatField( )
    ry            =   db.FloatField( )
    J            =   db.FloatField( )

    meta = {'db_alias': 'calc_db', 'collection': 'alum_shapes_rectangular'}
예제 #23
0
class AlumShapesChannel(db.Document):
    _id         =   db.ObjectIdField()
    Size        =   db.StringField()
    Type        =   db.StringField()
    d           =   db.FloatField( )
    b           =   db.FloatField( )
    tftip           =   db.FloatField( )
    tf           =   db.FloatField( )
    tw           =   db.FloatField( )
    R1           =   db.FloatField( )
    R2           =   db.FloatField( )
    d1           =   db.FloatField( )
    A           =   db.FloatField( )
    W            =   db.FloatField( )
    Ix            =   db.FloatField( )
    Sx            =   db.FloatField( )
    rx            =   db.FloatField( )
    Iy            =   db.FloatField( )
    Sy            =   db.FloatField( )
    ry            =   db.FloatField( )
    x            =   db.FloatField( )

    meta = {'db_alias': 'calc_db', 'collection': 'alum_shapes_channel'}
예제 #24
0
class AlumShapesL(db.Document):
    _id         =   db.ObjectIdField()
    Size        =   db.StringField()
    Type        =   db.StringField()
    d           =   db.FloatField( )
    b           =   db.FloatField( )
    t           =   db.FloatField( )
    R1           =   db.FloatField( )
    R2           =   db.FloatField( )
    W            =   db.FloatField( )
    A           =   db.FloatField( )
    Ix            =   db.FloatField( )
    Sx            =   db.FloatField( )
    rx            =   db.FloatField( )
    y            =   db.FloatField( )
    Iy            =   db.FloatField( )
    Sy            =   db.FloatField( )
    ry            =   db.FloatField( )
    x            =   db.FloatField( )
    Iz            =   db.FloatField( )
    rz            =   db.FloatField( )
    a            =   db.FloatField( )

    meta = {'db_alias': 'calc_db', 'collection': 'alum_shapes_L'}
예제 #25
0
class Tail(db.Document):
    pre = db.StringField(db_field="pre")
    noti = db.ObjectIdField()
    user = db.ObjectIdField()
예제 #26
0
class SendNumber(db.Document):
    UNPAID = 0
    PAID = 1

    PAID = ((UNPAID, 'UP'), (PAID, 'PD'))

    name = db.StringField(db_field="name")
    number_time = db.IntField(db_field="nt")
    for_who = db.ObjectIdField(db_field="fw")
    date_time = db.IntField(db_field="dt")
    readable_date = db.StringField(db_field="rdt")
    paid = db.IntField(db_field="p", choice=PAID, default=UNPAID)
    sale = db.StringField(db_field="s")

    #add 1 each time it was called
    def add_time(self):
        self.number_time = self.number_time + 1
        self.save()

    # add up record by one
    @staticmethod
    def set_record(name, object_id):
        rec = SendNumber.objects.filter(name=name, for_who=object_id).first()
        if rec:
            rec.add_time()
            return rec
        else:
            rec = SendNumber(name=name, for_who=object_id,
                             number_time=1).save()
            return rec

    def get_rec(self):
        return self.number_time

    #create a total new record
    #of course this will have the same name only different would be date
    @staticmethod
    def attime_record(name, object_id, total, sale):

        rec = SendNumber(name=name,
                         for_who=object_id,
                         number_time=total,
                         date_time=now(),
                         readable_date=f'{human_date(now())}',
                         sale=sale)
        rec.save()
        return rec

    #create a total record which add up with a record that has the same name
    #or create one if it doesn't exists
    @staticmethod
    def sum_record(name, object_id, total):
        rec = SendNumber.objects.filter(name=name, for_who=object_id).first()
        if rec:
            rec.number_time = rec.number_time + total
            rec.save()
        else:
            rec = SendNumber(
                name=name,
                for_who=object_id,
                number_time=total,
            ).save()

    meta = {'indexes': ['name', '-readable_date']}