예제 #1
0
class Cron(models.Model):
    _name = "base.cron"

    name =      fields.Char(max_length=255, required=True)
    status =    fields.Char(max_length=32, required=True)
    nextcall =  fields.DateTime(required=True)
    interval =  fields.Integer(required=True)
    interval_type = fields.Selection(required=True, choices=["seconds", "minutes", "hours", "days", "weeks", "months", "years"])
    user_id =   fields.Many2one("base.user", required=True)
    code =      fields.Char(required=True)

    # Restart scheduler whenever
    # a job is either created, 
    # modified or deleted
    
    def write(self, *args, **kwargs):
        super().write(*args, **kwargs)
        self._reset_scheduler()
        return

    def create(self, *args, **kwargs):
        result = super().create(*args, **kwargs)
        self._reset_scheduler()
        return result

    def unlink(self, *args, **kwargs):
        result = super().unlink(*args, **kwargs)
        self._reset_scheduler()
        return result

    def _reset_scheduler(self):
        from olaf.cron import Scheduler
        sch = Scheduler()
        sch.reset()
예제 #2
0
class User(models.Model):
    _name = "base.user"

    name = fields.Char(required=True, max_length=255)
    email = fields.Char(unique=True)
    password = fields.Char(exclude=True,
                           required=True,
                           setter="generate_password")
    group_ids = fields.Many2many("base.group",
                                 relation="base.user.group.rel",
                                 field_a="user_oid",
                                 field_b="group_oid")

    def say_my_name(self):
        for rec in self:
            print("Hi, my name is {}!".format(rec.name))
        return

    def say_our_names(self):
        names = [rec.name for rec in self]
        print("Hi, we're {}".format(", ".join(names)))
        return

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

    def generate_password(self, plain_password):
        return generate_password_hash(plain_password)
예제 #3
0
class ModelAccess(models.Model):
    _name = "base.model.access"

    name = fields.Char(unique=True)
    model = fields.Char(required=True)
    group_id = fields.Many2one("base.group")
    allow_read = fields.Boolean(required=True, default=False)
    allow_write = fields.Boolean(required=True, default=False)
    allow_create = fields.Boolean(required=True, default=False)
    allow_unlink = fields.Boolean(required=True, default=False)
예제 #4
0
class tModel(Model):
    _name = "TestModel"

    char_max_req = fields.Char(max_length=10, required=True)
    char_with_default = fields.Char(default="Default")
    integer = fields.Integer()
    selection = fields.Selection(choices=["a", "b", "c"])
    m2o = fields.Many2one("TestCoModel")
    m2m = fields.Many2many("TestTagModel",
                           relation="test.model.tag.rel",
                           field_a="a_oid",
                           field_b="b_oid")
    boolean = fields.Boolean()
    date_time = fields.DateTime()
예제 #5
0
class DocumentLevelSecurityRule(models.Model):
    _name = "base.dls"

    name = fields.Char(required=True)
    model = fields.Char(required=True)
    query = fields.Char(required=True)
    group_ids = fields.Many2many("base.group",
                                 relation="base.group.dls.rel",
                                 field_a="dls_oid",
                                 field_b="group_oid")
    on_read = fields.Boolean(required=True, default=True)
    on_write = fields.Boolean(requried=True, default=True)
    on_create = fields.Boolean(required=True, default=True)
    on_unlink = fields.Boolean(required=True, default=True)
예제 #6
0
class tModel(models.Model):
    _name = "test.models.model"

    name = fields.Char()
    country = fields.Char(default="Argentina")
    age = fields.Integer()
    boolean = fields.Boolean()
    cascade_id = fields.Many2one("test.models.comodel", ondelete="CASCADE")
    restrict_id = fields.Many2one("test.models.comodel", ondelete="RESTRICT")
    setnull_id = fields.Many2one("test.models.comodel", ondelete="SET NULL")
    onetomany_ids = fields.One2many("test.models.comodel", "inverse_id")
    manytomany_ids = fields.Many2many("test.models.comodel",
                                      relation="test.model.comodel.rel",
                                      field_a="a_oid",
                                      field_b="b_oid")
예제 #7
0
class tModel(models.Model):
    _name = "test.load.model"

    name = fields.Char()
    age = fields.Integer()
    boolean = fields.Boolean()
    manytoone_id = fields.Many2one("test.load.comodel")
    onetomany_ids = fields.One2many("test.load.comodel", "inverse_id")
    manytomany_ids = fields.Many2many(
        "test.load.comodel", relation="test.load.comodel.rel", field_a="a_oid", field_b="b_oid")
예제 #8
0
class tTagModel(Model):
    _name = "TestTagModel"
    name = fields.Char(unique=True)
예제 #9
0
class tCoModel(Model):
    _name = "TestCoModel"
    char = fields.Char()
    o2m = fields.One2many('TestModel', 'm2o')
예제 #10
0
class tCoModel(models.Model):
    _name = "test.models.comodel"

    name = fields.Char(required=True)
    inverse_id = fields.Many2one("test.models.model")
예제 #11
0
파일: user.py 프로젝트: bellaroid/olaf
class Group(models.Model):
    _name = "base.group"

    name = fields.Char(required=True, max_length=255)
    acl_ids = fields.One2many("base.acl", inversed_by="group_id")
    dls_ids = fields.Many2many("base.dls", relation="base.group.dls.rel", field_a="group_oid", field_b="dls_oid")
예제 #12
0
class Module(models.Model):
    _name = "base.module"

    name = fields.Char(unique=True)
    status = fields.Char()
예제 #13
0
class Group(models.Model):
    _name = "base.group"

    name = fields.Char(required=True, max_length=255)
    model_access_ids = fields.One2many("base.model.access",
                                       inversed_by="group_id")
예제 #14
0
class ModelData(models.Model):
    _name = "base.model.data"

    name = fields.Char(required=True)
    model = fields.Char(required=True)
    res_id = fields.Identifier(required=True)