From dcbc493c1467045532ec1e2f3689effc808b2435 Mon Sep 17 00:00:00 2001 From: bolzanMGB Date: Sat, 23 Nov 2024 21:55:15 -0300 Subject: [PATCH] insercao MembroEquipeModel --- mamutes/Users/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 158 bytes .../Users/__pycache__/admin.cpython-312.pyc | Bin 0 -> 1005 bytes .../Users/__pycache__/apps.cpython-312.pyc | Bin 0 -> 462 bytes .../Users/__pycache__/forms.cpython-312.pyc | Bin 0 -> 1097 bytes .../Users/__pycache__/models.cpython-312.pyc | Bin 0 -> 1823 bytes .../Users/__pycache__/views.cpython-312.pyc | Bin 0 -> 1051 bytes mamutes/Users/admin.py | 27 +++++++++++ mamutes/Users/apps.py | 5 ++ mamutes/Users/forms.py | 12 +++++ mamutes/Users/migrations/0001_initial.py | 45 ++++++++++++++++++ ...quipe_fullname_alter_membroequipe_email.py | 24 ++++++++++ ...3_membroequipe_area_membroequipe_funcao.py | 25 ++++++++++ ...oequipe_area_remove_membroequipe_funcao.py | 21 ++++++++ ...ea_function_membroequipe_areas_and_more.py | 37 ++++++++++++++ mamutes/Users/migrations/__init__.py | 0 .../__pycache__/0001_initial.cpython-312.pyc | Bin 0 -> 3701 bytes ...e_alter_membroequipe_email.cpython-312.pyc | Bin 0 -> 989 bytes ...e_area_membroequipe_funcao.cpython-312.pyc | Bin 0 -> 970 bytes ...remove_membroequipe_funcao.cpython-312.pyc | Bin 0 -> 766 bytes ...embroequipe_areas_and_more.cpython-312.pyc | Bin 0 -> 1564 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 169 bytes mamutes/Users/models.py | 26 ++++++++++ mamutes/Users/templates/login.html | 0 mamutes/Users/tests.py | 3 ++ mamutes/Users/views.py | 23 +++++++++ mamutes/db.sqlite3 | Bin 0 -> 176128 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 160 bytes .../__pycache__/settings.cpython-312.pyc | Bin 0 -> 2588 bytes .../mamutes/__pycache__/urls.cpython-312.pyc | Bin 0 -> 482 bytes .../mamutes/__pycache__/wsgi.cpython-312.pyc | Bin 0 -> 648 bytes mamutes/mamutes/settings.py | 3 ++ mamutes/mamutes/urls.py | 20 ++------ mamutes/manage.py | 3 -- 34 files changed, 254 insertions(+), 20 deletions(-) create mode 100644 mamutes/Users/__init__.py create mode 100644 mamutes/Users/__pycache__/__init__.cpython-312.pyc create mode 100644 mamutes/Users/__pycache__/admin.cpython-312.pyc create mode 100644 mamutes/Users/__pycache__/apps.cpython-312.pyc create mode 100644 mamutes/Users/__pycache__/forms.cpython-312.pyc create mode 100644 mamutes/Users/__pycache__/models.cpython-312.pyc create mode 100644 mamutes/Users/__pycache__/views.cpython-312.pyc create mode 100644 mamutes/Users/admin.py create mode 100644 mamutes/Users/apps.py create mode 100644 mamutes/Users/forms.py create mode 100644 mamutes/Users/migrations/0001_initial.py create mode 100644 mamutes/Users/migrations/0002_membroequipe_fullname_alter_membroequipe_email.py create mode 100644 mamutes/Users/migrations/0003_membroequipe_area_membroequipe_funcao.py create mode 100644 mamutes/Users/migrations/0004_remove_membroequipe_area_remove_membroequipe_funcao.py create mode 100644 mamutes/Users/migrations/0005_area_function_membroequipe_areas_and_more.py create mode 100644 mamutes/Users/migrations/__init__.py create mode 100644 mamutes/Users/migrations/__pycache__/0001_initial.cpython-312.pyc create mode 100644 mamutes/Users/migrations/__pycache__/0002_membroequipe_fullname_alter_membroequipe_email.cpython-312.pyc create mode 100644 mamutes/Users/migrations/__pycache__/0003_membroequipe_area_membroequipe_funcao.cpython-312.pyc create mode 100644 mamutes/Users/migrations/__pycache__/0004_remove_membroequipe_area_remove_membroequipe_funcao.cpython-312.pyc create mode 100644 mamutes/Users/migrations/__pycache__/0005_area_function_membroequipe_areas_and_more.cpython-312.pyc create mode 100644 mamutes/Users/migrations/__pycache__/__init__.cpython-312.pyc create mode 100644 mamutes/Users/models.py create mode 100644 mamutes/Users/templates/login.html create mode 100644 mamutes/Users/tests.py create mode 100644 mamutes/Users/views.py create mode 100644 mamutes/mamutes/__pycache__/__init__.cpython-312.pyc create mode 100644 mamutes/mamutes/__pycache__/settings.cpython-312.pyc create mode 100644 mamutes/mamutes/__pycache__/urls.cpython-312.pyc create mode 100644 mamutes/mamutes/__pycache__/wsgi.cpython-312.pyc diff --git a/mamutes/Users/__init__.py b/mamutes/Users/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/mamutes/Users/__pycache__/__init__.cpython-312.pyc b/mamutes/Users/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..96907dc2492cbd73dc1bf53b06d2e3f10ea76aa5 GIT binary patch literal 158 zcmX@j%ge<81Vz41=^*+sh(HIQS%4zb87dhx8U0o=6fpsLpFwJV*}7Q8P+L0_cf64g~z`%wG z*b~*|0PJ}I) z=^dU$=mwbSjgIdpNX3Ec`IbZsE=)4qSTMnxOlx@9N7Pc%n5aEd+pQ?X=|1h+PjXkM znbCGB{TLDS^ct3|JkuRV2s#ck9VduT#}_#3IC~v8Nrkhy@vL7H?8aUcu0>!V}eYeYU6uYF}a?;l^ou`V47dDxZdT>lx zE|E)~&*?XC&YuS^msgi-QQUGr)ZTB^`OUTJN_G2PrB+%hm5ZgvE5yUJ7Pvtt=BxN| zT1y(B*zOWt6i672PrAj;0T@g!^wtNNhrQK7cCJ_XTPXK72GdrrI+(oITOaDc%pdCg zyQ}@lN?%_a%F>k9dppc>_aHmnpS8K?mN^8Hkr~R$jJ97T53W=;EtBQZF0W2htVdx? zyd5HXjNQ5EEV`YzRZOxZiioSCjFf3fYj7o*}r&>xc=tEmZCcljzNJbg4g2 z|MUe};8Zj@Eps!JA%v%3{uDep0n;a7=0Yhz?W=JC_%d7sQ2S!;n}0yz7bqNV^dCL@ J4a&)_{{c4U4#@xj literal 0 HcmV?d00001 diff --git a/mamutes/Users/__pycache__/apps.cpython-312.pyc b/mamutes/Users/__pycache__/apps.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bc9daec19b123f4d057ebc5fe99195df297f82b2 GIT binary patch literal 462 zcmXv~J4*vW5T3mU#5_cz2o@GL!WAA8EL23e7_~|ojmUAhtl78#7@W$5S#o4 z@u%2Wh65`rJ0aSna`*0>V&%Ntgg}RpC4PT?beRo z+A<=C#g<3BG~qEHZILjH^>7r4YvoRyBW`dvhUwbwyRtg1H6J^Xc**NMP0niNRze&J rK_RaTloJ;@npX~rJr1KKo{H1O;%whCLg)iFeiR8UKWV?fL$3M*Z&h?4 literal 0 HcmV?d00001 diff --git a/mamutes/Users/__pycache__/forms.cpython-312.pyc b/mamutes/Users/__pycache__/forms.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..feed4373fa92dc9790d7d28cfe0107a4fcb577a5 GIT binary patch literal 1097 zcmb7D&2G~`5Z+zeAqh>@@~4&-sDy-MBwUC%Rj5%ZEfP|4f#hIWSZ;RH7};^Uwt?Jp zfF~%g5LLVYufT<4wL;>+sW(J|kaA+jZkxCQiSFUcHy z?_iu9?U)RoNwSY9qS!+|HnC4kf)OQD@sy8}5%d&MwU4OA@PU%vGS$SJlimxAoO-oh zUN0O$h)%>@J!E{7GbeI`&UV0kF`IbWPG^^aeI%cRbS&`QW|}oc_1GA$NV1O@GBHIa zNeW_FkQ|US!c=;Su8M^!^LKc#wHLcxHeD~16>7m5UXd`#$`n(j*wlJNSH?H~mC2~G z$kB5mAIp|Hj?YBC6?}I$`)G;Pk{dqRaaIIIK=Kb(=!M~8FE@3h1D`uiMTln%Zmp*B$Y zB`_`nfMSW8F91uTt^>=T0E{f0mC#4O3DFw(Cjv}EAu2P9^A7mhv@Dya>yyd(KjU5c zd!BT-D!&NblmMU;4(inSJkT?3gF<{o0w|ePaXq6VUxvstw{L})Fx?TTgJg9E}~R4PDo2@3T`bYg-Vy$JqW?F(u^&+yDMjQ zWh~=^4x!j5=jN-AHu1s79DNM*5`n;GAWz6Io7a_W1#k{yeLgh1!;=DnHsX5QcT z{u~;L6Ii#`ep;Fe5%M<*{iXGo?jOMH5Js3{5nCxL3i7I@+M!}dAu72~Sm-ffVXiFe zedCM$DZGoTsQH>2Xhz?T~C-5Z^7lF zg4g}k`sH%jA-sUJ%4%DYgU|iHNq++BQ&S)|`Be;3W;AUTuaob!o zEbc6M)k;sB(ZbJY}cHEuC6 z1hV)9$UYHQkxwCs^hp?)?l6$YbyTHJ)|kFGjQ6m6wiclg^Yf9*{_`_;bzAG#MfTi;rLp$DB_ z$Rx#exD}rv`5XyCN}z?*7a<}9nvCacvu61alNv`}e2E&#yy-OO>qrCqA#kK-0>)jx zm1JzO*YK_n%fX%-$Ip-;PTd9&KxT4$bM-hm-cFA1-8tk(w>rrOtp_J`Y;*3Ijqma>Mj4hkaQa#Jc!F(C%$(6d}iCQ^pHoR&!m~8?l ziq!Hr=z=lhqsR~IGQ3{v)4>e;QQQU_oT=`&KwgCuMR`fmFUg&=a9A1Myth5QHGM{a YJ)NUtny`ky^n-Wv!KlTIS%|YdC-ri0qOG3>yqCi4ODr?_lAy30(fmo(1moP-OW>IA^vBx_R%zGgQP0CK?{5^ za3us^mmr;vbw`TFW20e~k5fBI-A`p5QqUH&Pt!R^huP_g>G`>-?C`DOk>v2r31mQ= zwKS_lC(X_?YIf0pOE_6vMnP7TEi(OZnJ#a^zSRAGZGCO)+7IbUBi!?0sTRLo50BR5 z(WB_4%Gl=EUNo^2O;jJ%qeC0=ex$deY$|(^_)a8V?X5@D4e?jFzxwQ}xEmhd5RO9O zTByIF^lc4PM|PFLM)cy=KrL~n9!=Gh)Sn=T#cT1l*QEWyjN0i&S{fvA!9gTfBDf`3 zs2wiQhv4bsM%$5`V-sY&NU|s4iP^f@1zL}4PDL@XE53A)g+Bq*L!&50mlJu6=1L|U lN0+I~{#nexZ=U101CTfXSLu2PCL5rq0b)&|o4f0={{rv<^(_DZ literal 0 HcmV?d00001 diff --git a/mamutes/Users/admin.py b/mamutes/Users/admin.py new file mode 100644 index 0000000..076b559 --- /dev/null +++ b/mamutes/Users/admin.py @@ -0,0 +1,27 @@ +from django.contrib import admin +from django.contrib.auth.admin import UserAdmin +from .forms import * +from .models import * + +class MembroEquipeAdmin(UserAdmin): + add_form = MembroEquipeCreationForm # Use o formulário de criação personalizado + form = MembroEquipeChangeForm # Formulário de alteração personalizado + model = MembroEquipe + + list_display = ('username', 'fullname', 'email') ## Lista principal na aba users + search_fields = ('username', 'email') + ordering = ('username',) + + ## O que aparece quando edita um usuario + fieldsets = ( + (None, {'fields': ('username', 'fullname', 'phone', 'email')}), + ) + + ## O que aparece quando adiciona um usuario + add_fieldsets = ( + (None, { + 'fields': ('username', 'fullname', 'phone', 'email', 'password1', 'password2') + }), + ) + +admin.site.register(MembroEquipe, MembroEquipeAdmin) diff --git a/mamutes/Users/apps.py b/mamutes/Users/apps.py new file mode 100644 index 0000000..78bd9b5 --- /dev/null +++ b/mamutes/Users/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + +class UsersConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'Users' diff --git a/mamutes/Users/forms.py b/mamutes/Users/forms.py new file mode 100644 index 0000000..1002b72 --- /dev/null +++ b/mamutes/Users/forms.py @@ -0,0 +1,12 @@ +from django.contrib.auth.forms import UserCreationForm, UserChangeForm +from .models import * + +class MembroEquipeCreationForm(UserCreationForm): + class Meta: + model = MembroEquipe + fields = ('username', 'fullname', 'email', 'phone', 'password1', 'password2') + +class MembroEquipeChangeForm(UserChangeForm): + class Meta: + model = MembroEquipe + fields = ('username', 'email', 'phone', 'fullname', ) diff --git a/mamutes/Users/migrations/0001_initial.py b/mamutes/Users/migrations/0001_initial.py new file mode 100644 index 0000000..16f2000 --- /dev/null +++ b/mamutes/Users/migrations/0001_initial.py @@ -0,0 +1,45 @@ +# Generated by Django 5.1 on 2024-11-23 22:33 + +import django.contrib.auth.models +import django.contrib.auth.validators +import django.utils.timezone +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('auth', '0012_alter_user_first_name_max_length'), + ] + + operations = [ + migrations.CreateModel( + name='MembroEquipe', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('password', models.CharField(max_length=128, verbose_name='password')), + ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), + ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')), + ('username', models.CharField(error_messages={'unique': 'A user with that username already exists.'}, help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, unique=True, validators=[django.contrib.auth.validators.UnicodeUsernameValidator()], verbose_name='username')), + ('first_name', models.CharField(blank=True, max_length=150, verbose_name='first name')), + ('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')), + ('email', models.EmailField(blank=True, max_length=254, verbose_name='email address')), + ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')), + ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')), + ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')), + ('phone', models.CharField(max_length=20)), + ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.group', verbose_name='groups')), + ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.permission', verbose_name='user permissions')), + ], + options={ + 'verbose_name': 'user', + 'verbose_name_plural': 'users', + 'abstract': False, + }, + managers=[ + ('objects', django.contrib.auth.models.UserManager()), + ], + ), + ] diff --git a/mamutes/Users/migrations/0002_membroequipe_fullname_alter_membroequipe_email.py b/mamutes/Users/migrations/0002_membroequipe_fullname_alter_membroequipe_email.py new file mode 100644 index 0000000..99ba94c --- /dev/null +++ b/mamutes/Users/migrations/0002_membroequipe_fullname_alter_membroequipe_email.py @@ -0,0 +1,24 @@ +# Generated by Django 5.1 on 2024-11-23 23:05 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('Users', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='membroequipe', + name='fullname', + field=models.CharField(default='phon', max_length=100), + preserve_default=False, + ), + migrations.AlterField( + model_name='membroequipe', + name='email', + field=models.EmailField(max_length=200), + ), + ] diff --git a/mamutes/Users/migrations/0003_membroequipe_area_membroequipe_funcao.py b/mamutes/Users/migrations/0003_membroequipe_area_membroequipe_funcao.py new file mode 100644 index 0000000..59e55b4 --- /dev/null +++ b/mamutes/Users/migrations/0003_membroequipe_area_membroequipe_funcao.py @@ -0,0 +1,25 @@ +# Generated by Django 5.1 on 2024-11-23 23:37 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('Users', '0002_membroequipe_fullname_alter_membroequipe_email'), + ] + + operations = [ + migrations.AddField( + model_name='membroequipe', + name='area', + field=models.CharField(default='a', max_length=100), + preserve_default=False, + ), + migrations.AddField( + model_name='membroequipe', + name='funcao', + field=models.CharField(default='a', max_length=100), + preserve_default=False, + ), + ] diff --git a/mamutes/Users/migrations/0004_remove_membroequipe_area_remove_membroequipe_funcao.py b/mamutes/Users/migrations/0004_remove_membroequipe_area_remove_membroequipe_funcao.py new file mode 100644 index 0000000..43ff691 --- /dev/null +++ b/mamutes/Users/migrations/0004_remove_membroequipe_area_remove_membroequipe_funcao.py @@ -0,0 +1,21 @@ +# Generated by Django 5.1 on 2024-11-23 23:39 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('Users', '0003_membroequipe_area_membroequipe_funcao'), + ] + + operations = [ + migrations.RemoveField( + model_name='membroequipe', + name='area', + ), + migrations.RemoveField( + model_name='membroequipe', + name='funcao', + ), + ] diff --git a/mamutes/Users/migrations/0005_area_function_membroequipe_areas_and_more.py b/mamutes/Users/migrations/0005_area_function_membroequipe_areas_and_more.py new file mode 100644 index 0000000..0748255 --- /dev/null +++ b/mamutes/Users/migrations/0005_area_function_membroequipe_areas_and_more.py @@ -0,0 +1,37 @@ +# Generated by Django 5.1 on 2024-11-24 00:47 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('Users', '0004_remove_membroequipe_area_remove_membroequipe_funcao'), + ] + + operations = [ + migrations.CreateModel( + name='Area', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=100)), + ], + ), + migrations.CreateModel( + name='Function', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=100)), + ], + ), + migrations.AddField( + model_name='membroequipe', + name='areas', + field=models.ManyToManyField(blank=True, related_name='membros', to='Users.area'), + ), + migrations.AddField( + model_name='membroequipe', + name='functions', + field=models.ManyToManyField(blank=True, related_name='membros', to='Users.function'), + ), + ] diff --git a/mamutes/Users/migrations/__init__.py b/mamutes/Users/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/mamutes/Users/migrations/__pycache__/0001_initial.cpython-312.pyc b/mamutes/Users/migrations/__pycache__/0001_initial.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..26b431ab5e617484e8f7ce976ca765fde92ec6a8 GIT binary patch literal 3701 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

j=i366u(Cv4cuO9%TfiErXpFI ztI3*fwy8&WuFI$pvro}HQ)|XS1Bcs|!F7~mAjD0CM1|O+0%s7~i}6&ZV1#yQKxoit z(}>B}<$8^fEm@sOPr325g;~P68FuOHoxgyIH2l2t?4c9(T6o`i_og94I`vw8=k0T+ zQm#BGRqofADC_vxk9%TId~+6`#SsoxmtB&EET2sKDRuiy{>NmIAnJ8dTat??UQ+;7lwLaw0dWBeRY&C9^O647l--c=j!+B&-~-jdhyIi8|FCkZ}6>4 zg0E%s+Q(OHZ7yM3yoy0OIB>%f*-eZ~?3#)!$gm`KU7&OQ(bWA-c3V&=W+X4iDG1>o Y4M6Kmy8*RB^CY)1%x(Mzf+X300hj^!ZvX%Q literal 0 HcmV?d00001 diff --git a/mamutes/Users/migrations/__pycache__/0004_remove_membroequipe_area_remove_membroequipe_funcao.cpython-312.pyc b/mamutes/Users/migrations/__pycache__/0004_remove_membroequipe_area_remove_membroequipe_funcao.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..758524b7aa29cc0212f29f68938bbe087aabce07 GIT binary patch literal 766 zcmaJT--(i(1VZh4DZXrpN%GueRmxwsUoA15(-h1=CneQ_*4#@Q_d>Z~h06!~d zyv$2*x+=i|P@pJ=1bGO71}}hW`#^Pu`o=h6vLEU-_Oy}Vn!hT?MZ!sH9sLi>oUlU8!z1k85O!yL6IT=F zcFuS%9<*AmMMA;KX<5{sBgJWa?>5yTa_@+cdyl(MuJv7A>k6jQHRlI^mMh{aSm*??UR@C%$) z$}jewt@_#UeX#4lebbZe{my!4d+WL1ZnamM?T71JR`Qb|DTZ=aLjB1r_)_u;;i|)R zol5z?4r)Qo!H8F{rVN%K-;ib>N(}ZBRO;FS{_v`Fz`pm%Ikpy$ti_YY{gYdbGgG&n z()v4or;bnAbNJ&+zA!Gl>FUC!{U8mqChe+u)LrK*hN9h;=)zj7=lPg7q$|HM8R}A=1Ij{ literal 0 HcmV?d00001 diff --git a/mamutes/Users/migrations/__pycache__/0005_area_function_membroequipe_areas_and_more.cpython-312.pyc b/mamutes/Users/migrations/__pycache__/0005_area_function_membroequipe_areas_and_more.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..93f09ba534d71f6836aaa9834abffe244f0a6f0e GIT binary patch literal 1564 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 b;}nxQ4T&b0Q=dLza)-H#KQ7r9fslUzrw?0= literal 0 HcmV?d00001 diff --git a/mamutes/mamutes/__pycache__/urls.cpython-312.pyc b/mamutes/mamutes/__pycache__/urls.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..42b9b617ab357bbefd15a6ef4b6fc338bb4ad29a GIT binary patch literal 482 zcmX@j%ge<81ez62=_i2nV-N=h*r1HhJwV2Eh7^Vr#vF!R#wbQc5SuB7DVI5l8O&zR zVaa8UVr67tVn}69VM%4o;(-~0ptJZ8Y#3`b6NClU$C}ETB>zwo|&hAixo_R)a51S zruu1e-Qr8hO3X{o*GtaND=ErMDgs$>iyJCfT9i{OjvMoeoAVLucL2hh--|Ifsu)x zk*;G=W@>RvZeng}2@(x5Qm>%$7l%!5eoARhs$G#F&@4tEE;a`eAD9^#8SgSE++~ot z%OL)cg`-1ag6VXtiB{9?C)!_TQN9Tj(U{;m-Fu?<3ic~31|L{i_?a5Hi}-h($ literal 0 HcmV?d00001 diff --git a/mamutes/mamutes/__pycache__/wsgi.cpython-312.pyc b/mamutes/mamutes/__pycache__/wsgi.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6b389d8f79f052e8c84862cd40740f2503d74871 GIT binary patch literal 648 zcmYjPO=}ZD7@paUP1)E`#P&Rhmw??(gS}J{QWHbOq=%#mA+VY5yxDA+-C1@fsp+jJ ze?otQ^rv{KC=~XjhzD;%Z{xr}#|Zt%iq*+2llieu z&JjaB#4s~B?qMBGZiHsf#0c6P`a z(`XV;M8m)*Ly?e>h7$#n#EBS#r)n*F%LYd0uc=cn(tMnA`&1$qy@v90TGcV4x{&S5)Olyi&+Sfa!#ZlIM%Oh&2|Z=4}DN>)^qRJNVjXR ztL?_2+o^ZE&32>Xwhn7YZ|bL;%k6CmN(GTGOZhbKy4r&4riPH|=E8{WY5#Uco0wWC z%|kQ|5)q}A1~M4Z30G<1j^al&&m3JptL^uN8qsP0ZO0P~`mJi~s9Wz>%9W>fWv7}1 zAp1)b|6`_O$FuA8=ZlAakrXwT{ya#Q_4V7t82>TyI5&TQu=Nw|enZ9w>&&`BTc6R^ Y<+goUKKP1WelI@yQha