Ejemplo n.º 1
0
class User(db.Model):
    __tablename__ = "users"

    __table_args__ = (db.UniqueConstraint('email', 'tenant_id'), )

    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(60), nullable=False)
    name = db.Column(db.String(30), nullable=False)
    _password = db.Column("password", db.String(), nullable=False)
    is_admin = db.Column(db.Boolean(), nullable=False)
    is_owner = db.Column(db.Boolean(), nullable=False, default=False)
    created_at = db.Column(db.DateTime(timezone=False),
                           nullable=False,
                           server_default=now())
    expires_on = db.Column(db.DateTime(), nullable=False, default=get_expiry)

    tenant_id = db.Column(db.Integer,
                          db.ForeignKey('tenants.id', ondelete="CASCADE"),
                          nullable=False)

    @hybrid_property
    def password(self):
        return self._password

    @password.setter
    def password(self, password):
        self._password = bcrypt.generate_password_hash(password).decode(
            'utf-8')

    def __repr__(self):
        return f"email:{self.email} -- id:{self.id} -- tenant_id:{self.tenant_id}"
Ejemplo n.º 2
0
class display(db.Model):
    # Anzeigen: Definieren mittels ihrer Konfiguration, wie eine DisplayGroup angezeigt wird.
    __tablename__ = "display"

    # Daten
    id = db.Column(db.Integer, primary_key=True)
    title_de = db.Column(db.Text, unique=True)
    title_en = db.Column(db.Text)
    # Titel
    is_deprecated = db.Column(db.Boolean())
    # Handelt es sich um ein Display, das nicht mehr verwendet werden soll?
    deprecated_by_id = db.Column(db.Integer, db.ForeignKey('display.id'))
    is_OFP = db.Column(db.Boolean())
    # Wird dieses Display auf der ersten Seite angezeigt?
    weight = db.Column(db.Integer)
    # Determines how far up top an item is in list
    # Relationships
    groupLink = db.relationship("displayGroupHasDisplay")

    #deprecated_by = db.relationship("display")

    # Constructor
    def __init__(self, title_de, title_en=None):
        self.is_deprecated = False
        self.is_OFP = False
        self.title_de = title_de
        self.title_en = title_en
Ejemplo n.º 3
0
class Calendar(db.Model):
    """Model for the calendar table"""
    __tablename__ = 'Calendar'

    id = db.Column(db.Integer(), primary_key=True)
    username = db.Column(db.String(50), nullable=False)
    facility = db.Column(db.String(50))
    integrator = db.Column(db.String(50))
    totalTime = db.Column(db.Integer())
    startDate = db.Column(db.DateTime(), nullable=False)
    private = db.Column(db.Boolean())
    title = db.Column(db.String(50))
    requestId = db.Column(db.Integer())
    rangeId = db.Column(db.Integer())
    beam = db.Column(db.Boolean())
    energy = db.Column(db.Float())

    def create_entry(self):
        result = ""
        try:
            db.session.add(self)
            db.session.commit()
            result = {'success': True}
        except Exception as e:
            print(e)
            result = {
                'error': "Unable to create calendar entry",
                'success': False
            }
        return result

    def __repr__(self):
        return "<Calendar(username=%s)>" % (self.username)
Ejemplo n.º 4
0
class Collection(db.Model):
    __tablename__ = "collections"

    collection_id = db.Column(db.Integer, primary_key = True)
    name = db.Column(db.String(), nullable = False)
    owner_id = db.Column(db.Integer,db.ForeignKey('users.id'), nullable=False)
    description = db.Column(db.String())
    collaborative = db.Column(db.Boolean(), nullable=False)
    public = db.Column(db.Boolean(), nullable=False)
    collection_playlists = db.relationship('Playlist', secondary=collection_playlists, backref=db.backref('collection_playlists', lazy='dynamic'))
