diff --git a/app/admin/routes.py b/app/admin/routes.py index dad6b08..ee35e05 100644 --- a/app/admin/routes.py +++ b/app/admin/routes.py @@ -154,11 +154,16 @@ def dashboard(user_pid=0): cuser = User.query.filter_by(pid=user_pid).first() inv_deployments = cuser.inv_deployments.filter_by(deleted=False).order_by(Deployment.date_created.desc()).all() + inv_legacy = cuser.inv_deployments.filter_by(deleted=False).filter_by(bridge_id=None).order_by(Deployment.date_created.desc()).all() + inv_deploycubeids = [] inv_deployments_list = [] for invcls in inv_deployments: inv_deploycubeids.extend([invcls.machine_id]) inv_deployments_list.extend([invcls.machine_alias]) + for invcls in inv_legacy: + if invcls.user_id == cuser.pid: + inv_deploycubeids.extend([invcls.machine_id]) inv_services = cuser.inv_services.filter_by(deleted=False).order_by(Service.date_last_charge.asc()).all() inv_services_list = [] @@ -205,6 +210,6 @@ def dashboard(user_pid=0): status = { unit_id : query['status'] } statuses.update(status) current_app.logger.info('[{}] Enabled deployments: {}, services: {}, domains: {}, bridges: {}, addresses: {}'.format(cuser.email, inv_deployments_list, inv_services_list, inv_domains_list, inv_bridges_list, inv_addresses_list)) - return render_template('main/dashboard.html', rrd=rrd, status=statuses, inv_deployments=inv_deployments, inv_services=inv_services, inv_domains=inv_domains, inv_bridges=inv_bridges, inv_addresses=inv_addresses, region=regions) + return render_template('main/dashboard.html', rrd=rrd, status=statuses, inv_deployments=inv_deployments, inv_legacy=inv_legacy, inv_services=inv_services, inv_domains=inv_domains, inv_bridges=inv_bridges, inv_addresses=inv_addresses, regions=regions) diff --git a/app/main/routes.py b/app/main/routes.py index 033b666..2c0d2c3 100644 --- a/app/main/routes.py +++ b/app/main/routes.py @@ -64,14 +64,19 @@ def dashboard(): inv_addresses = cuser.inv_addresses.order_by(Address.ip.asc()).all() inv_routers = cuser.inv_routers.order_by(Router.date_created.asc()).all() inv_deployments = cuser.inv_deployments.filter_by(deleted=False).order_by(Deployment.date_created.desc()).all() + inv_legacy = cuser.inv_deployments.filter_by(deleted=False).filter_by(bridge_id=None).order_by(Deployment.date_created.desc()).all() regions = {} for region in sys_regions: regions[region.pid] = region.description + inv_deploycubeids = [] for invcls in inv_deployments: if invcls.user_id == cuser.pid: inv_deploycubeids.extend([invcls.machine_id]) + for invcls in inv_legacy: + if invcls.user_id == cuser.pid: + inv_deploycubeids.extend([invcls.machine_id]) inv_services = cuser.inv_services.filter_by(deleted=False).order_by(Service.date_last_charge.asc()).all() inv_domains = cuser.inv_domains.filter_by(deleted=False).order_by(Domain.date_created.desc()).all() @@ -107,5 +112,5 @@ def dashboard(): send_email(current_app.config['MAIL_USERNAME'], 'Cube {} is unreachable'.format(unit_id), 'vmanager/email/adm_unreachable', user=current_user, unit_id=unit_id, error=str(e)) - return render_template('main/dashboard.html', sys_regions=sys_regions, inv_bridges=inv_bridges, inv_deployments=inv_deployments, inv_services=inv_services, inv_domains=inv_domains, inv_addresses=inv_addresses, rrd=rrd, status=statuses) + return render_template('main/dashboard.html', sys_regions=sys_regions, inv_bridges=inv_bridges, inv_deployments=inv_deployments, inv_legacy=inv_legacy, inv_services=inv_services, inv_domains=inv_domains, inv_addresses=inv_addresses, rrd=rrd, status=statuses, regions=regions) diff --git a/app/models.py b/app/models.py index 094a1f7..e715f67 100644 --- a/app/models.py +++ b/app/models.py @@ -56,7 +56,7 @@ class User(db.Model, UserMixin): pid = db.Column(db.Integer, primary_key=True) email = db.Column(db.String, unique=True, index=True) - role_id = db.Column(db.Integer, db.ForeignKey('roles.pid')) #FK + role_id = db.Column(db.ForeignKey('roles.pid')) #FK password_hash = db.Column(db.String) tokens = db.Column(db.Text) @@ -243,8 +243,8 @@ class Region(db.Model): class Bridge(db.Model): __tablename__ = 'bridges' pid = db.Column(db.Integer, primary_key=True) - user_id = db.Column(db.Integer, db.ForeignKey('users.pid')) #FK - region_id = db.Column(db.Integer, db.ForeignKey('regions.pid')) #FK + user_id = db.Column(db.ForeignKey('users.pid')) #FK + region_id = db.Column(db.ForeignKey('regions.pid')) #FK inv_routers = db.relationship('Router', backref='bridge', lazy='dynamic') inv_deployments = db.relationship('Deployment', backref='bridge', lazy='dynamic') @@ -255,8 +255,8 @@ class Bridge(db.Model): class Router(db.Model): __tablename__ = 'routers' pid = db.Column(db.Integer, primary_key=True) - user_id = db.Column(db.Integer, db.ForeignKey('users.pid')) #FK - bridge_id = db.Column(db.Integer, db.ForeignKey('bridges.pid')) #FK + user_id = db.Column(db.ForeignKey('users.pid')) #FK + bridge_id = db.Column(db.ForeignKey('bridges.pid')) #FK inv_addresses = db.relationship('Address', backref='router', lazy='dynamic') date_created = db.Column(db.DateTime, default=datetime.utcnow) @@ -267,8 +267,8 @@ class Router(db.Model): class Deployment(db.Model): __tablename__ = 'deployments' pid = db.Column(db.Integer, primary_key=True) - user_id = db.Column(db.Integer, db.ForeignKey('users.pid')) #FK - bridge_id = db.Column(db.Integer, db.ForeignKey('bridges.pid')) #FK + user_id = db.Column(db.ForeignKey('users.pid')) #FK + bridge_id = db.Column(db.ForeignKey('bridges.pid')) #FK date_created = db.Column(db.DateTime, default=datetime.utcnow) deleted = db.Column(db.Boolean, default=False) @@ -289,9 +289,9 @@ class Deployment(db.Model): class Address(db.Model): __tablename__ = 'address' pid = db.Column(db.Integer, primary_key=True) - user_id = db.Column(db.Integer, db.ForeignKey('users.pid')) #FK - region_id = db.Column(db.Integer, db.ForeignKey('regions.pid')) #FK - router_id = db.Column(db.Integer, db.ForeignKey('routers.pid')) #FK + user_id = db.Column(db.ForeignKey('users.pid')) #FK + region_id = db.Column(db.ForeignKey('regions.pid')) #FK + router_id = db.Column(db.ForeignKey('routers.pid')) #FK date_assigned = db.Column(db.DateTime, default=datetime.utcnow) enabled = db.Column(db.Boolean) @@ -325,7 +325,7 @@ class Address(db.Model): class Service(db.Model): __tablename__ = 'services' pid = db.Column(db.Integer, primary_key=True) #PK - user_id = db.Column(db.Integer, db.ForeignKey('users.pid')) #FK + user_id = db.Column(db.ForeignKey('users.pid')) #FK date_created = db.Column(db.DateTime, default=datetime.utcnow) deleted = db.Column(db.Boolean, default=False) @@ -342,7 +342,7 @@ class Service(db.Model): class Domain(db.Model): __tablename__ = 'domains' pid = db.Column(db.Integer, primary_key=True) - user_id = db.Column(db.Integer, db.ForeignKey('users.pid')) #FK + user_id = db.Column(db.ForeignKey('users.pid')) #FK date_created = db.Column(db.DateTime, default=datetime.utcnow) deleted = db.Column(db.Boolean, default=False) @@ -358,7 +358,7 @@ class Domain(db.Model): class Transaction(db.Model): __tablename__ = 'transaction' pid = db.Column(db.Integer, primary_key=True) - user_id = db.Column(db.Integer, db.ForeignKey('users.pid')) #FK + user_id = db.Column(db.ForeignKey('users.pid')) #FK date_created = db.Column(db.DateTime, default=datetime.utcnow) currency = db.Column(db.String, default='BGN') @@ -368,7 +368,7 @@ class Transaction(db.Model): class Invoice(db.Model): __tablename__ = 'invoice' pid = db.Column(db.Integer, primary_key=True) - user_id = db.Column(db.Integer, db.ForeignKey('users.pid')) #FK + user_id = db.Column(db.ForeignKey('users.pid')) #FK date_created = db.Column(db.DateTime, default=datetime.utcnow) invoice_number = db.Column(db.Integer, unique=True) @@ -398,7 +398,7 @@ class InvoiceItem(db.Model): __tablename__ = 'invoice_item' pid = db.Column(db.Integer, primary_key=True) item_number = db.Column(db.Integer) - invoice_id = db.Column(db.Integer, db.ForeignKey('invoice.pid')) #FK + invoice_id = db.Column(db.ForeignKey('invoice.pid')) #FK item_title = db.Column(db.Unicode) item_quantity = db.Column(db.Float) item_price = db.Column(db.Float) diff --git a/app/templates/main/dashboard.html b/app/templates/main/dashboard.html index 0e4a9e4..c852690 100644 --- a/app/templates/main/dashboard.html +++ b/app/templates/main/dashboard.html @@ -138,7 +138,37 @@ addEventListener("DOMContentLoaded", function() { {% endif %}
+
+
- {% if inv_deployments != [] %} -