From 7d08a57c857e99a10314499d748c55b92b4919aa Mon Sep 17 00:00:00 2001 From: Kobe Date: Mon, 2 Jun 2025 09:17:21 +0200 Subject: [PATCH] add mail to table on notif --- __pycache__/app.cpython-313.pyc | Bin 5717 -> 5740 bytes __pycache__/models.cpython-313.pyc | Bin 24214 -> 25830 bytes .../versions/20519a2437c2_add_mails_table.py | 41 ++++++ ...519a2437c2_add_mails_table.cpython-313.pyc | Bin 0 -> 2203 bytes models.py | 21 +++- templates/settings/tabs/email_templates.html | 118 +++++++++++++++++- .../__pycache__/notification.cpython-313.pyc | Bin 5155 -> 7634 bytes utils/notification.py | 58 ++++++++- 8 files changed, 233 insertions(+), 5 deletions(-) create mode 100644 migrations/versions/20519a2437c2_add_mails_table.py create mode 100644 migrations/versions/__pycache__/20519a2437c2_add_mails_table.cpython-313.pyc diff --git a/__pycache__/app.cpython-313.pyc b/__pycache__/app.cpython-313.pyc index fcbc680e18c4806b6cf41f4cc4ec2c0a6ddce96f..5b5c1860ca22815010cd714ca95b0e67ea6dc2c8 100644 GIT binary patch delta 146 zcmcbr^G1jFGcPX}0}yC?*=7Vx7Z6ziqt iCT8Zum!#$v@-gxVu_A>S zg&^n2h0MZ}RT;$um12~Gg{&eN7!m~-7=SXKAeqhaj9S8ss*}4!K1`k{YR_0a`J$*Z KqwQo-v2Xw_dm97* diff --git a/__pycache__/models.cpython-313.pyc b/__pycache__/models.cpython-313.pyc index e2fd72291de010640ad2430cb0d4910cd0599c05..92562baf61d0d00ffd12222bf0678da43a9514c1 100644 GIT binary patch delta 837 zcmX|8O-vI(7~Sdbwy@iFfl6D1LP}&wXrzEb%8yV5gaDBRp%zjayW%EL>a-pp(QY&` z+Dny5r0Aio(LW^ZMZah;^b8m;jAZU>CJk`q07+ z5lxI*(cgL&g=VIX`464JC>RBuP}Ze}ELx~{AdkLTTi&ID-07}@7Sw_s3l&&sMIm(s zIsh8PL&9ndgV0ZCo*!QdDk8FS(WnJQWA>Gn+TW^cjXoNdarfAZ$Nxt5)K z1yg^4?uQ;+1g9~K^ED_xP_^!|IebJ5lE0cIFiy69!WIAmKC4&J$MEsNP#i|ErIeio z3rb;yKF)<1q=`qLd5ZSfK=nSmEkI@wAXge=Fg&43l@56f$xPKbGq+(_H>4Xf{40LT z_u8H7D4M(E>qr-9u`#BUKk0uCH&)kIw>b15D}8M&GQ;v9Drap8)|`@(Qd*TM+bqk5 zi)@=bRN^W(_;o%#kQvz=$*Mju@0r4-k^QF8!p&PnE+CJVOqSGYay89m?3?zj$#?T_ z=5yZt#=bpQ(KI0s|JG4vE|o|o(uo~?(R4)~E|s&XiR46jC_7Uu?~tz@X@GVBkb5+o zgc|1?(Qe=u2%!AjdE*LBhd(N|w_Te12x<-~6L23kSik^y>PdAz>pY?eKYoXQc&_;m delta 79 zcmaEMl5yHzM!wIyyj%=Gpm)qBApZI?A g=Ojt4Bt`}XAYv%qwplEB3nSN827X4pA|s#(0Nw!>{Qv*} diff --git a/migrations/versions/20519a2437c2_add_mails_table.py b/migrations/versions/20519a2437c2_add_mails_table.py new file mode 100644 index 0000000..2f61176 --- /dev/null +++ b/migrations/versions/20519a2437c2_add_mails_table.py @@ -0,0 +1,41 @@ +"""add_mails_table + +Revision ID: 20519a2437c2 +Revises: 444d76da74ba +Create Date: 2025-06-02 09:04:39.972021 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '20519a2437c2' +down_revision = '444d76da74ba' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.create_table('mails', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('recipient', sa.String(length=150), nullable=False), + sa.Column('subject', sa.String(length=200), nullable=False), + sa.Column('body', sa.Text(), nullable=False), + sa.Column('status', sa.String(length=20), nullable=False), + sa.Column('created_at', sa.DateTime(), nullable=True), + sa.Column('sent_at', sa.DateTime(), nullable=True), + sa.Column('template_id', sa.Integer(), nullable=True), + sa.Column('notif_id', sa.Integer(), nullable=True), + sa.ForeignKeyConstraint(['notif_id'], ['notifs.id'], ), + sa.ForeignKeyConstraint(['template_id'], ['email_templates.id'], ), + sa.PrimaryKeyConstraint('id') + ) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_table('mails') + # ### end Alembic commands ### diff --git a/migrations/versions/__pycache__/20519a2437c2_add_mails_table.cpython-313.pyc b/migrations/versions/__pycache__/20519a2437c2_add_mails_table.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..573e08f9738e6f5bb50da0e28541fa84209460cf GIT binary patch literal 2203 zcmb_d&u6y9By1=ir$gvzy1TjD6Gh++p5unTQk)gV_ku^oBci$k?q*a==|*`>2f zTIXb0mD*#JAB}~PxYC=C`4f5!wW>zb+}ew8X;JQdyRh*(La9@ArFrw_dvCsZGxO$c zHx%M2_pOLM7`#OE-QOccw5u>6zhsl@D5A{k3$vWZmoYGyh!2j~pXA6X&CX~O8W z6%uqalc1Zi+~1nrje_(*>wX9F5q0yGZOu7>R|rK-!oF{^4zR{K+HnsajLXA+Y;m+n zD&1EFkHBU;F7Ls7UYCb`Uk+2RhZQ-&mx22@6`TKG+2Hn0&BnXff+yp$MsK~>As64^ zy$0VRx{!-)_>IvGpX%(+{Lg$NF1|Ns%IV@8{m*_GqUKz=4o_waP6*T<*|6_2bCuU#+*qsR;Jp8Z-~Rjt}V0vMH*nu0X*=tr0VHcmxa z#oQ!5qh8uVW%KA~zzJK@dH}9%Zkt5yp@Rm($gHRU^Jd%|sQ12`89X(JF*p zN8g&nZ`H7MrHV*oLB~j`Xa%&L(>24ylA@U;asw+>32&c3f1O(qU&EwAx&2Z8SFaizj@ynv<BP%eul14%e*n0>96kpc3CQ|4TJNGR!1y9G!zyUKi(1}YzW3p; z?1VibK16(?DC=cWBtA(+)sj-~^BZ5Ql3LzG)onaxvHEfUPfS7VM!}*ity-= zY7kyVHKfUgsB3nfU@L~#L-c=A)#bX1KE+dDwcfRn1o6T{)AU~qN3$=7DSGU8YV3ud h3Qp|!pN+h~6M8lh0TCMA;s55&&|LQ-Lr3jh`~wectqTAE literal 0 HcmV?d00001 diff --git a/models.py b/models.py index 7dbd606..c84db27 100644 --- a/models.py +++ b/models.py @@ -312,4 +312,23 @@ class EmailTemplate(db.Model): creator = db.relationship('User', backref='created_email_templates', foreign_keys=[created_by]) def __repr__(self): - return f'' \ No newline at end of file + return f'' + +class Mail(db.Model): + __tablename__ = 'mails' + id = db.Column(db.Integer, primary_key=True) + recipient = db.Column(db.String(150), nullable=False) + subject = db.Column(db.String(200), nullable=False) + body = db.Column(db.Text, nullable=False) + status = db.Column(db.String(20), default='pending', nullable=False) # e.g., pending, sent, failed + created_at = db.Column(db.DateTime, default=datetime.utcnow) + sent_at = db.Column(db.DateTime, nullable=True) + template_id = db.Column(db.Integer, db.ForeignKey('email_templates.id'), nullable=True) + notif_id = db.Column(db.Integer, db.ForeignKey('notifs.id'), nullable=True) + + # Relationships + template = db.relationship('EmailTemplate', backref='mails') + notif = db.relationship('Notif', backref='mails') + + def __repr__(self): + return f'' \ No newline at end of file diff --git a/templates/settings/tabs/email_templates.html b/templates/settings/tabs/email_templates.html index d71dba1..c52573e 100644 --- a/templates/settings/tabs/email_templates.html +++ b/templates/settings/tabs/email_templates.html @@ -11,13 +11,27 @@ {% for template in templates %} {% endfor %} + + +
@@ -52,6 +66,83 @@