modifier et supprimer un fichier

This commit is contained in:
2023-07-13 16:13:22 +02:00
parent dcc2cd3712
commit 8ec33ec54c
6 changed files with 93 additions and 7 deletions

Binary file not shown.

View File

@@ -10,5 +10,6 @@ def includeme(config):
config.add_route('tags', '/tags')
config.add_route('tag_edit', '/tag_edit/{id}')
config.add_route('uploads', '/uploads')
config.add_route('upload_edit', '/upload_edit/{filename}')
config.add_route('users', '/users')
config.add_route('user_edit', '/user_edit/{name}')

View File

@@ -0,0 +1,52 @@
{% extends "layout.jinja2" %}
{% block content %}
{% if message %}
{{ message }}
{% endif %}
<form action="{{request.route_url('upload_edit', filename=filename)}}" method="post" class="form">
<div class="form-group">
<label for="new_name">Nouveau nom</label>
<input type="text" name="new_name" class="form-control" value="{{ file }}">
</div>
<br>
<div class="form-group">
<a class="btn btn-default" href="{{ request.route_url('uploads') }}"><span class="glyphicon glyphicon-chevron-left"></span> Retour</a>
<button class="btn btn-primary" type="submit" name="form.submitted">
<span class="glyphicon glyphicon-ok"></span> Renommer</button>
<button class="btn btn-danger" type="button" data-toggle="modal" data-target="#confirmDelete">
<span class="glyphicon glyphicon-remove"></span> Supprimer</button>
</div>
</form>
<!-- Modal : Confirmation SUPRESSION -->
<div id="confirmDelete" class="modal" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">Supprimer un FICHIER</h4>
</div>
<div class="modal-body">
<!-- The form is placed inside the body of modal -->
<p>Etes-vous certain(e) de vouloir supprimer ce fichier :<br>
<b>{{ filename }}</b> ?</p>
</div>
<div class="modal-footer">
<div class="form-group">
<div class="text-center">
<form id="confirmForm" method="post">
<button type="submit" class="btn btn-danger" name="form.deleted">Supprimer</button>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View File

@@ -1,5 +1,4 @@
{% extends "cao_blogr:templates/layout.jinja2" %}
{% block content %}
<div class="panel-group">
@@ -30,7 +29,9 @@
<table id="uploads_list" class="table table-striped table-bordered table-condensed">
{% for entry in files_list %}
<tr>
<td>{{ entry[1] }}</td>
<td><a href="{{ entry[2] }}">{{ entry[0] }}</a></td>
<td class="text-right">{{ entry[1] }}</td>
<td class="text-center"><a href="{{request.route_url('upload_edit', filename=entry[0])}}">[ Modifier ]</a></td>
</tr>
{% endfor %}
</table>

View File

@@ -162,10 +162,13 @@ def uploads(request):
files_list = []
# récupérer tous les fichiers contenus dans dossier static/uploads
for f in os.scandir(folder_path):
files = []
files.append(request.static_url('cao_blogr:static/uploads/') + f.name)
files.append(f.name)
files_list.append(files)
file = []
file_url = request.static_url('cao_blogr:static/uploads/') + f.name
file_path = folder_path + f.name
file.append(f.name)
file.append('%s Ko' % round(os.path.getsize(file_path) / 1024))
file.append(file_url)
files_list.append(file)
if 'form.submitted' in request.params:
@@ -211,3 +214,32 @@ def uploads(request):
}
@view_config(route_name='upload_edit', renderer='cao_blogr:templates/upload_edit.jinja2')
def upload_edit(request):
filename = request.matchdict['filename']
message = ''
folder_path = request.registry.settings['uploads_dir']
if 'form.submitted' in request.params:
new_name = request.params["new_name"].lower()
ext = new_name[-3:]
# comparer le nouveau ext avec l'ancien
if ext == filename[-3:]:
os.rename(folder_path + filename, folder_path + new_name)
return HTTPFound(location=request.route_url('uploads'))
else:
message = "Extension de fichier invalide !"
if 'form.deleted' in request.params:
os.remove(folder_path + filename)
request.session.flash("Le fichier a été supprimé avec succès.", 'success')
return HTTPFound(location=request.route_url('uploads'))
return {
'page_title': "Modifier : " + filename,
'message': message,
'filename': filename,
'file_url': request.static_url('cao_blogr:static/uploads/') + filename,
}