mirror of
https://github.com/vale981/dirkules
synced 2025-03-05 09:21:38 -05:00
created samba blueprint
This commit is contained in:
parent
22512d154e
commit
52170f0212
10 changed files with 93 additions and 60 deletions
|
@ -12,6 +12,7 @@ csrf.init_app(app)
|
|||
app_version = app.config["VERSION"]
|
||||
|
||||
import dirkules.models
|
||||
import dirkules.samba.models
|
||||
|
||||
# create db if not exists
|
||||
db.create_all()
|
||||
|
@ -21,3 +22,6 @@ scheduler.init_app(app)
|
|||
scheduler.start()
|
||||
# import views
|
||||
import dirkules.views
|
||||
|
||||
from dirkules.samba import bp_samba as bp_samba
|
||||
app.register_blueprint(bp_samba, url_prefix='/samba')
|
||||
|
|
|
@ -118,24 +118,3 @@ class Cleaning(db.Model):
|
|||
self.path = path
|
||||
self.state = state
|
||||
|
||||
|
||||
class SambaShare(db.Model):
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
name = db.Column(db.String, nullable=False)
|
||||
writeable = db.Column(db.Boolean)
|
||||
recycling = db.Column(db.Boolean)
|
||||
btrfs = db.Column(db.Boolean)
|
||||
options = db.relationship('SambaOptions', order_by="SambaOptions.id", backref="samba_share", lazy="select")
|
||||
|
||||
def __init__(self, name, writeable=False, recycling=False, btrfs=False):
|
||||
self.name = name
|
||||
self.writeable = writeable
|
||||
self.recycling = recycling
|
||||
self.btrfs = btrfs
|
||||
|
||||
|
||||
class SambaOptions(db.Model):
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
option = db.Column(db.String, nullable=False)
|
||||
value = db.Column(db.String, nullable=False)
|
||||
sambashare_id = db.Column(db.Integer, db.ForeignKey('samba_share.id'), nullable=False)
|
||||
|
|
4
dirkules/samba/__init__.py
Normal file
4
dirkules/samba/__init__.py
Normal file
|
@ -0,0 +1,4 @@
|
|||
from flask import Blueprint
|
||||
|
||||
bp_samba = Blueprint('samba', __name__, template_folder='templates')
|
||||
from dirkules.samba import views
|
34
dirkules/samba/models.py
Normal file
34
dirkules/samba/models.py
Normal file
|
@ -0,0 +1,34 @@
|
|||
from dirkules import db
|
||||
|
||||
|
||||
class SambaGlobal(db.Model):
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
element = db.Column(db.String)
|
||||
value = db.Column(db.String)
|
||||
|
||||
def __init__(self, element, value):
|
||||
self.element = element
|
||||
self.value = value
|
||||
|
||||
|
||||
class SambaShare(db.Model):
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
name = db.Column(db.String, nullable=False)
|
||||
writeable = db.Column(db.Boolean)
|
||||
recycling = db.Column(db.Boolean)
|
||||
btrfs = db.Column(db.Boolean)
|
||||
options = db.relationship('SambaOptions', order_by="SambaOptions.id", backref="samba_share", lazy="select",
|
||||
cascade="all, delete-orphan")
|
||||
|
||||
def __init__(self, name, writeable=False, recycling=False, btrfs=False):
|
||||
self.name = name
|
||||
self.writeable = writeable
|
||||
self.recycling = recycling
|
||||
self.btrfs = btrfs
|
||||
|
||||
|
||||
class SambaOptions(db.Model):
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
option = db.Column(db.String, nullable=False)
|
||||
value = db.Column(db.String, nullable=False)
|
||||
sambashare_id = db.Column(db.Integer, db.ForeignKey('samba_share.id'), nullable=False)
|
|
@ -6,14 +6,19 @@
|
|||
{% block body %}
|
||||
<div class="topspacer"></div>
|
||||
<div class="ui container">
|
||||
<a href="{{ url_for('samba_global') }}">
|
||||
<a href="{{ url_for('.config') }}">
|
||||
<div class="ui primary labeled icon button">
|
||||
<i class="edit icon"></i> Samba global
|
||||
<i class="edit icon"></i> Konfigurieren
|
||||
</div>
|
||||
</a>
|
||||
<a href="{{ url_for('samba_add') }}">
|
||||
<a href="{{ url_for('.add') }}">
|
||||
<div class="ui primary labeled icon button">
|
||||
<i class="plus icon"></i> Samba add
|
||||
<i class="plus icon"></i> Freigabe hinzufügen
|
||||
</div>
|
||||
</a>
|
||||
<a href="{{ url_for('.index') }}">
|
||||
<div class="ui primary labeled icon button">
|
||||
<i class="magic icon"></i> Generieren
|
||||
</div>
|
||||
</a>
|
||||
<table class="ui celled fixed table">
|
40
dirkules/samba/views.py
Normal file
40
dirkules/samba/views.py
Normal file
|
@ -0,0 +1,40 @@
|
|||
from dirkules import db
|
||||
|
||||
from dirkules.config import staticDir
|
||||
from flask import render_template, url_for, request, redirect
|
||||
from dirkules.samba import bp_samba
|
||||
from dirkules.samba.models import SambaShare
|
||||
from dirkules.validation.validators import SambaCleaningForm, SambaAddForm
|
||||
|
||||
|
||||
@bp_samba.route('/', methods=['GET'])
|
||||
def index():
|
||||
shares = SambaShare.query.order_by(db.asc(db.collate(SambaShare.name, 'NOCASE'))).all()
|
||||
return render_template('samba/index.html', shares=shares)
|
||||
|
||||
|
||||
@bp_samba.route('/config', methods=['GET', 'POST'])
|
||||
def config():
|
||||
form = SambaCleaningForm(request.form)
|
||||
if request.method == 'POST' and form.validate():
|
||||
print("Input:")
|
||||
print(form.workgroup.data)
|
||||
print(form.server_string.data)
|
||||
return redirect(url_for('samba_global'))
|
||||
file = open(staticDir + "/conf/samba_global.conf")
|
||||
conf = list()
|
||||
while True:
|
||||
line = file.readline()
|
||||
if line != '':
|
||||
conf.append(line.rstrip())
|
||||
else:
|
||||
break
|
||||
return render_template('samba/config.html', form=form, conf=conf)
|
||||
|
||||
|
||||
@bp_samba.route('/add', methods=['GET', 'POST'])
|
||||
def add():
|
||||
form = SambaAddForm(request.form)
|
||||
if request.method == 'POST' and form.validate():
|
||||
return redirect(url_for('samba'))
|
||||
return render_template('samba/add.html', form=form)
|
|
@ -23,7 +23,7 @@
|
|||
<a class="item" href="{{ url_for('drives') }}"><i class="hdd icon"></i> Festplatten</a>
|
||||
<a class="item" href="{{ url_for('pools') }}"><i class="server icon"></i> Pools</a>
|
||||
<a class="item" href="{{ url_for('cleaning') }}"><i class="trash icon"></i> Cleaning</a>
|
||||
<a class="item" href="{{ url_for('samba') }}"><i class="share alternate icon"></i> Samba</a>
|
||||
<a class="item" href="{{ url_for('samba.index') }}"><i class="share alternate icon"></i> Samba</a>
|
||||
<div class="right menu">
|
||||
<a class="ui item" href="{{ url_for('about') }}">über Dirkules</a>
|
||||
</div>
|
||||
|
|
|
@ -6,7 +6,7 @@ from dirkules import app, db, scheduler, app_version
|
|||
import dirkules.manager.serviceManager as servMan
|
||||
import dirkules.manager.driveManager as driveMan
|
||||
import dirkules.manager.cleaning as cleaningMan
|
||||
from dirkules.models import Drive, Cleaning, SambaShare, Pool
|
||||
from dirkules.models import Drive, Cleaning, Pool
|
||||
import dirkules.manager.viewManager as viewManager
|
||||
from dirkules.validation.validators import CleaningForm, SambaCleaningForm, SambaAddForm, PoolAddForm
|
||||
from dirkules.config import staticDir
|
||||
|
@ -146,36 +146,3 @@ def add_cleaning():
|
|||
viewManager.create_cleaning_obj(form.jobname.data, form.path.data, form.active.data)
|
||||
return redirect(url_for('cleaning'))
|
||||
return render_template('add_cleaning.html', form=form)
|
||||
|
||||
|
||||
@app.route('/samba', methods=['GET'])
|
||||
def samba():
|
||||
shares = SambaShare.query.order_by(db.asc(db.collate(SambaShare.name, 'NOCASE'))).all()
|
||||
return render_template('samba.html', shares=shares)
|
||||
|
||||
|
||||
@app.route('/samba/global', methods=['GET', 'POST'])
|
||||
def samba_global():
|
||||
form = SambaCleaningForm(request.form)
|
||||
if request.method == 'POST' and form.validate():
|
||||
print("Input:")
|
||||
print(form.workgroup.data)
|
||||
print(form.server_string.data)
|
||||
return redirect(url_for('samba_global'))
|
||||
file = open(staticDir + "/conf/samba_global.conf")
|
||||
conf = list()
|
||||
while True:
|
||||
line = file.readline()
|
||||
if line != '':
|
||||
conf.append(line.rstrip())
|
||||
else:
|
||||
break
|
||||
return render_template('samba_global.html', form=form, conf=conf)
|
||||
|
||||
|
||||
@app.route('/samba/add', methods=['GET', 'POST'])
|
||||
def samba_add():
|
||||
form = SambaAddForm(request.form)
|
||||
if request.method == 'POST' and form.validate():
|
||||
return redirect(url_for('samba'))
|
||||
return render_template('samba_add.html', form=form)
|
||||
|
|
Loading…
Add table
Reference in a new issue