more samba improvements

This commit is contained in:
Daniel 2019-05-02 19:10:31 +02:00
parent ba3ca5b352
commit 677099dab6
3 changed files with 60 additions and 9 deletions

View file

@ -37,7 +37,7 @@ class Partitions(db.Model):
drive_id = db.Column(db.Integer, db.ForeignKey('drives.id'))
name = db.Column(db.String)
fs = db.Column(db.String)
size =db.Column(db.String)
size = db.Column(db.String)
uuid = db.Column(db.String)
mountpoint = db.Column(db.String)
label = db.Column(db.String)
@ -67,3 +67,27 @@ class Cleaning(db.Model):
self.name = name
self.path = path
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)

View file

@ -1,12 +1,34 @@
{% extends "base.html" %}
{% block title %}Dashboard{% endblock %}
{% block head %}
{{ super() }}
{{ super() }}
{% endblock %}
{% block body %}
<a href="{{ url_for('samba_global') }}">
<div class="ui primary labeled icon button">
<i class="plus icon"></i> Samba Global conf
</div>
</a>
<a href="{{ url_for('samba_global') }}">
<div class="ui primary labeled icon button">
<i class="plus icon"></i> Samba Global conf
</div>
</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 %}

View file

@ -2,7 +2,7 @@ from flask import Flask, render_template, redirect, request, url_for, flash
from dirkules import app, db
import dirkules.driveManagement.driveController as drico
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
from dirkules.validation.validators import CleaningForm, samba_cleaning_form
from sqlalchemy import asc, collate
@ -72,10 +72,15 @@ def add_cleaning():
@app.route('/samba', methods=['GET'])
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'])
def samba_global():
db.session.add(SambaShare("global"))
db.session.commit()
form = samba_cleaning_form(request.form)
if request.method == 'POST' and form.validate():
print("Input:")