Ejemplo n.º 5
0
class requests(db.Model):
    """Model for the Requests table"""
    __tablename__ = 'requests'

    name = db.Column(db.String(50))
    email = db.Column(db.String(128))
    cell = db.Column(db.String(15))
    company = db.Column(db.String(30))
    integrator = db.Column(db.String(30))
    funding_contact = db.Column(db.String(50))
    address = db.Column(db.String(128))
    city = db.Column(db.String(50))
    state = db.Column(db.String(30))
    zipcode = db.Column(db.Integer())
    approved_integrator = db.Column(db.Boolean())
    approved_facility = db.Column(db.Boolean())
    facility = db.Column(db.String(30))
    ion = db.Column(db.String(30))
    energy = db.Column(db.Float())
    id = db.Column(db.Integer(), primary_key=True)
    funding_cell = db.Column(db.String(15))
    funding_email = db.Column(db.String(128))
    start = db.Column(db.DateTime, nullable=False)
    ions = db.Column(db.ARRAY(db.Integer()))
    comments = db.Column(db.String(200))
    po_number = db.Column(db.Integer())
    username = db.Column(db.String(200))
    beam_time = db.Column(db.Integer())
    scheduled_start = db.Column(db.DateTime)
    integrator_comment = db.Column(db.String(200))
    modified = db.Column(db.Boolean())
    date_of_request = db.Column(db.DateTime)
    status = db.Column(db.String(40))
    rejected = db.Column(db.Boolean())
    order = db.Column(db.Integer())
    request_range = db.Column(db.Integer())
    priority = db.Column(db.Boolean())
    ion_hours = db.Column(db.ARRAY(db.Integer()))
    shifts = db.Column(db.ARRAY(db.Integer()))
    hoursOn = db.Column(db.ARRAY(db.Integer()))
    hoursOff = db.Column(db.ARRAY(db.Integer()))
    totalHours = db.Column(db.ARRAY(db.Integer()))
    personnel = db.Column(db.String(200))
    title = db.Column(db.String(200))

    def create_request(self):
        db.session.add(self)
        db.session.commit()

    def __repr__(self):
        return "<Beam(id=%s, name=%s, facility=%s)>" % (self.id, self.name,
                                                        self.facility)
Ejemplo n.º 6
0
class display(db.Model):
    # Anzeigen: Definieren mittels ihrer Konfiguration, wie eine DisplayGroup angezeigt wird.
    __tablename__ = "display"

    # Daten
    id = db.Column(db.Integer, primary_key=True)
    flexstring_german = db.Column(db.Text)
    flexstring_english = db.Column(db.Text)
    subtitle_german = db.Column(db.Text)
    subtitle_english = db.Column(db.Text)
    name = db.Column(db.Text)
    # Name of display. It is only for internal use and not displayed for the end-user
    category_id = db.Column(db.Integer, db.ForeignKey('categories.id'))
    is_default = db.Column(db.Boolean())
    # Handelt es ich um das Default-Display einer Kategorie? Dieses zeigt die Konfiguration direkt als Freitext an. Text und Untertitel sind nicht zugelassen.
    is_deprecated = db.Column(db.Boolean())
    # Handelt es sich um ein Display, das nicht mehr verwendet werden soll?
    deprecated_by_id = db.Column(db.Integer, db.ForeignKey('display.id'))
    is_OFP = db.Column(db.Boolean())
    # Wird dieses Display auf der ersten Seite angezeigt?
    varlist = db.Column(db.JSON)
    # Liste der Variablen
    is_mergable = db.Column(db.Boolean())
    # Kann dieses display gemerged werden (hängt von varlist ab)
    weight = db.Column(db.Integer)
    # Determines how far up top an item is in list
    # Relationships
    category = db.relationship("categories")
    groupLink = db.relationship("displayGroupHasDisplay")

    #deprecated_by = db.relationship("display")

    # Constructor
    def __init__(self,
                 flexstring_german,
                 subtitle_german,
                 category_id=None,
                 is_default=False,
                 varlist={}):
        self.flexstring_german = flexstring_german
        self.subtitle_german = subtitle_german
        self.category_id = category_id
        self.is_default = is_default
        self.is_deprecated = False
        self.is_OFP = False
        self.is_Mergable = False
        self.weight = 0
        self.varlist = varlist
