示例#1
0
    # - in_room_acls (RoomPrincipal.local_group)
    # - in_session_acls (SessionPrincipal.local_group)
    # - in_settings_acls (SettingPrincipal.local_group)
    # - in_track_acls (TrackPrincipal.local_group)

    def __repr__(self):
        return f'<LocalGroup({self.id}, {self.name})>'

    @property
    def proxy(self):
        """Return a GroupProxy wrapping this group."""
        from indico.modules.groups import GroupProxy
        return GroupProxy(self.id, _group=self)


group_members_table = db.Table('group_members',
                               db.metadata,
                               db.Column('group_id',
                                         db.Integer,
                                         db.ForeignKey('users.groups.id'),
                                         primary_key=True,
                                         nullable=False,
                                         index=True),
                               db.Column('user_id',
                                         db.Integer,
                                         db.ForeignKey('users.users.id'),
                                         primary_key=True,
                                         nullable=False,
                                         index=True),
                               schema='users')
示例#2
0
# Indico is free software; you can redistribute it and/or
# modify it under the terms of the MIT License; see the
# LICENSE file for more details.

from __future__ import unicode_literals

from indico.core.db import db


favorite_room_table = db.Table(
    'favorite_rooms',
    db.metadata,
    db.Column(
        'user_id',
        db.Integer,
        db.ForeignKey('users.users.id'),
        primary_key=True,
        nullable=False,
        index=True
    ),
    db.Column(
        'room_id',
        db.Integer,
        db.ForeignKey('roombooking.rooms.id'),
        primary_key=True,
        nullable=False,
        index=True
    ),
    schema='roombooking'
)
示例#3
0
    # - revisions (EditingRevision.tags)

    @property
    def verbose_title(self):
        """Properly formatted title, including tag code."""
        return f'{self.code}: {self.title}'

    def __repr__(self):
        return format_repr(self, 'id', 'event_id', system=False, _text=self.title)


db.Table(
    'revision_tags',
    db.metadata,
    db.Column(
        'revision_id',
        db.ForeignKey('event_editing.revisions.id'),
        primary_key=True,
        autoincrement=False,
        index=True
    ),
    db.Column(
        'tag_id',
        db.ForeignKey('event_editing.tags.id'),
        primary_key=True,
        autoincrement=False,
        index=True
    ),
    schema='event_editing'
)
示例#4
0
                                               lazy=True))
    file_types = db.relationship(
        'EditingFileType',
        secondary='event_editing.review_condition_file_types',
        collection_class=set,
        lazy=False,
        backref=db.backref('review_conditions',
                           collection_class=set,
                           lazy=True))

    # relationship backrefs:
    # - file_types (EditingFileType.review_conditions)

    def __repr__(self):
        return format_repr(self, 'id', 'event_id')


db.Table('review_condition_file_types',
         db.metadata,
         db.Column('review_condition_id',
                   db.ForeignKey('event_editing.review_conditions.id'),
                   primary_key=True,
                   autoincrement=False,
                   index=True),
         db.Column('file_type_id',
                   db.ForeignKey('event_editing.file_types.id'),
                   primary_key=True,
                   autoincrement=False,
                   index=True),
         schema='event_editing')
示例#5
0
# modify it under the terms of the MIT License; see the
# LICENSE file for more details.

from indico.core.db import db
from indico.util.string import format_repr


RoomEquipmentAssociation = db.Table(
    'room_equipment',
    db.metadata,
    db.Column(
        'equipment_id',
        db.Integer,
        db.ForeignKey('roombooking.equipment_types.id'),
        primary_key=True,
    ),
    db.Column(
        'room_id',
        db.Integer,
        db.ForeignKey('roombooking.rooms.id'),
        primary_key=True
    ),
    schema='roombooking'
)


