diff --git a/database.py b/database.py
index e2edd50..4620c45 100644
--- a/database.py
+++ b/database.py
@@ -263,3 +263,11 @@ class DatabaseManager:
""", (name.strip(), price.strip(), float(price_numeric), description.strip(), int(is_active), service_id.strip()))
conn.commit()
return cursor.rowcount > 0
+
+ def delete_service(self, service_id: str) -> bool:
+ """Удалить услугу из базы данных."""
+ with self._get_connection() as conn:
+ cursor = conn.cursor()
+ cursor.execute("DELETE FROM services WHERE id = ?", (service_id.strip(),))
+ conn.commit()
+ return cursor.rowcount > 0
diff --git a/server.py b/server.py
index db9fbc4..5594c81 100644
--- a/server.py
+++ b/server.py
@@ -915,11 +915,15 @@ DASHBOARD_TEMPLATE = """
{% endif %}
-
+ |
+
|
{% endfor %}
@@ -1127,6 +1131,30 @@ DASHBOARD_TEMPLATE = """
});
}
+ function deleteService(id, name) {
+ if (!confirm(`Вы действительно хотите безвозвратно удалить услугу "${name}" (ID: ${id})?`)) {
+ return;
+ }
+
+ fetch(`/admin/services/delete/${id}`, {
+ method: 'POST',
+ headers: { 'Content-Type': 'application/json' }
+ })
+ .then(res => res.json())
+ .then(data => {
+ if (data.status === 'success') {
+ alert('Услуга успешно удалена!');
+ window.location.reload();
+ } else {
+ alert('Ошибка: ' + data.message);
+ }
+ })
+ .catch(err => {
+ console.error(err);
+ alert('Не удалось связаться с сервером');
+ });
+ }
+
function filterStatus(status) {
currentFilter = status;
@@ -1377,6 +1405,20 @@ def admin_edit_service(service_id):
except Exception as e:
return jsonify({"status": "error", "message": str(e)}), 500
+@app.route('/admin/services/delete/', methods=['POST'])
+def admin_delete_service(service_id):
+ if not session.get('logged_in'):
+ return jsonify({"status": "error", "message": "Не авторизован"}), 403
+
+ try:
+ success = db.delete_service(service_id)
+ if success:
+ return jsonify({"status": "success", "message": "Услуга успешно удалена"})
+ else:
+ return jsonify({"status": "error", "message": "Не удалось удалить услугу (возможно, она не найдена)"}), 404
+ except Exception as e:
+ return jsonify({"status": "error", "message": str(e)}), 500
+
@app.route('/admin/check-payment/', methods=['POST'])
def admin_check_payment(reg_id):
if not session.get('logged_in'):