Ejemplo n.º 7
0
class User(db.Model,
           UserMixin):  # Creating a Users class inheriting from db.Model
    __tablename__ = "users"  # Explicitly naming the table "users"

    id = db.Column(
        db.Integer,
        primary_key=True)  # There is an id column and it is the primary key
    email = db.Column(
        db.String(), nullable=False,
        unique=True)  # Email column, string and it must be unique
    password = db.Column(
        db.String(),
        nullable=False)  # The password is a string and must be present
    profile = db.relationship(
        'Profile', backref=backref(
            'user',
            uselist=False))  # Creating the relationship to the profile table
    playlists = db.relationship('Playlist',
                                cascade='all, delete',
                                backref='owner')
    collections = db.relationship('Collection',
                                  cascade='all, delete',
                                  backref='owner')
    is_admin = db.Column(db.Boolean(), default=False)

    def __repr__(
            self):  # When printing the model we will see its email attribute
        return f"<User {self.email}>"
Ejemplo n.º 8
0
class User(db.Model):
    __tablename__ = 'user'

    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(50), unique=True, nullable=False)
    password = db.Column(db.String(64), nullable=True)
    email_verified = db.Column(db.Boolean(), nullable=False, default=False)
Ejemplo n.º 9
0
class Ranges(db.Model):
    """Model for the facility table"""
    __tablename__ = 'Ranges'

    id = db.Column(db.Integer(), primary_key=True)
    org_id = db.Column(db.Integer())
    start_date = db.Column(db.DateTime())
    facility = db.Column(db.String())
    hours = db.Column(db.Integer())
    scheduled = db.Column(db.Boolean())

    def create_range(self):
        result = ""
        try:
            db.session.add(self)
            db.session.commit()
            result = {'success': True}
        except Exception as e:
            print(e)
            result = {
                'error': "Unable to create range entry",
                'success': False
            }
        return result

    def __repr__(self):
        return "<Range(id=%s, facility=%s)>" % (self.org_id, self.facility)
Ejemplo n.º 10
0
class Person(db.Model):

    id = db.Column(db.Integer, primary_key=True)
    nick = db.Column(db.String(128))
    email = db.Column(db.String(128), unique=True)
    tshirt = db.Column(db.String(128))
    price = db.Column(db.Integer())
    days = db.Column(db.String(128))
    paid = db.Column(db.Boolean())
    token = db.Column(db.String(32))

    def __init__(self, nick, email, tshirt, price, days):
        self.nick = nick
        self.email = email
        self.tshirt = tshirt
        self.price = price
        self.days = days
        self.token = hashlib.sha256(os.urandom(32)).hexdigest()
        self.paid = False

    def serialize(self):
        r = vars(self)
        if "_sa_instance_state" in r:
            del r["_sa_instance_state"]
        return r
Ejemplo n.º 11
0
class Post(db.Model):
    __tablename__ = 'post'

    postid = db.Column(db.Integer, primary_key=True)
    post_name = db.Column(db.String(), nullable=False)
    post_description = db.Column(db.String(), nullable=False)
    account_active = db.Column(db.Boolean(), nullable=False)
    front_end = db.Column(db.Boolean(), nullable=False)
    back_end = db.Column(db.Boolean(), nullable=False)
    full_stack = db.Column(db.Boolean(), nullable=False)
    completed = db.Column(db.Boolean(), nullable=False)
    profile_id = db.Column(db.Integer,
                           db.ForeignKey("profiles.profileid"),
                           nullable=False)
    post_github = db.Column(db.String(), nullable=False)
    messages = db.relationship("Messages", backref="post", lazy="dynamic")
Ejemplo n.º 12
0
class User(db.Model):
    __tablename__ = 'users'

    userid = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String())
    isadmin = db.Column(db.Boolean())
    firstname = db.Column(db.String())
    lastname = db.Column(db.String())
    phone = db.Column(db.Integer)

    def __init__(self, firstname, lastname, email, phone, isadmin):
        self.email = email
        self.isadmin = isadmin
        self.firstname = firstname
        self.lastname = lastname
        self.phone = phone

    def to_dict(self):
        return {
            "userid": self.userid,
            "firstname": self.firstname,
            "lastname": self.lastname,
            "email": self.email,
            "isadmin": self.isadmin,
            "phone": self.phone,
        }
Ejemplo n.º 13
0
class SurveyWRSSummary(db.Model):
    __tablename__ = 'survey_wrs_summary'
    id = db.Column(db.Integer, primary_key=True)
    year = db.Column(db.String(4), nullable=False)
    post = db.Column(db.Boolean())
    question = db.Column(db.String(128), nullable=False)
    value = db.Column(db.String(16), nullable=False)
    category_id = db.Column(db.Integer, db.ForeignKey('survey_categories.id'))
