diff options
author | Alejandro Sirgo Rica <asirgo@soleta.eu> | 2024-05-10 17:03:11 +0200 |
---|---|---|
committer | Alejandro Sirgo Rica <asirgo@soleta.eu> | 2024-05-12 14:59:53 +0200 |
commit | 6034ba2537368f7da0569e7614bd2c7f110457b1 (patch) | |
tree | 6c9f353596a6c78adcc0f37d897c3011f950841b | |
parent | a04ef4e421ec29a3fb2f8181b5c7af381767001c (diff) |
Make partition id non editable in partition form
Show the partition id as a non editable label in each partition
of the Partition and Format form.
Assign sequential partition id from top to down and recalculate
every partition id when a partition is removed.
-rw-r--r-- | ogcp/forms/action_forms.py | 4 | ||||
-rw-r--r-- | ogcp/static/js/ogcp.js | 5 | ||||
-rw-r--r-- | ogcp/templates/actions/setup.html | 2 | ||||
-rw-r--r-- | ogcp/templates/base.html | 2 | ||||
-rw-r--r-- | ogcp/views.py | 14 |
5 files changed, 16 insertions, 11 deletions
diff --git a/ogcp/forms/action_forms.py b/ogcp/forms/action_forms.py index 1b77795..f2a3602 100644 --- a/ogcp/forms/action_forms.py +++ b/ogcp/forms/action_forms.py @@ -30,8 +30,8 @@ class WOLForm(FlaskForm): submit = SubmitField(label=_l('Submit')) class PartitionForm(FlaskForm): - partition = SelectField(label=_l('Partition'), - choices=range(1,10)) + partition = IntegerField(label=_l('Partition'), + render_kw={'readonly': True}) part_type = SelectField(label=_l('Type'), choices=[('LINUX', 'Linux'), ('NTFS', 'NTFS'), diff --git a/ogcp/static/js/ogcp.js b/ogcp/static/js/ogcp.js index 4779bf4..1b6d888 100644 --- a/ogcp/static/js/ogcp.js +++ b/ogcp/static/js/ogcp.js @@ -313,6 +313,8 @@ function AddPartition(evt) { const id = $(this).attr('id').replace(/(.*)-(\d{1,4})-(.*)/, `$1-${elem_num}-$3`); $(this).attr('name', id).attr('id', id).val('').removeAttr("checked"); }); + let part_field = row.find('td').filter(':first')[0]; + part_field.innerText = elem_num + 1; row.show(); oldrow.after(row); } @@ -329,6 +331,9 @@ function RemovePartition(evt) { const id = $(this).attr('id').replace(/(.*)-(\d{1,4})-(.*)/, `$1-${index}-$3`); $(this).attr('name', id).attr('id', id); } + + let part_field = $(this).find('td').filter(':first')[0]; + part_field.innerText = index + 1; $(this).find('input').filter(':first').each(update_references); $(this).find('.form-control').each(update_references); }); diff --git a/ogcp/templates/actions/setup.html b/ogcp/templates/actions/setup.html index 68aefe9..014fb7a 100644 --- a/ogcp/templates/actions/setup.html +++ b/ogcp/templates/actions/setup.html @@ -56,7 +56,7 @@ {% for partition in form.partitions %} <tr data-toggle="fieldset-entry"> {{ partition.hidden_tag() }} - <td>{{ partition.partition(class_="form-control") }}</td> + <td>{{ partition.partition.data }}</td> <td>{{ partition.part_type(class_="form-control") }}</td> <td>{{ partition.fs(class_="form-control") }}</td> <td>{{ partition.size(class_="form-control") }}</td> diff --git a/ogcp/templates/base.html b/ogcp/templates/base.html index 9ade1d2..49f9804 100644 --- a/ogcp/templates/base.html +++ b/ogcp/templates/base.html @@ -111,7 +111,7 @@ <!-- ChartJS --> <script src="{{ url_for('static', filename='AdminLTE/plugins/chart.js/Chart.min.js') }}"></script> - <script src="{{ url_for('static', filename='js/ogcp.js') }}?v=2"></script> + <script src="{{ url_for('static', filename='js/ogcp.js') }}?v=3"></script> <script> // error messages diff --git a/ogcp/views.py b/ogcp/views.py index fde7590..77402d6 100644 --- a/ogcp/views.py +++ b/ogcp/views.py @@ -659,24 +659,24 @@ def action_setup_modify(): 'cache_size': str(0), 'partition_setup': []} - required_partitions = ["1", "2", "3", "4"] + partition_index = 0 + for partition in form.partitions: - print(partition) - partition_setup = {'partition': str(partition.partition.data), + partition_index += 1 + partition_setup = {'partition': str(partition_index), 'code': str(partition.part_type.data), 'filesystem': str(partition.fs.data), 'size': str(partition.size.data * 1024), 'format': str(int(partition.format_partition.data))} payload['partition_setup'].append(partition_setup) - if partition.partition.data in required_partitions: - required_partitions.remove(partition.partition.data) + if partition.part_type.data == 'CACHE': payload['cache'] = '1' payload['cache_size'] = str(partition.size.data * 1024) - for partition in required_partitions: + for partition_index in range(len(form.partitions) + 1, 5): empty_part = { - 'partition': partition, + 'partition': str(partition_index), 'code': 'EMPTY', 'filesystem': 'EMPTY', 'size': '0', |