Esempio n. 1
0
class Signature(Model):
    refers_to({'created_by': 'User'}, {'updated_by': 'User'})

    created_at = Field.datetime()
    updated_at = Field.datetime()

    #~ validation = {
    #~ 'created_by': {'allow': 'empty'},
    #~ 'updated_by': {'allow': 'empty'},
    #~ }

    default_values = {
        'created_by': lambda: get_user(),
        'updated_by': lambda: get_user(),
        'created_at': lambda: local_now(),
        'updated_at': lambda: local_now(),
    }

    update_values = {
        'updated_by': lambda: get_user(),
        'updated_at': lambda: local_now(),
    }

    fields_rw = {
        'created_by': False,
        'updated_by': False,
        'created_at': False,
        'updated_at': False,
    }
Esempio n. 2
0
class Comment(Model):
    belongs_to('user', 'post')

    text = Field.text()
    date = Field.datetime()

    default_values = {'user': lambda: session.auth.user.id, 'date': now}
    validation = {'text': {'presence': True}}
    fields_rw = {'user': False, 'post': False, 'date': False}
Esempio n. 3
0
class Post(Model):
    belongs_to('user')
    has_many('comments')

    title = Field()
    text = Field.text()
    date = Field.datetime()

    default_values = {'user': lambda: session.auth.user.id, 'date': now}
    validation = {'title': {'presence': True}, 'text': {'presence': True}}
    fields_rw = {'user': False, 'date': False}
Esempio n. 4
0
class A(Model):
    tablename = "a"

    name = Field()
    val = Field.int()
    fval = Field.float()
    text = Field.text()
    password = Field.password()
    d = Field.date()
    t = Field.time()
    dt = Field.datetime()
    json = Field.json()
Esempio n. 5
0
class Subscription(Model):
    belongs_to('person')

    name = Field()
    status = Field.int()
    expires_at = Field.datetime()

    STATUS = {'active': 1, 'suspended': 2, 'other': 3}

    @scope('expired')
    def get_expired(self):
        return self.expires_at < datetime.now()

    @scope('of_status')
    def filter_status(self, *statuses):
        if len(statuses) == 1:
            return self.status == self.STATUS[statuses[0]]
        return self.status.belongs(*[self.STATUS[v] for v in statuses])
Esempio n. 6
0
class Post(Signature):
    tablename = "posts"
    caption = Field.string(length=250)
    location = Field.string(length=250)
    photo = Field.upload()
    date = Field.datetime()

    default_values = {}

    validation = {
        'caption': {
            'presence': True
        },
        'location': {
            'presence': True
        }
    }

    @after_insert
    def send_notification(self, fields, rid):
        # user_id = recover from created post
        user_id = 5
        subscriptions = Subscription.by_user(user_id).select()

        message = {
            "title": "Post created",
            "body": "Este es el cuerpo de la notificación",
            "openUrl": "/#/"
        }

        for subscription in subscriptions:
            try:
                webpush(subscription_info=json.loads(
                    json.dumps(subscription.subscription)),
                        data=json.dumps(message),
                        vapid_private_key=VAPID_PRIVATE_KEY,
                        vapid_claims=VAPID_CLAIMS)
            except WebPushException as ex:
                if '410 Gone' in str(ex):
                    subscription.delete_record()
Esempio n. 7
0
class Sample(Model):
    str = Field()
    int = Field.int()
    float = Field.float()
    datetime = Field.datetime()
Esempio n. 8
0
class StepFiveThing(Model):
    name = Field()
    value = Field.int()
    created_at = Field.datetime()

    indexes = {'name': True, ('name', 'value'): True}
Esempio n. 9
0
class Appointment(Model):
    belongs_to('patient', 'doctor')
    date = Field.datetime()