Ejemplo n.º 14
0
class Invite(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    sender_id = db.Column(db.String, db.ForeignKey('user.id'))
    recipient_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    heading = db.Column(db.String())
    date_time = db.Column(db.String())
    deadline = db.Column(db.String())
    host_name = db.Column(db.String())
    paragraph = db.Column(db.String())
    details = db.Column(db.String())
    accepted = db.Column(db.Boolean())
    rejected = db.Column(db.Boolean())
    aor = db.relationship('Action', backref='invite', lazy='dynamic')
    time = db.Column(db.Date, index=True, default=datetime.utcnow())

    def __repr__(self):
        return 'Invite {} {} {} {}'.format(self.date_time, self.host_name,
                                           self.paragraph, self.details)
Ejemplo n.º 15
0
class Track(db.Model):
    __tablename__ = "tracks"

    track_id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(), nullable=False)
    track_num = db.Column(db.Integer, nullable=False)
    album_id = db.Column(db.Integer, db.ForeignKey('albums.album_id'))
    disc_num = db.Column(db.Integer, nullable=False)
    duration_ms = db.Column(db.Integer, nullable=False)
    explicit = db.Column(db.Boolean(), nullable=False)
Ejemplo n.º 16
0
class Profile(db.Model):
    __tablename__ = 'profiles'

    profileid = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(), nullable=False)
    fname = db.Column(db.String(), nullable=False)
    lname = db.Column(db.String(), nullable=False)
    account_active = db.Column(db.Boolean(), default=True)
    equipment = db.relationship("Equipment", backref="profile", lazy='dynamic')
    equipment_order = db.relationship("EquipmentOrder", backref="profile")
    admin = db.Column(db.Boolean(), default=False)
    user_id = db.Column(db.Integer, db.ForeignKey("users.id"), nullable=False)
    profile_image = db.relationship("ProfileImages",
                                    backref="profile",
                                    uselist=False)
    equipment = db.relationship("Equipment", cascade="all, delete")

    def __repr__(self):
        return f"<Profile {self.username}>"
Ejemplo n.º 17
0
class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(255), unique=True)
    password = db.Column(db.String(255))
    active = db.Column(db.Boolean())
    confirmed_at = db.Column(db.DateTime())
    token = db.Column(db.String(200))
    roles = db.relationship('Role',
                            secondary=roles_users,
                            backref=db.backref('users', lazy='dynamic'))
Ejemplo n.º 18
0
class Profiles(db.Model):
    __tablename__ = 'profiles'

    profileid = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(), nullable=False)
    fname = db.Column(db.String(), nullable=False)
    lname = db.Column(db.String(), nullable=False)
    account_active = db.Column(db.Boolean(), default=True)
    user_id = db.Column(db.Integer, db.ForeignKey("users.id"), nullable=False)
    # post = db.relationship("Post", backref="profile", lazy="dynamic")
    post = db.relationship("Post", backref="profile", lazy="raise")
Ejemplo n.º 19
0
class Profiles(db.Model):
    __tablename__ = 'profiles'

    profileid = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(), nullable=False)
    fname = db.Column(db.String(), nullable=False)
    lname = db.Column(db.String(), nullable=False)
    account_active = db.Column(db.Boolean(), default=True)
    user_id = db.Column(db.Integer, db.ForeignKey("users.id"), nullable=False)
    profile_image = db.relationship("ProfileImage",
                                    backref="profile",
                                    uselist=False)
    post = db.relationship("Post", backref="profile", lazy="dynamic")
    github = db.Column(db.String(), nullable=False)
    front_end = db.Column(db.Boolean(), nullable=False)
    back_end = db.Column(db.Boolean(), nullable=False)
    full_stack = db.Column(db.Boolean(), nullable=False)
    messages = db.relationship("Messages", backref="profile")
    post = db.relationship("Post", cascade="all, delete")
    admin = db.Column(db.Boolean(), default=False)
Ejemplo n.º 20
0
class User(db.Model):
    __tablename__ = "users"

    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(), nullable=False, unique=True)
    password = db.Column(db.String(), nullable=False)
    isAdmin = db.Column(db.Boolean(), nullable=False)
    store = db.relationship("Store", backref=backref("user", uselist=False))

    def __repr__(self):
        return f"<User {self.email}>"
