mirror of
				https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
				synced 2025-11-03 20:02:47 +00:00 
			
		
		
		
	Redesign db models.
This commit is contained in:
		@@ -25,10 +25,12 @@ class Role(db.Model):
 | 
			
		||||
    A Role can be associated with many User rows.
 | 
			
		||||
    """
 | 
			
		||||
    __tablename__ = 'roles'
 | 
			
		||||
    # Primary key
 | 
			
		||||
    id = db.Column(db.Integer, primary_key=True)
 | 
			
		||||
    name = db.Column(db.String(64), unique=True)
 | 
			
		||||
    default = db.Column(db.Boolean, default=False, index=True)
 | 
			
		||||
    name = db.Column(db.String(64), unique=True)
 | 
			
		||||
    permissions = db.Column(db.Integer)
 | 
			
		||||
    # Relationships
 | 
			
		||||
    users = db.relationship('User', backref='role', lazy='dynamic')
 | 
			
		||||
 | 
			
		||||
    def __init__(self, **kwargs):
 | 
			
		||||
@@ -101,12 +103,15 @@ class User(UserMixin, db.Model):
 | 
			
		||||
    Model for Users that are registered to Opaque.
 | 
			
		||||
    """
 | 
			
		||||
    __tablename__ = 'users'
 | 
			
		||||
    # Primary key
 | 
			
		||||
    id = db.Column(db.Integer, primary_key=True)
 | 
			
		||||
    confirmed = db.Column(db.Boolean, default=False)
 | 
			
		||||
    email = db.Column(db.String(64), unique=True, index=True)
 | 
			
		||||
    username = db.Column(db.String(64), unique=True, index=True)
 | 
			
		||||
    password_hash = db.Column(db.String(128))
 | 
			
		||||
    role_id = db.Column(db.Integer, db.ForeignKey('roles.id'))
 | 
			
		||||
    confirmed = db.Column(db.Boolean, default=False)
 | 
			
		||||
    username = db.Column(db.String(64), unique=True, index=True)
 | 
			
		||||
    # Relationships
 | 
			
		||||
    jobs = db.relationship('Job', backref='job', lazy='dynamic')
 | 
			
		||||
 | 
			
		||||
    def __repr__(self):
 | 
			
		||||
        """
 | 
			
		||||
@@ -204,21 +209,33 @@ class AnonymousUser(AnonymousUserMixin):
 | 
			
		||||
        return False
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Job():
 | 
			
		||||
class Job(db.Model):
 | 
			
		||||
    """
 | 
			
		||||
    Class to define Jobs.
 | 
			
		||||
    """
 | 
			
		||||
    __tablename__ = 'jobs'
 | 
			
		||||
    # Primary key
 | 
			
		||||
    id = db.Column(db.Integer, primary_key=True)
 | 
			
		||||
    title = db.Column(db.String(32))
 | 
			
		||||
    description = db.Column(db.String(64))
 | 
			
		||||
    service = db.Column(db.String(64), index=True)
 | 
			
		||||
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'), index=True)
 | 
			
		||||
    requested_cpus = db.Column(db.Integer, default=None)
 | 
			
		||||
    requested_memory = db.Column(db.Integer, default=None)
 | 
			
		||||
    service_args = db.Column(db.String(255))  # JSON string representation {'lang': new_ocr_job_form.language.data, 'version': new_ocr_job_form.version. }
 | 
			
		||||
    status = db.Column(db.String(64))
 | 
			
		||||
    cmd_args = db.Column(db.String(255))  # For extra cmd arguments
 | 
			
		||||
    '''
 | 
			
		||||
    ' Requested ressources.
 | 
			
		||||
    ' Example: {"n_cores": 2,
 | 
			
		||||
    '           "mem_mb": 4096
 | 
			
		||||
    '           }
 | 
			
		||||
    '''
 | 
			
		||||
    ressources = db.Column(db.String(255))
 | 
			
		||||
    service = db.Column(db.String(64))
 | 
			
		||||
    '''
 | 
			
		||||
    ' Service specific arguments in JSON format.
 | 
			
		||||
    ' Example: {"args": ["--keep-intermediates", "skip-binarization"],
 | 
			
		||||
    '           "lang": "eng",
 | 
			
		||||
    '           "version": "latest"
 | 
			
		||||
    '           }
 | 
			
		||||
    '''
 | 
			
		||||
    service_args = db.Column(db.String(255))
 | 
			
		||||
    status = db.Column(db.String(8))
 | 
			
		||||
    title = db.Column(db.String(32))
 | 
			
		||||
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'))
 | 
			
		||||
 | 
			
		||||
    def __init__(self, **kwargs):
 | 
			
		||||
        super(Job, self).__init__(**kwargs)
 | 
			
		||||
@@ -230,7 +247,11 @@ class Job():
 | 
			
		||||
        return '<Job %r>' % self.title
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
login_manager.anonymous_user = AnonymousUser  # Flask-Login is told to use the application’s custom anonymous user by setting its class in the login_manager.anonymous_user attribute.
 | 
			
		||||
'''
 | 
			
		||||
' Flask-Login is told to use the application’s custom anonymous user by setting
 | 
			
		||||
' its class in the login_manager.anonymous_user attribute.
 | 
			
		||||
'''
 | 
			
		||||
login_manager.anonymous_user = AnonymousUser
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@login_manager.user_loader
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user