From 2c34302e9e848ce7e6196d1162269fc7e66b1e8a Mon Sep 17 00:00:00 2001 From: lisikust Date: Sat, 11 Nov 2023 01:23:55 +0300 Subject: [PATCH 1/4] new feature: new column 'is_deleted' has been added in user database --- .DS_Store | Bin 0 -> 8196 bytes print_service/.DS_Store | Bin 0 -> 8196 bytes print_service/models/__init__.py | 1 + print_service/routes/user.py | 3 +++ 4 files changed, 4 insertions(+) create mode 100644 .DS_Store create mode 100644 print_service/.DS_Store diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..e2aa6b802897bc79fb32cf93ee4df7e08e4947ba GIT binary patch literal 8196 zcmeHMPjAyO6o1~jwOzHTNJ9)Hq)1%H*a}okT)M73Oacxof&-w^q}>*lCZkDPP&L#m ze?9|Wfg|FJ@Lf2;@7d{;r0w7U6WVMkevbWq&-U*<+i^=oqTFq65UmhV1`o@84%vjn z?fi_TnXu*>qyV0F9M3Wx&%}FvOj}oI1~dbj0nLDBKr`?^Fn}|gQ)bG!uUd7k8PE(| zNCtR+Fz~P}g>tB*+&YlSD*$8))iR+hKm8#Mu7E6sa;PL~kc5IlDyRsr7$Uqm2n9!b zDbyb-so*4J&#)8rEW#U#2rnMOkm@8#O6puQpcxovfbZ@pTB8=Z)QjKW#Sbj6rJpiM zAnWauO+j35Wf08!I;}*VmuZs z*g)C|6ndhySWgvLx9AYa4($O08wm`0ieb|9fOcq`s`Q9zRE=wk>j~{ku;^hH%#w?| zPDkj;qb5dZLAtb;u<-G>76Odcr(miDcqumG3_S!pJjaPMWN*dv7r-Jj-vKH>iAU+j zN69{;&k-hba$ag&4Ip`RJ{=@b%w-g{C{fHz0A_sYg&umel3tL!{vp!r`$yq#PG8L< z$M%Eu_3vV4HZ?b&PG{4(^o!bo*RKVQpzD_#ooD>^*z+87RBo70>{h>?U*7iIpkceM zjs)1v7F3=;wcV!IFMD0L=}T-)HDt4yY(0NvFenyRjl#X+@v1S{EUd2@cQy;h$Jxx~ z8@KN7)(@Sw>%9jJNFqGBXi>eNTi<2s(pZet5eAn|P&R9H#0p0}eABHF! iP-RRhltU#^gLLLU1f1dLp+5ir!8i9`B=sVn|Gxm}c6OQo literal 0 HcmV?d00001 diff --git a/print_service/.DS_Store b/print_service/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..1d08cd90e76d625f58db49ea052b78618aa54796 GIT binary patch literal 8196 zcmeHML66cv6n?YIE;M8l4jT7j(!?uSkr?8}3*vh4Dn<`#kV3QDSXx4hxFIB5)&JmM z@aRABzj)H`%?zZJ;$aU)*Z0WGH=TK3XZrD`KKP#9}fR0YQ4T()e_ z_SAq1e4>C->fv)j<1KIL5Cud5Q9u+B1w?_rK><9o*(y7p`({*XQ9u;QeXyOU}glv)%J1-2F7?NZe_dqB}f{(kv1j0avAd+=bdM<^#hwV}0Qji?V+ zw9fkTtgnTvF2w^Z({bSX4@0zFxH6}0acK}e QFnJN6Wsph~_@fH^0?Xb__y7O^ literal 0 HcmV?d00001 diff --git a/print_service/models/__init__.py b/print_service/models/__init__.py index d1ffcfe..86e382b 100644 --- a/print_service/models/__init__.py +++ b/print_service/models/__init__.py @@ -22,6 +22,7 @@ class UnionMember(Model): surname: Mapped[str] = mapped_column(String, nullable=False) union_number: Mapped[str] = mapped_column(String, nullable=True) student_number: Mapped[str] = mapped_column(String, nullable=True) + is_deleted: Mapped[bool] = mapped_column(Boolean) files: Mapped[list[File]] = relationship('File', back_populates='owner') print_facts: Mapped[list[PrintFact]] = relationship('PrintFact', back_populates='owner') diff --git a/print_service/routes/user.py b/print_service/routes/user.py index c8098f9..34ca2e5 100644 --- a/print_service/routes/user.py +++ b/print_service/routes/user.py @@ -25,6 +25,7 @@ class UserCreate(BaseModel): username: constr(strip_whitespace=True, to_upper=True, min_length=1) union_number: Optional[constr(strip_whitespace=True, to_upper=True, min_length=1)] student_number: Optional[constr(strip_whitespace=True, to_upper=True, min_length=1)] + is_deleted: bool class UpdateUserList(BaseModel): @@ -113,12 +114,14 @@ def update_list( db_user.surname = user.username db_user.union_number = user.union_number db_user.student_number = user.student_number + db_user.is_deleted = user.is_deleted else: db.session.add( UnionMember( surname=user.username, union_number=user.union_number, student_number=user.student_number, + is_deleted = False, ) ) db.session.flush() From 9c194b8d2a7de27c02b8cadf534ad9a699913b6b Mon Sep 17 00:00:00 2001 From: lisikust Date: Mon, 13 Nov 2023 22:11:34 +0300 Subject: [PATCH 2/4] Update user.py --- print_service/routes/user.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/print_service/routes/user.py b/print_service/routes/user.py index 34ca2e5..6f945e4 100644 --- a/print_service/routes/user.py +++ b/print_service/routes/user.py @@ -24,7 +24,7 @@ class UserCreate(BaseModel): username: constr(strip_whitespace=True, to_upper=True, min_length=1) union_number: Optional[constr(strip_whitespace=True, to_upper=True, min_length=1)] - student_number: Optional[constr(strip_whitespace=True, to_upper=True, min_length=1)] + student_number: Optional[constr(strip_whitespace=True, to_upper=True, min_length=1)] \ is_deleted: bool From 6b1644c2838e79895bb3313b4a829b43f529d6ae Mon Sep 17 00:00:00 2001 From: lisikust Date: Thu, 16 Nov 2023 23:18:24 +0300 Subject: [PATCH 3/4] Deleted .DS_Store files. Migration has been added. is_deleted column is made False by default --- .DS_Store | Bin 8196 -> 10244 bytes migrations/.DS_Store | Bin 0 -> 6148 bytes .../versions/85037413bcdb_soft_deletes.py | 34 ++++++++++++++++++ print_service/.DS_Store | Bin 8196 -> 8196 bytes print_service/routes/.DS_Store | Bin 0 -> 6148 bytes print_service/routes/user.py | 4 +-- 6 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 migrations/.DS_Store create mode 100644 migrations/versions/85037413bcdb_soft_deletes.py create mode 100644 print_service/routes/.DS_Store diff --git a/.DS_Store b/.DS_Store index e2aa6b802897bc79fb32cf93ee4df7e08e4947ba..eac1844707beea50a2fecedcb349eaeb3a4826a3 100644 GIT binary patch delta 328 zcmZp1XbF&DU|?W$DortDU{C-uIe-{M3-C-V6q~50$SAupU^hRb>|`E+tU=LvT(PQETwiYz!ePgrI0X3-f~#W}?P zZ)~{DCddpl4+s>vfrKl_D;o>HGf(E12^3+1cu)f*&B(xD0HP-s$n@mhE5>> delta 243 zcmZn(XmOBWU|?W$DortDU;r^WfEYvza8E20o2aMAD77(QH$S7)WFCR7n_mkwFmBEg z=4PBE?6!HgND3q4&dH1-g*=kg)w+g8W;zPSW~P(hiAytfPv(-4XY84LU2HZ1C7ZP* wm>30_fi?nx1UHay1zEna@H_Klew9EDMu?LbCdczkom?rNO^IETwIu!n0BGbq4gdfE diff --git a/migrations/.DS_Store b/migrations/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..eeb6bc44d75a9a131ebf0cd31a75e5a5054ec8fc GIT binary patch literal 6148 zcmeHKL2uJA6n^fyHPHm>0R$H$OI)i_DpWD;61s8VN)Q|Xm1K<|S{7GLx(Zd5avgt$ zBmacI1K+b;?U;zvXg;}5)Fq+-&e#f3{KUAQeal)tvI|sp zj48c;Qkc`UFzHsd1pY<^cq+`N&lcnEjbl^RNnU0%OUNe~QeM5t%ZXWx%)FdbmK(c{ zFbu+R_ttVb9QO3!;c(T{%fmsxrym>+R;w_$dH3GY)A3nxUYbiQ5-I#0tX=cCh7YK0 z$#4znc_IZ)V#-XE=@|O?gXIB1(qU`J#U)yw2 zkwYm(0a0L6fgRWE^7;Sx*Z2QTlC(qtQQ*H)K($ZelMx=tpRHRD$7ijEzk#!HUgPi^ k1r>V~BbSfj+i+`$YpwtzkBvh_VDcegWspJ?_@fGZ1=vP*ZU6uP literal 0 HcmV?d00001 diff --git a/migrations/versions/85037413bcdb_soft_deletes.py b/migrations/versions/85037413bcdb_soft_deletes.py new file mode 100644 index 0000000..2943d43 --- /dev/null +++ b/migrations/versions/85037413bcdb_soft_deletes.py @@ -0,0 +1,34 @@ +"""soft_deletes + +Revision ID: 85037413bcdb +Revises: a68c6bb2972c +Create Date: 2023-11-16 23:12:39.412182 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '85037413bcdb' +down_revision = 'a68c6bb2972c' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.alter_column('file', 'source', + existing_type=sa.VARCHAR(), + nullable=False) + op.add_column('union_member', sa.Column('is_deleted', sa.Boolean(), nullable=False)) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_column('union_member', 'is_deleted') + op.alter_column('file', 'source', + existing_type=sa.VARCHAR(), + nullable=True) + # ### end Alembic commands ### diff --git a/print_service/.DS_Store b/print_service/.DS_Store index 1d08cd90e76d625f58db49ea052b78618aa54796..38f752480f68fa4d335bb4c728b22464279256e6 100644 GIT binary patch delta 256 zcmZp1XmOa}FD%Nyz`)4BAi%(o=$VtBoRpKFw6Sm+`@{zR&Fma39F`z?Rt7zWOokMO zRD>F!C{PRIPar+-KNtX6C@LrC3N^4Bo9ZYSnOjW0DQGW_WJ+0ZQC?1dUOG?*<76Iz zrIV`##L?9&b2G#PVF5!WLo!1m5N81G2Z|u;-Mmh~o(ahk$IYg~(-=1vt1xb6m-xoQ T&&k0VFCboBjc^7`g(4#Wtn5N> delta 74 zcmZp1XmOa}FDk&mz`)4B0HiV*N*LmSP>-QtW8pORi4DA)**RD^7zHLP3NGDzQpkpB c@+)DF&Ay`37&o8hv0>iKF7b_JV+A`i0G9g{6#xJL diff --git a/print_service/routes/.DS_Store b/print_service/routes/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..b9673b6228b9eda8a13770d50430c818422e4232 GIT binary patch literal 6148 zcmeHKL64I_82zSO1-3EvpwWv7iPvVWRihg(wXO%RV)UQ}VX2nL0s^&enkHP;|KMNn z=s)qlc+&UHOcUB-vL|EAe9bp+7~UH?513(yNKEF@O`<*#*+|CjK8lv$^PD@;(Jeio zkbT5dk&oX2q72SqKJC4-b$Bzht1cR^@a` z#}puEH06G_RNu~~3KwOruk}65lenyg!ylrv*FAUMvK*^tz4B(+!mEO6UQUAI1s^@l zvLsyBgYa2AUHJV=53{ri;&fU_K^#p%dHFm}qiiwB=4n()t*1^nj_vsUE6e4rI|Fxg z_ugvYE)Pe;fqVOKv|2g#~^Oc)1@1IB@-13W*tNXD_oTA`deP{=I+u#09HsPo4HYg~o3)KJH|H!@o literal 0 HcmV?d00001 diff --git a/print_service/routes/user.py b/print_service/routes/user.py index 6f945e4..6a2ebce 100644 --- a/print_service/routes/user.py +++ b/print_service/routes/user.py @@ -24,8 +24,8 @@ class UserCreate(BaseModel): username: constr(strip_whitespace=True, to_upper=True, min_length=1) union_number: Optional[constr(strip_whitespace=True, to_upper=True, min_length=1)] - student_number: Optional[constr(strip_whitespace=True, to_upper=True, min_length=1)] \ - is_deleted: bool + student_number: Optional[constr(strip_whitespace=True, to_upper=True, min_length=1)] + is_deleted: bool = False class UpdateUserList(BaseModel): From 42dcbd049026311a0b463f4f1dd00db957e6e1e4 Mon Sep 17 00:00:00 2001 From: lisikust Date: Thu, 16 Nov 2023 23:42:55 +0300 Subject: [PATCH 4/4] Used black and isort --- migrations/versions/85037413bcdb_soft_deletes.py | 10 +++------- print_service/routes/user.py | 2 +- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/migrations/versions/85037413bcdb_soft_deletes.py b/migrations/versions/85037413bcdb_soft_deletes.py index 2943d43..a6ef558 100644 --- a/migrations/versions/85037413bcdb_soft_deletes.py +++ b/migrations/versions/85037413bcdb_soft_deletes.py @@ -5,8 +5,8 @@ Create Date: 2023-11-16 23:12:39.412182 """ -from alembic import op import sqlalchemy as sa +from alembic import op # revision identifiers, used by Alembic. @@ -18,9 +18,7 @@ def upgrade(): # ### commands auto generated by Alembic - please adjust! ### - op.alter_column('file', 'source', - existing_type=sa.VARCHAR(), - nullable=False) + op.alter_column('file', 'source', existing_type=sa.VARCHAR(), nullable=False) op.add_column('union_member', sa.Column('is_deleted', sa.Boolean(), nullable=False)) # ### end Alembic commands ### @@ -28,7 +26,5 @@ def upgrade(): def downgrade(): # ### commands auto generated by Alembic - please adjust! ### op.drop_column('union_member', 'is_deleted') - op.alter_column('file', 'source', - existing_type=sa.VARCHAR(), - nullable=True) + op.alter_column('file', 'source', existing_type=sa.VARCHAR(), nullable=True) # ### end Alembic commands ### diff --git a/print_service/routes/user.py b/print_service/routes/user.py index 6a2ebce..aaac6ac 100644 --- a/print_service/routes/user.py +++ b/print_service/routes/user.py @@ -121,7 +121,7 @@ def update_list( surname=user.username, union_number=user.union_number, student_number=user.student_number, - is_deleted = False, + is_deleted=False, ) ) db.session.flush()