Esempio n. 1
0
class YearGroupMailingList(MailingAddressIntern):
    __tablename__ = 'year_group_list'
    __table_args__ = {'schema': 'mail'}
    __mapper_args__ = {"polymorphic_identity": "year_group_list"}
    id = db.Column(db.Integer,
                   db.ForeignKey('mail.intern.id'),
                   primary_key=True)
    year_group_id = db.Column(db.Integer,
                              db.ForeignKey('general.year_group.id'),
                              primary_key=True,
                              unique=True)

    def __init__(self, year_group_id, name):
        MailingAddressIntern.__init__(self, name)
        self.year_group_id = year_group_id

    def entries(self, revue_year):
        yg = YearGroup.query.get(self.year_group_id)
        return [u.email() for u in yg.members(revue_year)]

    def get_local_address_year(self, revue_year):
        return self.get_local_address() + revue_year.get_mail_affix()

    def get_entries_per_year(self):
        result = []
        for y in revue.models.general.RevueYear.query.all():
            result.append({"year": y, "entries": self.entries(y)})
        return result
Esempio n. 2
0
class MailingAlias(MailingAddressIntern):
    __tablename__ = 'alias'
    __table_args__ = {'schema': 'mail'}
    __mapper_args__ = {"polymorphic_identity": "alias"}
    id = db.Column(db.Integer,
                   db.ForeignKey('mail.intern.id'),
                   primary_key=True)
    other_address_id = db.Column(db.Integer,
                                 db.ForeignKey('mail.address.id'),
                                 nullable=True)

    def other_address(self):
        return MailingAddress.query.get(self.other_address_id)
Esempio n. 3
0
class MailingAddressLocal(MailingAddress):
    # TODO: let inherit from Internal!
    __tablename__ = 'local_address'
    __table_args__ = {'schema': 'mail'}
    __mapper_args__ = {"polymorphic_identity": "local"}
    id = db.Column(db.Integer,
                   db.ForeignKey('mail.address.id'),
                   primary_key=True)
Esempio n. 4
0
class PersistentGroupMailingList(MailingAddressIntern):
    __tablename__ = 'persistent_group_list'
    __table_args__ = {'schema': 'mail'}
    __mapper_args__ = {"polymorphic_identity": "persistent_group_list"}
    id = db.Column(db.Integer,
                   db.ForeignKey('mail.intern.id'),
                   primary_key=True)
    persistent_group_id = db.Column(
        db.Integer,
        db.ForeignKey('general.persistent_group.id'),
        nullable=False,
        unique=True)

    def __init__(self, persistent_group_id, name):
        MailingAddressIntern.__init__(self, name)
        self.persistent_group_id = persistent_group_id

    def entries(self):
        pg = PersistentGroup.query.get(self.persistent_group_id)
        return [u.email() for u in pg.members()]
Esempio n. 5
0
class MailingList(MailingAddressIntern):
    __tablename__ = 'list'
    __table_args__ = {'schema': 'mail'}
    __mapper_args__ = {"polymorphic_identity": "list"}
    id = db.Column(db.Integer,
                   db.ForeignKey('mail.intern.id'),
                   primary_key=True)
    entries = relationship("MailingListEntry", backref="list")

    def __init__(self, name):
        MailingAddressIntern.__init__(self, name)
Esempio n. 6
0
class MailingAddressExtern(MailingAddress):
    __tablename__ = 'extern_address'
    __table_args__ = {'schema': 'mail'}
    __mapper_args__ = {"polymorphic_identity": "extern"}
    id = db.Column(db.Integer,
                   db.ForeignKey('mail.address.id'),
                   primary_key=True)
    address = db.Column(db.String(150), nullable=False)

    def __init__(self, address):
        MailingAddress.__init__(self)
        self.address = address

    def get_address(self):
        return self.address
Esempio n. 7
0
class MailingAddressIntern(MailingAddress):
    __tablename__ = 'intern'
    __table_args__ = {'schema': 'mail'}
    __mapper_args__ = {'polymorphic_identity': "intern"}
    id = db.Column(db.Integer,
                   db.ForeignKey('mail.address.id'),
                   primary_key=True)
    name = db.Column(db.String(50), nullable=True, unique=True)

    def __init__(self, name):
        self.name = name

    def get_address(self):
        return self.name + "@" + os.environ['EMAIL_SUFFIX']

    def get_local_address(self):
        return self.name