feat: Email DKIM/SPF/DMARC config + year_established data fill
- Added release notes v1.19.0 with today's changes - Email: DKIM, SPF, DMARC configured for nordabiznes.pl - Data: year_established filled for 71/111 companies (64%) - Script: fix_year_established.py for KRS date migration Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
c8075e0872
commit
22e73e4f80
17
app.py
17
app.py
@ -8786,6 +8786,23 @@ def report_categories():
|
|||||||
def release_notes():
|
def release_notes():
|
||||||
"""Historia zmian platformy."""
|
"""Historia zmian platformy."""
|
||||||
releases = [
|
releases = [
|
||||||
|
{
|
||||||
|
'version': 'v1.19.0',
|
||||||
|
'date': '14 stycznia 2026',
|
||||||
|
'badges': ['new', 'improve'],
|
||||||
|
'new': [
|
||||||
|
'Email: Konfiguracja DKIM, SPF i DMARC dla domeny nordabiznes.pl',
|
||||||
|
'Email: Wysyłka z adresu noreply@nordabiznes.pl (Microsoft 365)',
|
||||||
|
'Dane firm: Rok założenia uzupełniony dla 71 z 111 firm (64%)',
|
||||||
|
'Dane firm: Automatyczne uzupełnianie z KRS (krs_registration_date)',
|
||||||
|
'Dane firm: Automatyczne uzupełnianie z CEIDG (business_start_date)',
|
||||||
|
'Integracja: API CEIDG (dane.biznes.gov.pl) do pobierania danych JDG',
|
||||||
|
],
|
||||||
|
'improve': [
|
||||||
|
'Skrypt testowy wysyłki emaili (scripts/test_email_send.py)',
|
||||||
|
'Lean Idea: Dane uzupełnione ręcznie (firma wykreślona z KRS w 2020)',
|
||||||
|
],
|
||||||
|
},
|
||||||
{
|
{
|
||||||
'version': 'v1.18.0',
|
'version': 'v1.18.0',
|
||||||
'date': '14 stycznia 2026',
|
'date': '14 stycznia 2026',
|
||||||
|
|||||||
42
scripts/fix_year_established.py
Normal file
42
scripts/fix_year_established.py
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""
|
||||||
|
Uzupełnia year_established na podstawie krs_registration_date
|
||||||
|
dla firm które mają datę KRS ale brak roku założenia.
|
||||||
|
"""
|
||||||
|
import sys
|
||||||
|
import os
|
||||||
|
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
||||||
|
|
||||||
|
from dotenv import load_dotenv
|
||||||
|
load_dotenv()
|
||||||
|
|
||||||
|
from database import SessionLocal, Company
|
||||||
|
|
||||||
|
def main():
|
||||||
|
db = SessionLocal()
|
||||||
|
try:
|
||||||
|
# Firmy z datą KRS ale bez year_established
|
||||||
|
companies = db.query(Company).filter(
|
||||||
|
Company.krs_registration_date.isnot(None),
|
||||||
|
Company.year_established.is_(None)
|
||||||
|
).all()
|
||||||
|
|
||||||
|
print(f"Znaleziono {len(companies)} firm do uzupełnienia\n")
|
||||||
|
|
||||||
|
for company in companies:
|
||||||
|
year = company.krs_registration_date.year
|
||||||
|
print(f" {company.name}: {company.krs_registration_date} -> rok {year}")
|
||||||
|
company.year_established = year
|
||||||
|
|
||||||
|
db.commit()
|
||||||
|
print(f"\n✅ Uzupełniono rok założenia dla {len(companies)} firm")
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
db.rollback()
|
||||||
|
print(f"❌ Błąd: {e}")
|
||||||
|
raise
|
||||||
|
finally:
|
||||||
|
db.close()
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
Loading…
Reference in New Issue
Block a user