Ejemplo n.º 21
0
class Menu(db.Model):
    __tablename__ = "menu"

    id = db.Column(db.Integer(), primary_key=True)
    title = db.Column(db.String())
    price = db.Column(db.Integer())
    vegetarian = db.Column(db.Boolean())

    order = db.relationship("Order", backref="menu", lazy="dynamic")

    def __repr__(self):
        return f"<Book {self.title}>"
Ejemplo n.º 22
0
class districts(db.Model):
    __tablename__ = "districts"
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(100))
    name_de = db.Column(db.String(100))
    incidence = db.Column(db.Integer)
    color = db.Column(db.String(10))
    links = db.Column(db.JSON)
    geometry = db.Column(db.JSON)
    region_id = db.Column(db.Integer, db.ForeignKey('regions.id'))
    region = db.relationship("regions")
    notes = db.Column(db.Text)
    category = db.Column(db.String(20))
    deactivate_region = db.Column(db.Boolean())
    """ Example for links-JSON:
    [
        {
            "display": "string",
            "link": "string"
        }
    ]
    """
    groupLink = db.relationship("districtHasGroup")
    cron = db.relationship("cron", secondary=districtHasCron, back_populates="districts")
    def __init__(self, id, name, incidence, color, links, geometry, category):
        self.id = id
        self.name = name
        self.incidence = incidence
        self.color = color
        self.links = links
        self.geometry = geometry
        self.category = category
        self.name_de = name
        self.deactivate_region = False
        di = districts.query.filter(districts.name == name).all()
        # Kreisfreie Städte und Landkreise unterscheiden
        for d in di:
            # change existing name_de
            if d.name_de == name:
                if d.category == "Landkreis":
                    d.name_de += " (Kreis)"
                elif d.category == "Kreisfreie Stadt":
                    d.name_de += " (Stadt)"
                else:
                    d.name_de += " ("+d.category+")"
        if di:
            #set new name_de
            if category == "Landkreis":
                self.name_de += " (Kreis)"
            elif category == "Kreisfreie Stadt":
                self.name_de += " (Stadt)"
            else:
                self.name_de += " ("+category+")"
Ejemplo n.º 23
0
class Order(db.Model):
    __tablename__ = "orders"

    id = db.Column(db.Integer, primary_key=True)
    shipping_id = db.Column(db.Integer, db.ForeignKey("ordershipping.id"))
    date_ordered = db.Column(db.DateTime,
                             default=datetime.now(),
                             nullable=False)
    shipped = db.Column(db.Boolean(), default=False)

    def __repr__(self):
        return f"<Order {self.id}>"
Ejemplo n.º 24
0
class Users(UserMixin, db.Model):
    """Model for the users table"""
    __tablename__ = 'Users'

    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String())
    password = db.Column(db.String())
    first_name = db.Column(db.String())
    last_name = db.Column(db.String())
    affiliation = db.Column(db.String())
    user_type = db.Column(db.String())
    phone = db.Column(db.String())
    email = db.Column(db.String())
    org_id = db.Column(db.Integer)
    isAuthenticatedAdmin = db.Column(db.Boolean())
    isAdmin = db.Column(db.Boolean())
    isAuthenticatedIntegrator = db.Column(db.Boolean())

    def set_password(self, password):
        self.password = bcrypt.generate_password_hash(
            password.encode('utf-8')).decode('utf-8')

    def check_password(self, password):
        return bcrypt.check_password_hash(self.password, password)

    def register_user(self):
        result = ""
        try:
            db.session.add(self)
            db.session.commit()
            result = {'success': True}
        except Exception as e:
            print(e)
            result = {'error': "Unable to register user", 'success': False}
        return result

    def __repr__(self):
        return "<User(id=%s, first_name=%s, last_name=%s)>" % (
            self.id, self.first_name, self.last_name)
Ejemplo n.º 25
0
class User(db.Model):
    __tablename__ = "users"

    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(), nullable=False, unique=True)
    password = db.Column(db.String(), nullable=False)
    admin = db.Column(db.Boolean(), nullable=True)

    # shipping = db.Column(db.Integer, db.ForeignKey("ordershipping.id"))
    # shipping = db.relationship("OrderShipping", backref="ordershipping.id")

    def __repr__(self):
        return f"<User {self.id}: {self.email}>"
