Let's get it started...

master
Raoul Snyman 2021-09-17 09:32:13 -07:00
commit 9e6cb91da9
No known key found for this signature in database
GPG Key ID: F55BCED79626AE9C
4 changed files with 50 additions and 0 deletions

View File

17
statusforce/app.py 100644
View File

@ -0,0 +1,17 @@
from flask import Flask
from flask_admin import Admin
from flask_admin.contrib.sqla import ModelView
from statusforce.db import db
from statusforce.models import Service, Incident
# Set up Flask application
app = Flask(__name__)
app.config['FLASK_ADMIN_SWATCH'] = 'materia'
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db'
db.init_app(app)
admin = Admin(app, name='StatusForce', template_mode='bootstrap4')
admin.add_view(ModelView(Service))
admin.add_view(ModelView(Incident))

14
statusforce/db.py 100644
View File

@ -0,0 +1,14 @@
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
# Pull out some attributes to make life easier
Model = db.Model
Column = db.Column
ForeignKey = db.ForeignKey
Boolean = db.Boolean
DateTime = db.DateTime
Integer = db.Integer
String = db.String
relationship = db.relationship
backref = db.backref

View File

@ -0,0 +1,19 @@
from datetime import datetime
from sqlalchemy.sql.expression import func
from statusforce.db import Model, Column, ForeignKey, DateTime, Integer, String
class Service(Model):
id = Column(Integer, primary_key=True, autoincrement=True)
name = Column(String, nullable=False)
status = Column(String, choices=['operational', 'unclear', 'offline'])
class Incident(Model):
id = Column(Integer, primary_key=True, autoincrement=True)
service_id = Column(Integer, ForeignKey('service.id'))
title = Column(String, nullable=False)
created = Column(DateTime, nullable=False, default=datetime.utcnow)
updated = Column(DateTime, unupdate=func.current_timestamp())