Газовая вертикаль точек подключения: - Миграция 181: gas_grs_capacity (ГРС с выходами; UNIQUE NULLS NOT DISTINCT на (grs_name_norm, output_name) — грабли #140). - gazprom_grs_loader: bs4-парсер инлайн HTML-таблицы «техническая возможность» ГТЕ (~316 ГРС; гео-блок → RUN-ON-PROD): header-driven маппинг колонок, rowspan forward-fill имени (допущение col-0 задокументировано), числа через общий parse_reserve_number, SAVEPOINT per-row, unknown-колонки → raw jsonb. - Celery sync_gas_grs_capacity + beat вт 05:00 MSK. - Endpoint connection-capacity: gas.city_grs (городские ГРС Свердловск/ Екатеринбург, агрегация по выходам) + gas.total_free_th_m3_h; graceful при отсутствии таблицы (schema-first окно). reserve_note у ПС ЕЭСК без опубликованного резерва: «Резерв — по запросу в АО «ЕЭСК» (город)». - Схемы GasGrsRow/GasCapacityBlock/reserve_note аддитивны; api-types +31/-0. - Фронт: блок «ГАЗ» в карточке резервов (по-ГРС «свободно X из Y тыс. м³/ч», бейджи резерв/исчерпана, расшивка, N выходов, суммарная строка) + серая reserve_note-строка в попапе ЦП. Числа через toFiniteNumber. 57 backend-тестов зелёные; deep-review ✅ APPROVE (2 minor-нота учтены). |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| admin_cadastre.py | ||
| admin_etl.py | ||
| admin_jobs.py | ||
| admin_leads.py | ||
| admin_scrape.py | ||
| admin_weight_profiles.py | ||
| analytics.py | ||
| chat.py | ||
| concepts.py | ||
| custom_pois.py | ||
| insights.py | ||
| landing.py | ||
| locations.py | ||
| market.py | ||
| me.py | ||
| own_projects.py | ||
| parcels.py | ||
| photos.py | ||
| pilot.py | ||
| ping.py | ||
| trade_in.py | ||
| users.py | ||