diff --git a/db_edit.py b/db_edit.py index 8b85d81..77daadc 100644 --- a/db_edit.py +++ b/db_edit.py @@ -113,7 +113,7 @@ class DatabaseManager: with self.conn.cursor() as cursor: cursor.execute(""" SELECT id, vk_post_id, shortname, text, published_at, - marked_for_publication, published_in_tg, is_event, is_poll, action_number + marked_for_publication, published_in_tg, is_event, is_poll, action_number, auto_unit FROM posts ORDER BY published_at DESC """) @@ -141,6 +141,17 @@ class DatabaseManager: cursor.execute("SELECT * FROM events WHERE id = %s", (event_id,)) return cursor.fetchone() + def get_venues(self): + """Получает список всех уникальных площадок из таблицы events""" + with self.conn.cursor() as cursor: + cursor.execute(""" + SELECT DISTINCT unit_name + FROM events + WHERE unit_name IS NOT NULL AND unit_name != '' + ORDER BY unit_name + """) + return cursor.fetchall() + def toggle_event_publication(self, event_id): with self.conn.cursor() as cursor: cursor.execute(""" @@ -305,8 +316,8 @@ class DatabaseManager: vk_post_id, shortname, text, image_url, vk_post_url, published_at, is_event, is_poll, poll_question, poll_options, poll_multiple, poll_end_date, marked_for_publication, published_in_tg, tg_publication_date, tg_message_id, - tg_poll_id, tg_markpost_id, tg_poll_results, action_number - ) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s) + tg_poll_id, tg_markpost_id, tg_poll_results, action_number, auto_unit + ) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s) """ values = ( clean_int(data['vk_post_id']), @@ -328,7 +339,8 @@ class DatabaseManager: clean_int(data.get('tg_poll_id', '')), clean_int(data.get('tg_markpost_id', '')), data.get('tg_poll_results', ''), - clean_int(data.get('action_number', '')) + clean_int(data.get('action_number', '')), + data.get('auto_unit', '') ) cursor.execute(query, values) self.conn.commit() @@ -354,7 +366,7 @@ class DatabaseManager: published_at = %s, is_event = %s, is_poll = %s, poll_question = %s, poll_options = %s, poll_multiple = %s, poll_end_date = %s, marked_for_publication = %s, published_in_tg = %s, tg_publication_date = %s, tg_message_id = %s, - tg_poll_id = %s, tg_markpost_id = %s, tg_poll_results = %s, action_number = %s + tg_poll_id = %s, tg_markpost_id = %s, tg_poll_results = %s, action_number = %s, auto_unit = %s WHERE id = %s """ values = ( @@ -378,6 +390,7 @@ class DatabaseManager: clean_int(data.get('tg_markpost_id', '')), data.get('tg_poll_results', ''), clean_int(data.get('action_number', '')), + data.get('auto_unit', ''), post_id ) cursor.execute(query, values) @@ -597,6 +610,16 @@ def logout(): log_event(f"Пользователь {username} вышел из системы с IP {client_ip}") return redirect(url_for('zilant.login')) +@bp.route('/api/venues') +@login_required +def api_venues(): + db = get_db() + try: + venues = db.get_venues() + return jsonify(venues) + finally: + db.close() + @bp.route('/api/posts') @login_required def api_posts(): @@ -615,7 +638,8 @@ def api_posts(): 'published_in_tg': bool(post['published_in_tg']), 'is_event': bool(post['is_event']), 'is_poll': bool(post['is_poll']), - 'action_number': post['action_number'] + 'action_number': post['action_number'], + 'auto_unit': post['auto_unit'] }) return jsonify(posts_list) finally: diff --git a/templates/edit_post.html b/templates/edit_post.html index 4edd934..fb3a79b 100644 --- a/templates/edit_post.html +++ b/templates/edit_post.html @@ -58,6 +58,14 @@ +