mirror of https://git.48k.eu/ogcp
238 lines
8.8 KiB
Python
238 lines
8.8 KiB
Python
# Copyright (C) 2020-2021 Soleta Networks <info@soleta.eu>
|
|
#
|
|
# This program is free software: you can redistribute it and/or modify it under
|
|
# the terms of the GNU Affero General Public License as published by the
|
|
# Free Software Foundation; either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
|
|
from wtforms import (
|
|
Form, SubmitField, HiddenField, SelectField, BooleanField, IntegerField,
|
|
StringField, RadioField, FormField, FieldList, DecimalField, TextAreaField
|
|
)
|
|
from wtforms.validators import InputRequired
|
|
from flask_wtf import FlaskForm
|
|
from flask_babel import lazy_gettext as _l
|
|
from flask_babel import _
|
|
|
|
|
|
class GenericForm(FlaskForm):
|
|
ips = HiddenField()
|
|
ids = HiddenField()
|
|
server = HiddenField()
|
|
submit = SubmitField(label=_l('Submit'))
|
|
|
|
|
|
class WOLForm(FlaskForm):
|
|
ips = HiddenField()
|
|
wol_type = SelectField(label=_l('Type'),
|
|
choices=[('broadcast', 'Broadcast'),
|
|
('unicast', 'Unicast')])
|
|
submit = SubmitField(label=_l('Submit'))
|
|
|
|
class PartitionForm(FlaskForm):
|
|
partition = IntegerField(label=_l('Partition'),
|
|
render_kw={'readonly': True},
|
|
default=1)
|
|
part_type = SelectField(label=_l('Type'),
|
|
choices=[('LINUX', 'Linux'),
|
|
('NTFS', 'NTFS'),
|
|
('CACHE', 'CACHE'),
|
|
('EFI', 'EFI'),
|
|
('DATA', 'DATA'),
|
|
('LINUX-SWAP', 'LINUX-SWAP'),
|
|
('EXTENDED', 'EXTENDED'),
|
|
('FAT32', 'FAT32'),
|
|
('LINUX-LVM', 'LINUX-LVM'),
|
|
('LINUX-RAID', 'LINUX-RAID'),
|
|
('WIN-RECOV', 'WIN-RECOV'),
|
|
('HNTFS', 'HNTFS'),
|
|
('HFAT32', 'HFAT32'),
|
|
('HNTFS-WINRE', 'HNTFS-WINRE'),
|
|
('EMPTY', 'Empty')],
|
|
default='EMPTY')
|
|
fs = SelectField(label=_l('Filesystem'),
|
|
choices=[('EXT4', 'EXT4'),
|
|
('NTFS', 'NTFS'),
|
|
('CACHE', 'CACHE'),
|
|
('LINUX-SWAP', 'LINUX-SWAP'),
|
|
('FAT32', 'FAT32'),
|
|
('EMPTY', 'Empty')],
|
|
default='EMPTY')
|
|
size = IntegerField(label=_l('Size (KB)'))
|
|
|
|
class SelectClientForm(FlaskForm):
|
|
ips = HiddenField()
|
|
selected_client = SelectField(label=_l('Select one client as reference to '
|
|
'define the partition scheme'))
|
|
ok = SubmitField(label=_l('Ok'))
|
|
|
|
class SetupForm(FlaskForm):
|
|
ips = HiddenField()
|
|
disk = HiddenField()
|
|
disk_type = SelectField(label=_l('Type'),
|
|
choices=[('MSDOS', 'MBR'),
|
|
('GPT', 'GPT')])
|
|
partitions = FieldList(FormField(PartitionForm),
|
|
min_entries=1,
|
|
max_entries=10)
|
|
|
|
class HardwareForm(FlaskForm):
|
|
ips = HiddenField()
|
|
refresh = SubmitField(label=_l('Refresh'))
|
|
|
|
class SoftwareForm(FlaskForm):
|
|
ips = HiddenField()
|
|
os = SelectField(label=_l('Partition'), choices=[])
|
|
view = SubmitField(label=_l('View'))
|
|
update = SubmitField(label=_l('Update'))
|
|
|
|
class SessionForm(FlaskForm):
|
|
ips = HiddenField()
|
|
os = RadioField(label=_l('Session'), choices=[])
|
|
|
|
class CacheImage(FlaskForm):
|
|
selected = BooleanField()
|
|
image_name = HiddenField()
|
|
clients = HiddenField()
|
|
|
|
class CacheForm(FlaskForm):
|
|
ips = HiddenField()
|
|
images = FieldList(FormField(CacheImage))
|
|
|
|
class ImageRestoreForm(FlaskForm):
|
|
ips = HiddenField()
|
|
partition = SelectField(label=_l('Partition'), choices=[])
|
|
image = SelectField(label=_l('Image'), choices=[])
|
|
method = SelectField(label=_l('Method'),
|
|
choices=[('TIPTORRENT', 'TIPTORRENT'),
|
|
('UNICAST', 'UNICAST'),
|
|
('UNICAST-DIRECT', 'UNICAST-DIRECT')])
|
|
restore = SubmitField(label=_l('Restore'))
|
|
|
|
class RepoForm(FlaskForm):
|
|
server = HiddenField()
|
|
repo_id = HiddenField()
|
|
name = StringField(label=_l('Name'))
|
|
ip = StringField(label=_l('IP'))
|
|
submit = SubmitField(label=_l('Submit'))
|
|
|
|
class FolderForm(FlaskForm):
|
|
folder_id = HiddenField()
|
|
server = HiddenField()
|
|
room = HiddenField()
|
|
center = HiddenField()
|
|
name = StringField(label=_l('Name'))
|
|
submit = SubmitField(label=_l('Submit'))
|
|
|
|
class ClientDetailsForm(FlaskForm):
|
|
server = HiddenField()
|
|
name = StringField(label=_l('Name'))
|
|
ip = StringField(label=_l('IP'),
|
|
validators=[InputRequired()])
|
|
mac = StringField(label=_l('MAC'),
|
|
validators=[InputRequired()])
|
|
serial_number = StringField(label=_l('Serial Number'))
|
|
livedir = SelectField(label=_l('ogLive'),
|
|
choices=[('ogLive', 'Default'),])
|
|
remote = BooleanField(label=_l('Remote'))
|
|
maintenance = BooleanField(label=_l('Maintenance'))
|
|
repo = SelectField(label=_l('Repository'))
|
|
room = SelectField(label=_l('Room'))
|
|
folder_id = HiddenField()
|
|
boot = SelectField(label=_l('Boot Mode'))
|
|
submit = SubmitField(label=_l('Submit'))
|
|
|
|
class ImportClientsForm(FlaskForm):
|
|
server = HiddenField()
|
|
room = SelectField(label=_l('Room'))
|
|
repo = SelectField(label=_l('Repository'))
|
|
dhcpd_conf = TextAreaField(label=_l('dhcpd configuration'))
|
|
import_btn = SubmitField(label=_l('Import'))
|
|
|
|
class BootModeForm(FlaskForm):
|
|
ips = HiddenField()
|
|
boot = SelectField(label=_l('Boot mode'))
|
|
ok = SubmitField(label=_l('Ok'))
|
|
|
|
class OgliveForm(FlaskForm):
|
|
ips = HiddenField()
|
|
oglive = SelectField(label=_l('ogLive'))
|
|
ok = SubmitField(label=_l('Ok'))
|
|
|
|
class ImageCreateForm(FlaskForm):
|
|
ip = HiddenField()
|
|
os = SelectField(label=_l('Partition'), choices=[])
|
|
name = StringField(label=_l('Image name'),
|
|
validators=[InputRequired()])
|
|
description = StringField(label=_l('Description'))
|
|
repository = SelectField(label=_l('Repository'), choices=[],
|
|
validators=[InputRequired()])
|
|
create = SubmitField(label=_l('Create'))
|
|
|
|
|
|
class ImageUpdateForm(FlaskForm):
|
|
ip = HiddenField()
|
|
os = SelectField(label=_l('Partition'), choices=[])
|
|
image = SelectField(label=_l('Image'), choices=[])
|
|
backup = BooleanField(label=_l('Backup'))
|
|
update = SubmitField(label=_l('Update'))
|
|
|
|
|
|
class CenterForm(FlaskForm):
|
|
server = SelectField(label=_l('Server'),
|
|
validators=[InputRequired()])
|
|
center = HiddenField()
|
|
name = StringField(label=_l('Center name'),
|
|
validators=[InputRequired()])
|
|
comment = StringField(label=_l('Comment'))
|
|
submit = SubmitField(label=_l('Submit'))
|
|
|
|
class DeleteCenterForm(FlaskForm):
|
|
server = HiddenField()
|
|
center = HiddenField()
|
|
submit = SubmitField(label=_l('Submit'))
|
|
|
|
class RoomForm(FlaskForm):
|
|
server = HiddenField()
|
|
room = HiddenField()
|
|
center = SelectField(label=_l('Center'),
|
|
validators=[InputRequired()])
|
|
name = StringField(label=_l('Room name'),
|
|
validators=[InputRequired()])
|
|
netmask = StringField(label=_l('Netmask'),
|
|
validators=[InputRequired()])
|
|
gateway = StringField(label=_l('Gateway'),
|
|
validators=[InputRequired()])
|
|
folder_id = HiddenField()
|
|
submit = SubmitField(label=_l('Submit'))
|
|
|
|
class DeleteRoomForm(FlaskForm):
|
|
server = HiddenField()
|
|
room = HiddenField()
|
|
submit = SubmitField(label=_l('Submit'))
|
|
|
|
class ImageDetailsForm(FlaskForm):
|
|
name = StringField(label=_l('Name'))
|
|
description = StringField(label=_l('Description'))
|
|
size = DecimalField(label=_l('Size (MiB)'))
|
|
datasize = DecimalField(label=_l('Datasize (MiB)'))
|
|
modified = StringField(label=_l('Last update'))
|
|
permissions = StringField(label=_l('Permissions'))
|
|
software_id = StringField(label=_l('Software id'))
|
|
|
|
class ServerForm(FlaskForm):
|
|
name = StringField(label=_l('Name'),
|
|
validators=[InputRequired()])
|
|
ip = StringField(label=_l('IP'),
|
|
validators=[InputRequired()])
|
|
port = StringField(label=_l('Port'),
|
|
validators=[InputRequired()])
|
|
api_token = StringField(label=_l('API token'),
|
|
validators=[InputRequired()])
|
|
submit = SubmitField(label=_l('Submit'))
|
|
|
|
class DeleteRepositoryForm(FlaskForm):
|
|
repository = SelectField(label=_l('Repository'),
|
|
validators=[InputRequired()])
|
|
submit = SubmitField(label=_l('Submit'))
|