equipment_features_table = db.Table(
    'equipment_features',
    db.metadata,
    db.Column(
        'equipment_id',
示例#6
0
# You should have received a copy of the GNU General Public License
# along with Indico; if not, see <http://www.gnu.org/licenses/>.

from indico.core.db import db
from indico.util.string import return_ascii


RoomEquipmentAssociation = db.Table(
    'room_equipment',
    db.metadata,
    db.Column(
        'equipment_id',
        db.Integer,
        db.ForeignKey('roombooking.equipment_types.id'),
        primary_key=True,
    ),
    db.Column(
        'room_id',
        db.Integer,
        db.ForeignKey('roombooking.rooms.id'),
        primary_key=True
    ),
    schema='roombooking'
)

ReservationEquipmentAssociation = db.Table(
    'reservation_equipment',
    db.metadata,
    db.Column(
        'equipment_id',
        db.Integer,
示例#7
0
    def get_category_role_by_id(cat, id):
        """
        Get a category role in the context of the specified category.
        If the role is not defined in the category or one of its parents,
        it is considered non-existing.
        """
        return CategoryRole.query.filter_by(id=id).join(cat.chain_query.subquery()).first()


role_members_table = db.Table(
    'role_members',
    db.metadata,
    db.Column(
        'role_id',
        db.Integer,
        db.ForeignKey('categories.roles.id'),
        primary_key=True,
        nullable=False,
        index=True
    ),
    db.Column(
        'user_id',
        db.Integer,
        db.ForeignKey('users.users.id'),
        primary_key=True,
        nullable=False,
        index=True
    ),
    schema='categories'
)
示例#8
0
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Indico; if not, see <http://www.gnu.org/licenses/>.

from __future__ import unicode_literals

from indico.core.db import db

_track_conveners_table = db.Table(
    'track_conveners',
    db.metadata,
    db.Column('id', db.Integer, primary_key=True),
    db.Column('user_id',
              db.Integer,
              db.ForeignKey('users.users.id'),
              index=True,
              nullable=False),
    db.Column('event_id',
              db.Integer,
              db.ForeignKey('events.events.id'),
              index=True),
    db.Column('track_id',
              db.Integer,
              db.ForeignKey('events.tracks.id'),
              index=True),
    db.CheckConstraint('(track_id IS NULL) != (event_id IS NULL)',
                       name='track_xor_event_id_null'),
    schema='events')
示例#9
0
# LICENSE file for more details.

from indico.core.db import db


_paper_judges = db.Table(
    'judges',
    db.metadata,
    db.Column(
        'contribution_id',
        db.Integer,
        db.ForeignKey('events.contributions.id'),
        primary_key=True,
        autoincrement=False,
        index=True
    ),
    db.Column(
        'user_id',
        db.Integer,
        db.ForeignKey('users.users.id'),
        primary_key=True,
        autoincrement=False,
        index=True
    ),
    schema='event_paper_reviewing'
)


_paper_content_reviewers = db.Table(
    'content_reviewers',
    db.metadata,
示例#10
0
# LICENSE file for more details.

from indico.core.db import db


favorite_user_table = db.Table(
    'favorite_users',
    db.metadata,
    db.Column(
        'user_id',
        db.Integer,
        db.ForeignKey('users.users.id'),
        primary_key=True,
        nullable=False,
        index=True
    ),
    db.Column(
        'target_id',
        db.Integer,
        db.ForeignKey('users.users.id'),
        primary_key=True,
        nullable=False,
        index=True
    ),
    schema='users'
)

favorite_category_table = db.Table(
    'favorite_categories',
    db.metadata,
    db.Column(
示例#11
0
    assert event_id is not None
    return increment_and_get(Event._last_friendly_registration_id,
                             Event.id == event_id)


registrations_tags_table = db.Table(
    'registration_tags',
    db.metadata,
    db.Column(
        'registration_id',
        db.Integer,
        db.ForeignKey('event_registration.registrations.id',
                      ondelete='CASCADE'),
        primary_key=True,
        nullable=False,
        index=True,
    ),
    db.Column(
        'registration_tag_id',
        db.Integer,
        db.ForeignKey('event_registration.tags.id', ondelete='CASCADE'),
        primary_key=True,
        nullable=False,
        index=True,
    ),
    schema='event_registration')


class PublishRegistrationsMode(RichIntEnum):
    __titles__ = [
        L_('Hide all participants'),