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"]
|
app_version = app.config["VERSION"]
|
||||||
|
|
||||||
import dirkules.models
|
import dirkules.models
|
||||||
|
import dirkules.samba.models
|
||||||
|
|
||||||
# create db if not exists
|
# create db if not exists
|
||||||
db.create_all()
|
db.create_all()
|
||||||
|
@ -21,3 +22,6 @@ scheduler.init_app(app)
|
||||||
scheduler.start()
|
scheduler.start()
|
||||||
# import views
|
# import views
|
||||||
import dirkules.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.path = path
|
||||||
self.state = state
|
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 %}
|
{% block body %}
|
||||||
<div class="topspacer"></div>
|
<div class="topspacer"></div>
|
||||||
<div class="ui container">
|
<div class="ui container">
|
||||||
<a href="{{ url_for('samba_global') }}">
|
<a href="{{ url_for('.config') }}">
|
||||||
<div class="ui primary labeled icon button">
|
<div class="ui primary labeled icon button">
|
||||||
<i class="edit icon"></i> Samba global
|
<i class="edit icon"></i> Konfigurieren
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
<a href="{{ url_for('samba_add') }}">
|
<a href="{{ url_for('.add') }}">
|
||||||
<div class="ui primary labeled icon button">
|
<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>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
<table class="ui celled fixed table">
|
<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('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('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('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">
|
<div class="right menu">
|
||||||
<a class="ui item" href="{{ url_for('about') }}">über Dirkules</a>
|
<a class="ui item" href="{{ url_for('about') }}">über Dirkules</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -6,7 +6,7 @@ from dirkules import app, db, scheduler, app_version
|
||||||
import dirkules.manager.serviceManager as servMan
|
import dirkules.manager.serviceManager as servMan
|
||||||
import dirkules.manager.driveManager as driveMan
|
import dirkules.manager.driveManager as driveMan
|
||||||
import dirkules.manager.cleaning as cleaningMan
|
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
|
import dirkules.manager.viewManager as viewManager
|
||||||
from dirkules.validation.validators import CleaningForm, SambaCleaningForm, SambaAddForm, PoolAddForm
|
from dirkules.validation.validators import CleaningForm, SambaCleaningForm, SambaAddForm, PoolAddForm
|
||||||
from dirkules.config import staticDir
|
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)
|
viewManager.create_cleaning_obj(form.jobname.data, form.path.data, form.active.data)
|
||||||
return redirect(url_for('cleaning'))
|
return redirect(url_for('cleaning'))
|
||||||
return render_template('add_cleaning.html', form=form)
|
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