Bootstrap & bootstrap theme startup
This commit is contained in:
@@ -1,12 +1,14 @@
|
|||||||
from flask_sqlalchemy import SQLAlchemy
|
from flask_sqlalchemy import SQLAlchemy
|
||||||
from sqlalchemy.orm import DeclarativeBase
|
|
||||||
from flask_migrate import Migrate
|
from flask_migrate import Migrate
|
||||||
from flask_bcrypt import Bcrypt
|
from flask_bcrypt import Bcrypt
|
||||||
from flask_bootstrap import Bootstrap
|
from flask_bootstrap import Bootstrap
|
||||||
from flask_jwt_extended import JWTManager
|
from flask_jwt_extended import JWTManager
|
||||||
|
|
||||||
|
|
||||||
|
# Create extensions
|
||||||
|
|
||||||
db = SQLAlchemy()
|
db = SQLAlchemy()
|
||||||
migrate = Migrate()
|
migrate = Migrate()
|
||||||
bcrypt = Bcrypt()
|
bcrypt = Bcrypt()
|
||||||
bootstrap = Bootstrap()
|
bootstrap = Bootstrap()
|
||||||
jwt = JWTManager()
|
jwt = JWTManager()
|
||||||
@@ -1,19 +1,29 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en" itemscope itemtype="http://schema.org/WebPage">
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<!-- Required meta tags -->
|
<meta charset="utf-8" />
|
||||||
<meta charset="UTF-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
<link rel="apple-touch-icon" sizes="76x76" href="{{url_for('static', filename='assets/img/apple-icon.png')}}">
|
||||||
<!-- Bootstrap CSS -->
|
<link rel="icon" type="image/png" href="{{url_for('static', filename='./assets/img/favicon.png')}}">
|
||||||
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
|
<title>
|
||||||
|
{% block title %}{% endblock %}
|
||||||
<title>{% block title %}{% endblock %}</title>
|
</title>
|
||||||
|
<!-- Fonts and icons -->
|
||||||
|
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700,900|Roboto+Slab:400,700" />
|
||||||
|
<!-- Nucleo Icons -->
|
||||||
|
<link href="{{url_for('static', filename='/assets/css/nucleo-icons.css" rel="stylesheet')}}" />
|
||||||
|
<link href="{{url_for('static', filename='/assets/css/nucleo-svg.css" rel="stylesheet')}}" />
|
||||||
|
<!-- Font Awesome Icons -->
|
||||||
|
<script src="https://kit.fontawesome.com/42d5adcbca.js" crossorigin="anonymous"></script>
|
||||||
|
<!-- Material Icons -->
|
||||||
|
<link href="https://fonts.googleapis.com/icon?family=Material+Icons+Round" rel="stylesheet">
|
||||||
|
<!-- CSS Files -->
|
||||||
|
<link id="pagestyle" href="{{url_for('static', filename='/assets/css/material-kit-pro.css')}}" rel="stylesheet" />
|
||||||
</head>
|
</head>
|
||||||
<body>
|
|
||||||
<div><a href="/register">Register</a></div>
|
<body class="presentation-page bg-gray-200">
|
||||||
<div><a href="/login">Login</a></div>
|
{% include 'navbar.html' %}
|
||||||
<hr>
|
|
||||||
{% with messages = get_flashed_messages()%}
|
{% with messages = get_flashed_messages()%}
|
||||||
{% if messages%}
|
{% if messages%}
|
||||||
{% for message in messages%}
|
{% for message in messages%}
|
||||||
|
|||||||
59
eveai_app/templates/navbar.html
Normal file
59
eveai_app/templates/navbar.html
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
<!-- Navbar Light -->
|
||||||
|
<nav
|
||||||
|
class="navbar navbar-expand-lg navbar-light bg-white z-index-3 py-3">
|
||||||
|
<div class="container">
|
||||||
|
<a class="navbar-brand" href="" rel="tooltip" title="Generated by Kobe & Pieter @ Flow IT" data-placement="bottom" target="_blank">
|
||||||
|
EveAI
|
||||||
|
</a>
|
||||||
|
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navigation" aria-controls="navigation" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navigation">
|
||||||
|
<ul class="navbar-nav navbar-nav-hover mx-auto">
|
||||||
|
<li class="nav-item px-3">
|
||||||
|
<a class="nav-link">
|
||||||
|
User Mgmt
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="dropdownMenuButton">
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="/user/tenant">
|
||||||
|
Tenant Registration
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="/user/user">
|
||||||
|
User Registration
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-item px-3">
|
||||||
|
<a class="nav-link">
|
||||||
|
Document Mgmt
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-item px-3">
|
||||||
|
<a class="nav-link">
|
||||||
|
Interaction Mgmt
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-item px-3">
|
||||||
|
<a class="nav-link ">
|
||||||
|
Login
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<ul class="navbar-nav ms-auto">
|
||||||
|
<button class="btn bg-gradient-primary mb-0">Buy Now</button>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
<!-- End Navbar -->
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
@@ -6,7 +6,7 @@ from wtforms.validators import DataRequired, Length, Email, NumberRange
|
|||||||
class TenantForm(FlaskForm):
|
class TenantForm(FlaskForm):
|
||||||
name = StringField('Name', validators=[DataRequired(), Length(max=80)])
|
name = StringField('Name', validators=[DataRequired(), Length(max=80)])
|
||||||
website = StringField('Website', validators=[DataRequired(), Length(max=255)])
|
website = StringField('Website', validators=[DataRequired(), Length(max=255)])
|
||||||
license_start_date = DateField('License Start Date', id='datepicker')
|
license_start_date = DateField('License Start Date', id='form-control datepicker')
|
||||||
license_end_date = DateField('License End Date', id='datepicker')
|
license_end_date = DateField('License End Date', id='datepicker')
|
||||||
allowed_monthly_interactions = IntegerField('Allowed Monthly Interactions', validators=[NumberRange(min=0)])
|
allowed_monthly_interactions = IntegerField('Allowed Monthly Interactions', validators=[NumberRange(min=0)])
|
||||||
submit = SubmitField('Submit')
|
submit = SubmitField('Submit')
|
||||||
@@ -25,3 +25,5 @@ class UserForm(FlaskForm):
|
|||||||
valid_to = DateField('Valid to', id='datepicker')
|
valid_to = DateField('Valid to', id='datepicker')
|
||||||
tenant_id = IntegerField('Tenant ID', validators=[NumberRange(min=0)])
|
tenant_id = IntegerField('Tenant ID', validators=[NumberRange(min=0)])
|
||||||
submit = SubmitField('Submit')
|
submit = SubmitField('Submit')
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user