mirror of
https://github.com/vale981/dirkules
synced 2025-03-06 01:41:38 -05:00
more samba improvements
This commit is contained in:
parent
ba3ca5b352
commit
677099dab6
3 changed files with 60 additions and 9 deletions
|
@ -37,7 +37,7 @@ class Partitions(db.Model):
|
||||||
drive_id = db.Column(db.Integer, db.ForeignKey('drives.id'))
|
drive_id = db.Column(db.Integer, db.ForeignKey('drives.id'))
|
||||||
name = db.Column(db.String)
|
name = db.Column(db.String)
|
||||||
fs = db.Column(db.String)
|
fs = db.Column(db.String)
|
||||||
size =db.Column(db.String)
|
size = db.Column(db.String)
|
||||||
uuid = db.Column(db.String)
|
uuid = db.Column(db.String)
|
||||||
mountpoint = db.Column(db.String)
|
mountpoint = db.Column(db.String)
|
||||||
label = db.Column(db.String)
|
label = db.Column(db.String)
|
||||||
|
@ -67,3 +67,27 @@ class Cleaning(db.Model):
|
||||||
self.name = name
|
self.name = name
|
||||||
self.path = path
|
self.path = path
|
||||||
self.state = state
|
self.state = state
|
||||||
|
|
||||||
|
|
||||||
|
class SambaShare(db.Model):
|
||||||
|
__tablename__ = 'samba_share'
|
||||||
|
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):
|
||||||
|
__tablename__ = 'samba_options'
|
||||||
|
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)
|
||||||
|
|
|
@ -1,12 +1,34 @@
|
||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
{% block title %}Dashboard{% endblock %}
|
{% block title %}Dashboard{% endblock %}
|
||||||
{% block head %}
|
{% block head %}
|
||||||
{{ super() }}
|
{{ super() }}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% block body %}
|
{% block body %}
|
||||||
<a href="{{ url_for('samba_global') }}">
|
<a href="{{ url_for('samba_global') }}">
|
||||||
<div class="ui primary labeled icon button">
|
<div class="ui primary labeled icon button">
|
||||||
<i class="plus icon"></i> Samba Global conf
|
<i class="plus icon"></i> Samba Global conf
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
|
<table class="ui celled fixed table">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Name</th>
|
||||||
|
<th>Schreibzugriff</th>
|
||||||
|
<th>Papierkorb</th>
|
||||||
|
<th>BtrFS Optimierungen</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
|
||||||
|
<tbody>
|
||||||
|
{% for share in shares %}
|
||||||
|
<tr>
|
||||||
|
<td>{{ share.name }}</td>
|
||||||
|
<td>{{ share.writeable }}</td>
|
||||||
|
<td>{{ share.recycling }}</td>
|
||||||
|
<td>{{ share.btrfs }}</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -2,7 +2,7 @@ from flask import Flask, render_template, redirect, request, url_for, flash
|
||||||
from dirkules import app, db
|
from dirkules import app, db
|
||||||
import dirkules.driveManagement.driveController as drico
|
import dirkules.driveManagement.driveController as drico
|
||||||
import dirkules.serviceManagement.serviceManager as servMan
|
import dirkules.serviceManagement.serviceManager as servMan
|
||||||
from dirkules.models import Drive, Cleaning
|
from dirkules.models import Drive, Cleaning, SambaShare
|
||||||
import dirkules.viewManager.viewManager as viewManager
|
import dirkules.viewManager.viewManager as viewManager
|
||||||
from dirkules.validation.validators import CleaningForm, samba_cleaning_form
|
from dirkules.validation.validators import CleaningForm, samba_cleaning_form
|
||||||
from sqlalchemy import asc, collate
|
from sqlalchemy import asc, collate
|
||||||
|
@ -72,10 +72,15 @@ def add_cleaning():
|
||||||
|
|
||||||
@app.route('/samba', methods=['GET'])
|
@app.route('/samba', methods=['GET'])
|
||||||
def samba():
|
def samba():
|
||||||
return render_template('samba.html')
|
shares = []
|
||||||
|
for share in SambaShare.query.order_by(asc(collate(SambaShare.name, 'NOCASE'))).all():
|
||||||
|
shares.append(viewManager.db_object_as_dict(share))
|
||||||
|
return render_template('samba.html', shares=shares)
|
||||||
|
|
||||||
@app.route('/samba/global', methods=['GET', 'POST'])
|
@app.route('/samba/global', methods=['GET', 'POST'])
|
||||||
def samba_global():
|
def samba_global():
|
||||||
|
db.session.add(SambaShare("global"))
|
||||||
|
db.session.commit()
|
||||||
form = samba_cleaning_form(request.form)
|
form = samba_cleaning_form(request.form)
|
||||||
if request.method == 'POST' and form.validate():
|
if request.method == 'POST' and form.validate():
|
||||||
print("Input:")
|
print("Input:")
|
||||||
|
|
Loading…
Add table
Reference in a new issue