From c53900582a777551b932781dc9afd45f8896f2c8 Mon Sep 17 00:00:00 2001 From: Farid Date: Fri, 29 Sep 2023 19:23:35 +0300 Subject: [PATCH 1/2] Third Task --- R4C/__init__.py | 0 R4C/__pycache__/__init__.cpython-311.pyc | Bin 0 -> 167 bytes R4C/__pycache__/settings.cpython-311.pyc | Bin 0 -> 2971 bytes R4C/__pycache__/urls.cpython-311.pyc | Bin 0 -> 1269 bytes R4C/__pycache__/wsgi.cpython-311.pyc | Bin 0 -> 680 bytes R4C/asgi.py | 16 +++ R4C/settings.py | 132 ++++++++++++++++++ R4C/urls.py | 23 +++ R4C/wsgi.py | 16 +++ README.md | 35 ++++- customers/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 173 bytes customers/__pycache__/admin.cpython-311.pyc | Bin 0 -> 228 bytes customers/__pycache__/apps.cpython-311.pyc | Bin 0 -> 489 bytes customers/__pycache__/models.cpython-311.pyc | Bin 0 -> 697 bytes customers/admin.py | 3 + customers/apps.py | 5 + customers/migrations/0001_initial.py | 21 +++ ...0002_customer_name_alter_customer_email.py | 23 +++ customers/migrations/__init__.py | 0 .../__pycache__/0001_initial.cpython-311.pyc | Bin 0 -> 943 bytes ..._name_alter_customer_email.cpython-311.pyc | Bin 0 -> 1010 bytes .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 184 bytes customers/models.py | 5 + customers/tests.py | 3 + customers/views.py | 3 + db.sqlite3 | Bin 0 -> 163840 bytes manage.py | 21 +++ orders/__init__.py | 0 orders/__pycache__/__init__.cpython-311.pyc | Bin 0 -> 170 bytes orders/__pycache__/admin.cpython-311.pyc | Bin 0 -> 225 bytes orders/__pycache__/apps.cpython-311.pyc | Bin 0 -> 480 bytes orders/__pycache__/models.cpython-311.pyc | Bin 0 -> 1505 bytes orders/__pycache__/urls.cpython-311.pyc | Bin 0 -> 504 bytes orders/__pycache__/views.cpython-311.pyc | Bin 0 -> 4148 bytes orders/admin.py | 3 + orders/apps.py | 5 + orders/migrations/0001_initial.py | 24 ++++ ...order_robot_serial_order_robot_and_more.py | 40 ++++++ orders/migrations/__init__.py | 0 .../__pycache__/0001_initial.cpython-311.pyc | Bin 0 -> 1237 bytes ...erial_order_robot_and_more.cpython-311.pyc | Bin 0 -> 2190 bytes ...erial_order_robot_and_more.cpython-311.pyc | Bin 0 -> 2007 bytes .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 181 bytes orders/models.py | 14 ++ orders/tests.py | 3 + orders/urls.py | 7 + orders/views.py | 71 ++++++++++ robots/__init__.py | 0 robots/__pycache__/__init__.cpython-311.pyc | Bin 0 -> 170 bytes robots/__pycache__/admin.cpython-311.pyc | Bin 0 -> 225 bytes robots/__pycache__/apps.cpython-311.pyc | Bin 0 -> 480 bytes robots/__pycache__/models.cpython-311.pyc | Bin 0 -> 910 bytes robots/__pycache__/urls.cpython-311.pyc | Bin 0 -> 492 bytes robots/__pycache__/views.cpython-311.pyc | Bin 0 -> 3311 bytes robots/admin.py | 3 + robots/apps.py | 5 + robots/migrations/0001_initial.py | 24 ++++ robots/migrations/0002_robot_quantity.py | 19 +++ robots/migrations/__init__.py | 0 .../__pycache__/0001_initial.cpython-311.pyc | Bin 0 -> 1157 bytes .../0002_robot_quantity.cpython-311.pyc | Bin 0 -> 842 bytes .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 181 bytes robots/models.py | 9 ++ robots/tests.py | 3 + robots/urls.py | 8 ++ robots/views.py | 54 +++++++ tasks.md | 50 +++++++ 68 files changed, 646 insertions(+), 2 deletions(-) create mode 100644 R4C/__init__.py create mode 100644 R4C/__pycache__/__init__.cpython-311.pyc create mode 100644 R4C/__pycache__/settings.cpython-311.pyc create mode 100644 R4C/__pycache__/urls.cpython-311.pyc create mode 100644 R4C/__pycache__/wsgi.cpython-311.pyc create mode 100644 R4C/asgi.py create mode 100644 R4C/settings.py create mode 100644 R4C/urls.py create mode 100644 R4C/wsgi.py create mode 100644 customers/__init__.py create mode 100644 customers/__pycache__/__init__.cpython-311.pyc create mode 100644 customers/__pycache__/admin.cpython-311.pyc create mode 100644 customers/__pycache__/apps.cpython-311.pyc create mode 100644 customers/__pycache__/models.cpython-311.pyc create mode 100644 customers/admin.py create mode 100644 customers/apps.py create mode 100644 customers/migrations/0001_initial.py create mode 100644 customers/migrations/0002_customer_name_alter_customer_email.py create mode 100644 customers/migrations/__init__.py create mode 100644 customers/migrations/__pycache__/0001_initial.cpython-311.pyc create mode 100644 customers/migrations/__pycache__/0002_customer_name_alter_customer_email.cpython-311.pyc create mode 100644 customers/migrations/__pycache__/__init__.cpython-311.pyc create mode 100644 customers/models.py create mode 100644 customers/tests.py create mode 100644 customers/views.py create mode 100644 db.sqlite3 create mode 100644 manage.py create mode 100644 orders/__init__.py create mode 100644 orders/__pycache__/__init__.cpython-311.pyc create mode 100644 orders/__pycache__/admin.cpython-311.pyc create mode 100644 orders/__pycache__/apps.cpython-311.pyc create mode 100644 orders/__pycache__/models.cpython-311.pyc create mode 100644 orders/__pycache__/urls.cpython-311.pyc create mode 100644 orders/__pycache__/views.cpython-311.pyc create mode 100644 orders/admin.py create mode 100644 orders/apps.py create mode 100644 orders/migrations/0001_initial.py create mode 100644 orders/migrations/0002_remove_order_robot_serial_order_robot_and_more.py create mode 100644 orders/migrations/__init__.py create mode 100644 orders/migrations/__pycache__/0001_initial.cpython-311.pyc create mode 100644 orders/migrations/__pycache__/0002_remove_order_robot_serial_order_robot_and_more.cpython-311.pyc create mode 100644 orders/migrations/__pycache__/0002_waitlistorder_remove_order_robot_serial_order_robot_and_more.cpython-311.pyc create mode 100644 orders/migrations/__pycache__/__init__.cpython-311.pyc create mode 100644 orders/models.py create mode 100644 orders/tests.py create mode 100644 orders/urls.py create mode 100644 orders/views.py create mode 100644 robots/__init__.py create mode 100644 robots/__pycache__/__init__.cpython-311.pyc create mode 100644 robots/__pycache__/admin.cpython-311.pyc create mode 100644 robots/__pycache__/apps.cpython-311.pyc create mode 100644 robots/__pycache__/models.cpython-311.pyc create mode 100644 robots/__pycache__/urls.cpython-311.pyc create mode 100644 robots/__pycache__/views.cpython-311.pyc create mode 100644 robots/admin.py create mode 100644 robots/apps.py create mode 100644 robots/migrations/0001_initial.py create mode 100644 robots/migrations/0002_robot_quantity.py create mode 100644 robots/migrations/__init__.py create mode 100644 robots/migrations/__pycache__/0001_initial.cpython-311.pyc create mode 100644 robots/migrations/__pycache__/0002_robot_quantity.cpython-311.pyc create mode 100644 robots/migrations/__pycache__/__init__.cpython-311.pyc create mode 100644 robots/models.py create mode 100644 robots/tests.py create mode 100644 robots/urls.py create mode 100644 robots/views.py create mode 100644 tasks.md diff --git a/R4C/__init__.py b/R4C/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/R4C/__pycache__/__init__.cpython-311.pyc b/R4C/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e8893b714c1c3b78f83fb24e134f824800e304c6 GIT binary patch literal 167 zcmZ3^%ge<81W|edsUZ3>h=2h`DC095kTIPhg&~+hlhJP_LlF~@{~09t%gWg*CbT%U zs5mAqu_!Yo#w9u1=!Qx1oYO^K2nm+Rf64=7T?UgdB68H z?+yK9I?YhM9g(!(aGzzt8iN^F%Xe9Q1cr*)+zf&R- z#E#}T`U6=01>V8)zgAKVg{3%(NQo9DC0i7VKBFZD#u$tfC@!TC?4Stp_Lyh1Mx%+R zkrpkbQA*07G|K#!$CD$Q!4b#M7Fx%L`mSSVXHc#1ikuQHoLAqwJ#8xbODEThi zC7^*FDqQC7avuSD3-sxxg;~u2)w*J9roqC`KGeXN*2eFHZOk0nc87diC?HcM+`z`j z1J%?E*eHO)f^Bv*l@vzK76$6=L(Cp@+ikY35t}s+E`w1F1ctC?u}_qC7n9#(%fbf% zL;vgugqX2)Dyam?l)Znu~0F1h=` z!jajSPdd3lM4W0Gwxu;WKYPy1IJavbI&))84}uNbKJ8%QTpQaYm=MV4s~b9OC@nzD zjw5V10oBVpag%D7*rtvx;>Ju1`J-hvO`FWeojXIIt|8RM$BKnHg4M32*{7U1oa|ie zIVDg6+QcagHP~41 zw4u|uCP1-)MxDTw{HALRw~0ILSH+1fLyxH7kZF@+(?z* z5v(+HwR3;WX}?}N3L(eP6*Al$8uHC?djwm&?R9Y1#-gTcZN=+{hXV=Ia@O8d(~f3n zdRMPtqh%jn;@964KWLBLp^ujeHr`Z0wF`Z(sjq5?V&hJixZ%A<(Mc5Gf`>jS1d0Ie z0bSABfi&xOhZ8*B=Adew4DnbkUkut=djKD_E$61v#wYlQ)1D}X`DF3#y_MDF4>vBP zoEfEcsOki$g+2( zfmC9X7X`0&Tt*a%b)g|Y5I%RKC1G=K+fDP8O6`$QlJD2VhUjL>Rj~mqU_il%F0)fE zl`6s`zAm__dac%w_v)2mt-9qV8^X?Rg>ML=n|&m1mp%DPxyXC9=|+xB&2Wc%`?LxM;eV5#VN!%T-j^N{p1{d^(=j1d9p9F?8zrTPgfC(!5F>GNFvWs2=n(Oa1S3CD9xKbeZg z`jkh)nREy|WU1VHXH*spM>FTs9H9Rk|2Flf)OVkK|K;=S%8TquKN`*g#v|dVkC~;C zlV@3}9}a<@gumDgF8&x?)CY?z>Fc30D&K#Hn#%XmFH=*!or}Ib|EUnM$J&Rk=b#vR@8tFuz`wL?@o-sy5`6_ z&;j@+M%Gm1gqVxSJkZ377+E_fuB757{}!6}EfS z=OIZfYomkVR*y!h&pDMj>iS8Wq?B}Vz@31^E>7J0&K;MNGz^$4gI$rHxz@97KNeWb zvsQaaAlYSU73f_DK1B%n2@Kr+&LD1FOOFxivq?f6kA2Ho%u>- zF|VsbV!Q|wKgP=yX;*Bk8u^UfZi>Rt80tkV2=8Dji8xBA5uN7(OR>Ks8yWBTtRX?> z?SB}pB|+3fVbT^NsC=@tKpf^spEV^66ja3V$XGmY!&WY(m&uhKha&|ak<4Qkl_-~H z+l)xt6#|YjRis1VR&3k)CGV}R4T?UB!$cT{RNU67A^Za~-_)N_%WmJKq)9k)`{m3~ zIDL~)gsJpqhVs6&CkJMuA?{YAF__NF5h`#RHmP{FU{D^bQRSmW={8u%@xYLk56WY= z;VU>5%izqbdi6~v^3_{D4N-lC1ict1oYgll;|;uxX%I487tiR=kYG-_b5?p36V!|F zV>%5(s{Dax&MJ9^(FOb zB-oJSV~!)_bmXVu>?rmlWVF-qlZ1zXuR;-bIvVe_W{5kP_G&`Uo*5IL}-H_uW zDiN)|QiiU@|e zWZ7<_R34sS8iW$tTElGQ6i#w_d+)`(zAsZ-!{}cF@<_X>NeG!5MN*hT?j8WK&hO`K w0#C>P_X!vutzWS512)E+&UgC?%GXdHLwRCvjqR-~d;8knK3~aOx~j4N0>6I5(EtDd literal 0 HcmV?d00001 diff --git a/R4C/asgi.py b/R4C/asgi.py new file mode 100644 index 0000000..38d534a --- /dev/null +++ b/R4C/asgi.py @@ -0,0 +1,16 @@ +""" +ASGI config for R4C project. + +It exposes the ASGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/3.0/howto/deployment/asgi/ +""" + +import os + +from django.core.asgi import get_asgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'R4C.settings') + +application = get_asgi_application() diff --git a/R4C/settings.py b/R4C/settings.py new file mode 100644 index 0000000..8b99ed0 --- /dev/null +++ b/R4C/settings.py @@ -0,0 +1,132 @@ +""" +Django settings for R4C project. + +Generated by 'django-admin startproject' using Django 3.0.9. + +For more information on this file, see +https://docs.djangoproject.com/en/3.0/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/3.0/ref/settings/ +""" + +import os + +# Build paths inside the project like this: os.path.join(BASE_DIR, ...) +BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + + +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = 'mztx@x_-=gfhc9xs@bm58m&@3pc7##opo14zob!(l2tus05+jo' + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = True + +ALLOWED_HOSTS = [] + + +# Application definition + +INSTALLED_APPS = [ + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', + 'customers', + 'orders', + 'robots' +] + +MIDDLEWARE = [ + 'django.middleware.security.SecurityMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', +] + +ROOT_URLCONF = 'R4C.urls' + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.debug', + 'django.template.context_processors.request', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + ], + }, + }, +] + +WSGI_APPLICATION = 'R4C.wsgi.application' + + +# Database +# https://docs.djangoproject.com/en/3.0/ref/settings/#databases + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), + } +} + + +# Password validation +# https://docs.djangoproject.com/en/3.0/ref/settings/#auth-password-validators + +AUTH_PASSWORD_VALIDATORS = [ + { + 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', + }, +] + + +# Internationalization +# https://docs.djangoproject.com/en/3.0/topics/i18n/ + +LANGUAGE_CODE = 'en-us' + +TIME_ZONE = 'UTC' + +USE_I18N = True + +USE_L10N = True + +USE_TZ = True + + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/3.0/howto/static-files/ + +STATIC_URL = '/static/' + +#Email settings +EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' +EMAIL_HOST = 'smtp.gmail.com' +EMAIL_PORT = 587 # для использования TLS, 465 для SSL +EMAIL_USE_TLS = True +EMAIL_USE_SSL = False +EMAIL_HOST_USER = 'alexej.ivanov1084736@gmail.com' +EMAIL_HOST_PASSWORD = 'agyi wuxr nckw yybm' \ No newline at end of file diff --git a/R4C/urls.py b/R4C/urls.py new file mode 100644 index 0000000..66842dd --- /dev/null +++ b/R4C/urls.py @@ -0,0 +1,23 @@ +"""R4C URL Configuration + +The `urlpatterns` list routes URLs to views. For more information please see: + https://docs.djangoproject.com/en/3.0/topics/http/urls/ +Examples: +Function views + 1. Add an import: from my_app import views + 2. Add a URL to urlpatterns: path('', views.home, name='home') +Class-based views + 1. Add an import: from other_app.views import Home + 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') +Including another URLconf + 1. Import the include() function: from django.urls import include, path + 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) +""" +from django.contrib import admin +from django.urls import path +from django.urls import path, include +urlpatterns = [ + path('admin/', admin.site.urls), + path('robots/',include('robots.urls')), + path('orders/',include('orders.urls')), +] diff --git a/R4C/wsgi.py b/R4C/wsgi.py new file mode 100644 index 0000000..385b51e --- /dev/null +++ b/R4C/wsgi.py @@ -0,0 +1,16 @@ +""" +WSGI config for R4C project. + +It exposes the WSGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/3.0/howto/deployment/wsgi/ +""" + +import os + +from django.core.wsgi import get_wsgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'R4C.settings') + +application = get_wsgi_application() diff --git a/README.md b/README.md index c037f11..eec0642 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,33 @@ -# Robots -Это заготовка для сервиса, который ведет учет произведенных роботов, а также выполняет некие операции связанные с этим процессом. +# R4C - Robots for consumers + +## Небольшая предыстория. +Давным-давно, в далёкой-далёкой галактике, была компания производящая различных +роботов. + +Каждый робот(**Robot**) имел определенную модель выраженную двух-символьной +последовательностью(например R2). Одновременно с этим, модель имела различные +версии(например D2). Напоминает популярный телефон различных моделей(11,12,13...) и его версии +(X,XS,Pro...). Вне компании роботов чаще всего называли по серийному номеру, объединяя модель и версию(например R2-D2). + +Также у компании были покупатели(**Customer**) которые периодически заказывали того или иного робота. + +Когда роботов не было в наличии - заказы покупателей(**Order**) попадали в список ожидания. + +--- +## Что делает данный код? +Это заготовка для сервиса, который ведет учет произведенных роботов,а также +выполняет некие операции связанные с этим процессом. + +Сервис нацелен на удовлетворение потребностей трёх категорий пользователей: +- Технические специалисты компании. Они будут присылать информацию +- Менеджмент компании. Они будут запрашивать информацию +- Клиенты. Им будут отправляться информация +___ + +## Как с этим работать? +- Создать для этого проекта репозиторий на GitHub +- Открыть данный проект в редакторе/среде разработки которую вы используете +- Ознакомиться с задачами в файле tasks.md +- Написать понятный и поддерживаемый код для каждой задачи +- Сделать по 1 отдельному PR с решением для каждой задачи +- Прислать ссылку на своё решение \ No newline at end of file diff --git a/customers/__init__.py b/customers/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/customers/__pycache__/__init__.cpython-311.pyc b/customers/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9aec5c497e435915107ac80bec5c4c24d08ec5f9 GIT binary patch literal 173 zcmZ3^%ge<81W|edsUZ3>h=2h`DC095kTIPhg&~+hlhJP_LlF~@{~09t%fZnoPI&QnC{B()0C_^YcoIGLwp!feKbKdpz;@oO>TZlX-=wL d5eLvTMj$Sh1ri^a85tRGFeqHWhKksLDgdA9JDC6g literal 0 HcmV?d00001 diff --git a/customers/__pycache__/apps.cpython-311.pyc b/customers/__pycache__/apps.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..80a37570e08af2fbfc9133e704d052ff94f719eb GIT binary patch literal 489 zcmZutJ4*vW5T3caNS;I#w6;uhm6ZfRE?^;~@X;Ix%XzyAC%K2aInd6+A7Gb%poo9Q zGF)qA7l~CWXYVcn(V5+uZ{EA}(&;pT$hEh{HR%s+tf^LkrA=T495_xOLKhJXI0bGz z0yhOdn*eWgOL7fvT|lq)sm&hdjgvHWl6Vx3gDRs?SQ*P50y7ZcA_uBP*W?D(n|asC z)HI2NRAqVI2-c2a&&unJ#eO6h%bScv3C|`Pw;8+5{7DtDw0?!9p0(;bN8Xj9cHYRB zA@>GJkVPV%D(_OLDHC@>2B8w(`Jv-&CV76EDm%TGdKZPT2&i2W4;!Ah_8tbBWqX}9 zqz|+|!l`Lmi-`nq_qdEdHW()K; zM(CFahLRmP=kws~A%X~Yk%tZJNrr@xgq9GIJ|iMi+?0oxy5Q|!MTSf=Z&5jWDvrw% z*FC4f?8piHkSkt5s2kRXH^rWUf&Kg|m_0<1feA7sf(^NWjEsb6wyB6hAw(iFWJa25 zKZXp3l_A*!rJDg5pna)JWF)QBh8dzBXkB>lKIpKfAsy&l338x)X<$PqIe0*xYs*9A zt6Z(N!zl15gOYlsUHRe55?TMcG;q zQp>kJ%Cpq79ryGPbSq;Z$KJMF>NlcwpemDAD0PRrBwQ)yxN4=BEQ{-w1>Ch=3Vz;$#t5b!yeh@<3hM=)9hDZn(jYh9fwAgI2S$F1+z3d055J3b7D8v>H1xvt4Ku-}7J|H4e+!ZU(E^vDz$r6e58kzDDSDOOUL%)-_ znIA_fQ^J_gAoVIFzqO%o@)?*NM3IFFvIK%V*b)UqrEZlJgeLq&>DGoAL?j~bE4xs} z9-P72ul=1+=|iow;6uIOLnhk3{(m1G!P3YWlvQWi%c>qIPV@3Ki$j{EtiG_YaL@50 zKl9yysg;6BksDH`wBi=rN53Htz|{zCyLpg7cic@Upiw7VGewYie;kfT_>h>~_Gv(v zOheZXR!t$f!e5m<@;7qYGIgdprM2TQ-Ejb&2Nd|a<80(^!2NKE&~+LS8hJiV6Fw-W zE)(*EyG|r7YAb7QQp!wU4l-Kt@j4xj?i)G*Lv$9cJhI=UP_Nx~6Q9`4*vms2WvRVN z)6AipH1YhD+OHn0l&5M#YM=iGHgxK~Q)veIyFBXoTUqb?`ujwIpe5l<`U%L^Xcr37 z<_b}`rfj_^bfisv)O+e=f8tJme4=m6Y|r(KnXeCjiU&sX&}jCIW>J$g{TKl`<%DBy za?EszxiP|cKV}b%r9)$>XDnUBG{y{N>p9=aRFzxHl$b`kZq$kA$-A<{WnTx`Pja); zb{e=db#XAJ$H^@aF`V=*kV3>5Lq*s;KzA>Hg))wn0$nECdhhD&F;|@aLtDoE1JySJ Ak^lez literal 0 HcmV?d00001 diff --git a/customers/migrations/__pycache__/__init__.cpython-311.pyc b/customers/migrations/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0a67f236c99b84fbe382881bf91cc8980f35c452 GIT binary patch literal 184 zcmZ3^%ge<81W|edsUZ3>h=2h`DC095kTIPhg&~+hlhJP_LlF~@{~09t%iGy1CbT%U zs5mAqu_!Yo#w9@56{6OLZGb1D82L>2X#0(Sz0A2zv Az5oCK literal 0 HcmV?d00001 diff --git a/customers/models.py b/customers/models.py new file mode 100644 index 0000000..33db289 --- /dev/null +++ b/customers/models.py @@ -0,0 +1,5 @@ +from django.db import models + +class Customer(models.Model): + email = models.CharField(max_length=255,blank=False, null=False,unique=True) + name = models.CharField(max_length=255,default='NoName') diff --git a/customers/tests.py b/customers/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/customers/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/customers/views.py b/customers/views.py new file mode 100644 index 0000000..91ea44a --- /dev/null +++ b/customers/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here. diff --git a/db.sqlite3 b/db.sqlite3 new file mode 100644 index 0000000000000000000000000000000000000000..2c76697560a4194363dc459d74f10470fc9cda8b GIT binary patch literal 163840 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 U00JNY0w4eaAOHd&(3Qad0uH7#(*OVf literal 0 HcmV?d00001 diff --git a/manage.py b/manage.py new file mode 100644 index 0000000..5c81f95 --- /dev/null +++ b/manage.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python +"""Django's command-line utility for administrative tasks.""" +import os +import sys + + +def main(): + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'R4C.settings') + try: + from django.core.management import execute_from_command_line + except ImportError as exc: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) from exc + execute_from_command_line(sys.argv) + + +if __name__ == '__main__': + main() diff --git a/orders/__init__.py b/orders/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/orders/__pycache__/__init__.cpython-311.pyc b/orders/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0e6bab6bc8c63f10b8166a321891230db3df219b GIT binary patch literal 170 zcmZ3^%ge<81W|edsUZ3>h=2h`DC095kTIPhg&~+hlhJP_LlF~@{~09t%huT{CbT%U zs5mAqu_!Yo#w9PO4oIE6_BMeZ~Ah;sY}yBjX1K7*WIw6axTR2q?h- literal 0 HcmV?d00001 diff --git a/orders/__pycache__/admin.cpython-311.pyc b/orders/__pycache__/admin.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ae8c39a56c7c65dddccb9890d828429f191461af GIT binary patch literal 225 zcmZ3^%ge<81W|edsZK!pF^B^LOi;#WAs}NqLkdF*V-7noPI&QnC{B()0C_^YcoIGLwp!feKbKdC%vZ!joaz=n$0fGPmT-#S15 literal 0 HcmV?d00001 diff --git a/orders/__pycache__/apps.cpython-311.pyc b/orders/__pycache__/apps.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ca04f2191706cddf2ecb138e46749139273072d4 GIT binary patch literal 480 zcmZuty-EW?5T3cagqTZEj4xoB<|>5W%13SXhqiCY$!eU(K_ofP>YPW3n2rr@aDF=t#%07Y{smTM%DU4%WY?N{v0

z!FtJH8p(K~*_G52F7Koogj%wTgDxw^upmvfm)HV%6hGT>;{+!upztA;QVD?wRGF9%AA-=d5)e=+MY1A{o4d9tjtyrglm$hI zp#uX060jkLQq&?bRN`M?bR-YatxRl1W$FU&&T&O(1>DCk@9uv0?%n;K^FEVFBPfd> z50E!9LSOkHE^5!%d1jnQOtxpuE{%N?Bi>Fd<7@g)MfCty6w?O;Q@#@$9R{nea^W`9#bA0OO`I(DqXrV#y_Z;b(ntHb!}of(Q3BtnKM@H zz7UjPn&&RWiy!3H;TU*2dUF7~$~wJ%H<-L1JZuKJRwoBqx45!HT-l)&CD2DZ`e>++ zw#T~J;icIyJG^o%$QC==XU;9+ znJCK#f~5C8xG literal 0 HcmV?d00001 diff --git a/orders/__pycache__/urls.cpython-311.pyc b/orders/__pycache__/urls.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..29f43e56cd23112b7ac67e636b0229b24cc2ec63 GIT binary patch literal 504 zcmZ8cJ5K^Z5Z=Ap<0&CVjSaD~p#e=Sj8Pj1B_uu?atS%v0gv1(yN3@7LuqNJzW`&j z@TVLJ1-ViyIubf6cR7i{*_qw_X203_<~5T^Az{0NE%*}Ww**Uz{a$7rad}1*QEVX_ z*D*#^p{k|WYF))hL4YX%wL_MLRQrexRD|9|M7H3>1xH(EXyQMot<+;Qd5-d_i6rH5 zNIb*8p5O>*HzwTjUdr&yB6F`?zZh=1i~?&cPy-z5xu)aGI>)e~xBka8JP!<34A&xR z1grUYn5G@WX}g6kvpAD#L&T&+CTC{}nMjK_p~DB}@HaFQDKtMR9qE@G7}r|{GpSy7 zn_U|mpX(RE{RZ3tYnmMNvxCwi7CN~uyA-_pdE(f1Y1e{NmKDFr`FKlgQx#)8M!8_s z$7my1^=S-g$$t4U_tYJ2?+1s~fYgShHX^k#N%YG>GWP9X KS}v9mt$qOSyNCt= literal 0 HcmV?d00001 diff --git a/orders/__pycache__/views.cpython-311.pyc b/orders/__pycache__/views.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ace3f73fc26d491995c4e48e7b8ab4be07cbcb0a GIT binary patch literal 4148 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 A)c^nh literal 0 HcmV?d00001 diff --git a/orders/migrations/__pycache__/0002_waitlistorder_remove_order_robot_serial_order_robot_and_more.cpython-311.pyc b/orders/migrations/__pycache__/0002_waitlistorder_remove_order_robot_serial_order_robot_and_more.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..caa3d7423da15507f502c450f735b51469138e69 GIT binary patch literal 2007 zcmb7F%}*Og6rWwM7k>vE2#G>~$mxfBuqaAVsH&(GN=niML};p7R;O#v*jlsRh1qpl zXbv1&smI*fV^yiN6+ZURLk|5DTxkzzPL*=%Z4sO}_06o;l#)wkz3VpCL62&$+} z$l)iY5>pY?&SDXj2#wwviXb4DL@OCdEqySPyA@I^9qEV$Pn_u8p?$DB7}z#cl8~rT zE@&TI4k9Joz9haw!HiPu4rG=d>wv z`5QAcGqX67v2C;|HY|^_GaYRkrUhO)b83#~@)7AG1-#ucY|r#|#InPPK+M4M+t{>C z&onHa{nRi$%XGa}vC5Ou2yc08WBD`_dXyzA={#d}JO|eqH9Shd)W&cdsYiKw%V5;@ zuw~ktATYCSupPWfcX-mJ48oYZl&hY@bEb=HMtxHvQc_ZwsAVa}HL)?SH%w{~m&a>{ zOMyuPi{}=vWrZ3-b)4me@gvFeVdV z6TtdtG6|lD&Yb6>84jTfk?fYESt%x=*|b0rh!0Bzp1@(bFi&9&Uv9^u81oDkMX_Wd zK_YaE+JxG5le$ba0iIrz2mC;6l8LLzv#U1UaDXg}cYhww)(^&%^>Dp*pqfFlsjK`%t6Qg1Aq8y|YF8-R3uR48hUq zw~OyqKY_z{s||yhq`KtPJ8h`8Tiu|phv`?8)lHXH*KaM#S00jEJ!@N4c^|**-!r+4 znanCYQ2gKeo>Lh%frDeTytTtbvynt}E_WMx-QM5{G;LH5P(=1V4ss|t^;4LYQ43`{@Q2$+86$s>91`E2)(Z^sle9N$AZS}{FW&AA&j<0?Xf8;gk()twD49A!Ku!b+h6kC9Lo!of zD3*bo2m&t236bcvL$Q42uuy#Vx?d>%I{L@u=U4st6@Px+pRe@HClLFoa!({Ra$h6` z6p{iO3~2%p$cZ393MD56;&q95ZGhP5ntu6?U%u;?S9_n^0OTnjNxT(_w<7UYF5ta3 zUeNdMiHE%t)c~47GQ5RlQj^yh=2h`DC095kTIPhg&~+hlhJP_LlF~@{~09t%fs0!CbT%U zs5mAqu_!Yo#w9h=2h`DC095kTIPhg&~+hlhJP_LlF~@{~09t%huT{CbT%U zs5mAqu_!Yo#w9noPI&QnC{B()0C_^YcoIGLwp!feKbKd2KczG$)vkyG bXcQw57s~>P56p~=j5in*E?`4NY(NzN%9=V# literal 0 HcmV?d00001 diff --git a/robots/__pycache__/apps.cpython-311.pyc b/robots/__pycache__/apps.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b4740dc09baf1c82a8fc86faefb2960ca65df2c3 GIT binary patch literal 480 zcmZuty-EW?5T3cagqR-`;|o}(xymLYf+S!eq=?!a3(J|^gh=kk-2}8t;RD#^4I<*p zScYq@>`r2p%GtY%AUd-<^L;yi%RDz4RUq-)J;}(w8?u#B0oE>o1qcv0fdD;3u;3ho z^$5b2xU>OY>E_~D!nuT2>BG<#COcby27tBmzpPEz4K^aIIxQsq2|#B5@4o%6eyKPe)P@h`A8Q#S3+F}v1MX*TrL zSg>w1m<2MNYIY^{l*@am24gK*|ERHV%6u-0Md|^8vQ9vTCL?s4Sr4vYqAQnz_AA~>{GG^v4NF)!@txVa1%G8NFJBdW;z@6Xod-s0#e)rzlUlb(`*!X5$#~&d8 zKe@9U(!w}@%#1UD0D?AXLLEXNfL(xuPXLJ+HiYGdo(RBzNi=j3#oho-nsHZyG~RR( zw!PXS9KKc*KbU(4Fwh|ax*z~7HeyR4f=EEZckxns=@Ke-B`W@3s6>cLt{6F=)MJGW zR>kS55EHhG<9bX6%MC!khT^Q)1eFfls_V~qVI@tZ>85#N*x0H2$5g7?rt^-*oR)3R zcwS8)oRXxN+Sg>7Gz`aVV#A5<3r1|qX^;crK$X}NlF&B5siD8Sf)*- zu)8$T#>BH+hbjfr$A?xEN3cYVV77qh&DXAH`BodhbbMULi!4dT;P{q*`W2ir0&wv> z|D;l8slCdPNi0+;xV2UjJHA&r#GY^96HIEBhbspU^Pv!4wO5I*c<22o;SC5Czecaa zRA)7(%6j*0pse?A4DXNdSSd`DLZB2nrKz0lmI683hr_i|c`WBAaz2pro#Is8=pF^? zM*rUM(Wo_6ixagNsKw6iRNdr(&Hmc3JXUiPH5aHkww&4Owu8*pB(oi4wmUEQB)6AG z+Sg(U6F-(l88@@aGz&&XZovcCj)drZwm2;mfD$A3Tb XxC9@}!N00o`uyq_U;lkYFr@nfzu@6; literal 0 HcmV?d00001 diff --git a/robots/__pycache__/urls.cpython-311.pyc b/robots/__pycache__/urls.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..92b5891f330e3cfa95c077ca604e7d3d4c056f2a GIT binary patch literal 492 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 literal 0 HcmV?d00001 diff --git a/robots/migrations/__pycache__/__init__.cpython-311.pyc b/robots/migrations/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1546e07a405c4a65bcb52a7c6ba965e8610b3dfc GIT binary patch literal 181 zcmZ3^%ge<81W|edsUZ3>h=2h`DC095kTIPhg&~+hlhJP_LlF~@{~09t%fs0!CbT%U zs5mAqu_!Yo#w9Awl9``Z y91|a(nU`4-AFo$X`HRCQH$SB`C)KWq6=*QX>SBH%@qw9 Date: Fri, 29 Sep 2023 19:47:03 +0300 Subject: [PATCH 2/2] Update settings.py --- R4C/settings.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R4C/settings.py b/R4C/settings.py index 8b99ed0..45cfde8 100644 --- a/R4C/settings.py +++ b/R4C/settings.py @@ -128,5 +128,5 @@ EMAIL_PORT = 587 # для использования TLS, 465 для SSL EMAIL_USE_TLS = True EMAIL_USE_SSL = False -EMAIL_HOST_USER = 'alexej.ivanov1084736@gmail.com' -EMAIL_HOST_PASSWORD = 'agyi wuxr nckw yybm' \ No newline at end of file +EMAIL_HOST_USER = '' +EMAIL_HOST_PASSWORD = ''