Ejemplo n.º 26
0
class Users(db.Model):
    __tablename__ = 'users'

    userid =db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(), nullable=False)
    fname = db.Column(db.String(), nullable=False)
    lname = db.Column(db.String(), nullable=False)
    profile_pic = db.Column(db.String())
    account_active = db.Column(db.Boolean(), default = True)
    account_id = db.Column(db.Integer, db.ForeignKey("accounts.id"), nullable=False)
    
    
    def __repr__(self):
        return f"<User {self.username}>"    
Ejemplo n.º 27
0
class Uploads(db.Model):
    __tablename__ = 'uploads'
    __table_args__ = tuple(
        UniqueConstraint('uploader',
                         'ipfs_hash',
                         name='uploader_ipfs_hash_unique_constraint'))

    id = db.Column(db.Integer, primary_key=True)
    uploader = db.Column(db.Integer, db.ForeignKey('credentials.id'))
    ipfs_hash = db.Column(db.Text())
    original_name = db.Column(db.Text())
    parent_hash = db.Column(db.Text())
    is_avatar = db.Column(db.Boolean(), default=False)
    date = db.Column(db.DateTime, server_default=func.now())
Ejemplo n.º 28
0
class User(UserMixin, db.Model):
    __tablename__ = "users"

    id = db.Column(db.Integer, primary_key=True)
    created_at = db.Column(db.DateTime, default=datetime.now)
    email = db.Column(db.String(100), unique=True)
    password = db.Column(db.String(100))
    name = db.Column(db.String(1000))
    membership = db.Column(db.String(1000))
    valid = db.Column(db.String(1000))
    valid_till = db.Column(db.String(1000))
    is_admin = db.Column(db.Boolean())

    bookings = db.relationship("Bookings", backref="user", lazy="dynamic")
Ejemplo n.º 29
0
class User(db.Model):
    __tablename__ = "users"

    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(), nullable=False, unique=True)
    password = db.Column(db.String(), nullable=False)
    first_name = db.Column(db.String(), nullable=False)
    last_name = db.Column(db.String(), nullable=False)
    admin = db.Column(db.Boolean(), default=False)

    order = db.relationship("Order", backref="users")

    def __repr__(self):
        return f"<User {self.email}>"
Ejemplo n.º 30
0
class districts(db.Model):
    __tablename__ = "districts"
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(100))
    name_de = db.Column(db.String(100))
    incidence = db.Column(db.Integer)
    color = db.Column(db.String(10))
    #links = db.Column(db.JSON)
    geometry = db.Column(db.JSON)
    region_id = db.Column(db.Integer, db.ForeignKey('regions.id'))
    category = db.Column(db.String(20))
    deactivate_region = db.Column(db.Boolean()) 
    lastModified = db.Column(db.String(40))
    mainLink = db.Column(db.Text)
    requestCounter = db.Column(db.BigInteger)
    # Relationships
    region = db.relationship("regions")
    links = db.relationship("links")
    groupLink = db.relationship("districtHasGroup")
    devices = db.relationship("devices", secondary="deviceHasDistrict", back_populates="districts")
    def __init__(self, id, name, incidence, color, geometry, category):
        self.id = id
        self.name = name
        self.incidence = incidence
        self.color = color
        self.geometry = geometry
        self.category = category
        self.name_de = name
        self.deactivate_region = False
        self.requestCounter = 0
        di = districts.query.filter(districts.name == name).all()
        # Kreisfreie Städte und Landkreise unterscheiden
        for d in di:
            # change existing name_de
            if d.name_de == name:
                if d.category == "Landkreis":
                    d.name_de += " (Kreis)"
                elif d.category == "Kreisfreie Stadt":
                    d.name_de += " (Stadt)"
                else:
                    d.name_de += " ("+d.category+")"
        if di:
            #set new name_de
            if category == "Landkreis":
                self.name_de += " (Kreis)"
            elif category == "Kreisfreie Stadt":
                self.name_de += " (Stadt)"
            else:
                self.name_de += " ("+category+")"