naeel
|
db2f6cc6f1
|
fix(upload): MIME по расширению, а не content_type
curl/браузеры шлют application/octet-stream — _guess_mime() не вызывался.
Теперь приоритет: расширение файла > content_type
|
2026-06-14 06:52:37 +04:00 |
|
naeel
|
4635ed4c57
|
feat(test): action 'exec' — INSERT/UPDATE/DDL через db.execute()
/test sql → db.query() → fetchall() → ломается на CREATE TABLE
/test exec → db.execute() → commit без fetch → для DDL/INSERT/UPDATE
|
2026-06-14 06:44:39 +04:00 |
|
naeel
|
9d01dbae00
|
fix(schema): db.query → db.execute для DDL
DDL (CREATE TABLE) не возвращает строк — db.query() делал fetchall() и ломался.
db.execute() делает commit без fetch — правильно для DDL.
|
2026-06-14 06:44:01 +04:00 |
|
naeel
|
8db35e3b9d
|
feat(upload): слой загрузки документов + регистрация в app.py
POST /upload (multipart/form-data: file):
1. Сохраняет original_bytes в documents (status='uploaded')
2. parser.parse() → elements
3. textify.to_text() → parsed_text
4. UPDATE documents SET parsed_text, status='parsed'
5. Возвращает {document_id, filename, status, elements_count}
При ошибке парсинга: status='error', error_message, 422
|
2026-06-14 06:11:23 +04:00 |
|
naeel
|
ba2e8552e7
|
feat(db): execute() + query_one() — INSERT/UPDATE/DELETE и единичный SELECT
- execute(sql, params) → (rowcount, error) — для INSERT/UPDATE/DELETE
- query_one(sql, params) → (dict, error) — первая строка как словарь
- авто-commit и rollback при ошибке
|
2026-06-14 06:11:02 +04:00 |
|
naeel
|
cbfba0bc54
|
feat: schema.py (DDL 5 таблиц), db.py без DDL, app.py минимальный, test_routes с комментариями
По рекомендации Sonnet:
- schema.py — все DDL (documents, contracts, supplements, spec_rows, spec_history)
- db.py — только транспорт (connect/query), DDL убран
- app.py — минимальный: ensure_schema() + register_blueprint()
- test_routes.py — подробные комментарии, исправлен импорт psysql
|
2026-06-13 17:14:48 +04:00 |
|
naeel
|
308be45ce8
|
feat: parser.py — слой парсера docx/pdf/doc/zip (без фильтрации)
|
2026-06-13 13:05:35 +04:00 |
|
naeel
|
6b5a6f79aa
|
feat: /test createdb — создание БД через API
|
2026-06-13 12:48:33 +04:00 |
|
naeel
|
b5c007044f
|
feat: ensure_db() — автосоздание БД при старте
|
2026-06-13 12:46:18 +04:00 |
|
naeel
|
c7fbc4dc07
|
fix: db.connect() возвращает ошибку, /test показывает детали
|
2026-06-13 12:34:55 +04:00 |
|
naeel
|
23cec8686e
|
fix: абсолютные импорты вместо относительных (ImportError)
|
2026-06-13 12:17:57 +04:00 |
|
naeel
|
dbbc8ea5fe
|
feat: слои db.py + test_routes (Blueprint /test)
|
2026-06-13 12:02:46 +04:00 |
|
naeel
|
684b4cc9c0
|
feat: PostgreSQL подключение, переменные в .env.example
|
2026-06-13 11:57:31 +04:00 |
|
naeel
|
9b6f5b9c5e
|
fix: убрал debug=True, смягчил версии в requirements, health возвращает plain text
|
2026-06-13 11:45:39 +04:00 |
|
naeel
|
96d85189c1
|
align: классовый app.py, static/, Dockerfile как в шаблоне
|
2026-06-13 11:45:04 +04:00 |
|
naeel
|
bbf65527b1
|
restructure: код в site/, согласно платформе Flask
|
2026-06-13 11:37:13 +04:00 |
|