From c4fd90c6f61e559211383486018baa0b84c9818f Mon Sep 17 00:00:00 2001 From: Nurmerey Shakhanova Date: Mon, 23 Dec 2019 15:05:23 -0800 Subject: [PATCH 1/5] Setup PostgreSQL --- .gitignore | 3 ++ Pipfile | 2 + Pipfile.lock | 87 +++++++++++++++++++++++++++++++++++- projectsplatform/settings.py | 9 +++- 4 files changed, 97 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 894a44c..02f08e4 100644 --- a/.gitignore +++ b/.gitignore @@ -102,3 +102,6 @@ venv.bak/ # mypy .mypy_cache/ + +# vscode configs +.vscode diff --git a/Pipfile b/Pipfile index e77f656..4e73af3 100644 --- a/Pipfile +++ b/Pipfile @@ -4,6 +4,8 @@ url = "https://pypi.org/simple" verify_ssl = true [dev-packages] +pylint = "*" +autopep8 = "*" [packages] django = "==2.2.6" diff --git a/Pipfile.lock b/Pipfile.lock index 21d2bbf..0dab568 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "cbb87c529bffbe1064f8cceb03aa98da71f8bf9c84ebb3900ed14db87ba781ff" + "sha256": "989efce7ed651d1d51333bcb29be970b1358ed5f519220ac9b7024cbd4db2769" }, "pipfile-spec": 6, "requires": { @@ -39,5 +39,88 @@ "version": "==0.3.0" } }, - "develop": {} + "develop": { + "astroid": { + "hashes": [ + "sha256:71ea07f44df9568a75d0f354c49143a4575d90645e9fead6dfb52c26a85ed13a", + "sha256:840947ebfa8b58f318d42301cf8c0a20fd794a33b61cc4638e28e9e61ba32f42" + ], + "version": "==2.3.3" + }, + "autopep8": { + "hashes": [ + "sha256:4d8eec30cc81bc5617dbf1218201d770dc35629363547f17577c61683ccfb3ee" + ], + "index": "pypi", + "version": "==1.4.4" + }, + "isort": { + "hashes": [ + "sha256:54da7e92468955c4fceacd0c86bd0ec997b0e1ee80d97f67c35a78b719dccab1", + "sha256:6e811fcb295968434526407adb8796944f1988c5b65e8139058f2014cbe100fd" + ], + "version": "==4.3.21" + }, + "lazy-object-proxy": { + "hashes": [ + "sha256:0c4b206227a8097f05c4dbdd323c50edf81f15db3b8dc064d08c62d37e1a504d", + "sha256:194d092e6f246b906e8f70884e620e459fc54db3259e60cf69a4d66c3fda3449", + "sha256:1be7e4c9f96948003609aa6c974ae59830a6baecc5376c25c92d7d697e684c08", + "sha256:4677f594e474c91da97f489fea5b7daa17b5517190899cf213697e48d3902f5a", + "sha256:48dab84ebd4831077b150572aec802f303117c8cc5c871e182447281ebf3ac50", + "sha256:5541cada25cd173702dbd99f8e22434105456314462326f06dba3e180f203dfd", + "sha256:59f79fef100b09564bc2df42ea2d8d21a64fdcda64979c0fa3db7bdaabaf6239", + "sha256:8d859b89baf8ef7f8bc6b00aa20316483d67f0b1cbf422f5b4dc56701c8f2ffb", + "sha256:9254f4358b9b541e3441b007a0ea0764b9d056afdeafc1a5569eee1cc6c1b9ea", + "sha256:9651375199045a358eb6741df3e02a651e0330be090b3bc79f6d0de31a80ec3e", + "sha256:97bb5884f6f1cdce0099f86b907aa41c970c3c672ac8b9c8352789e103cf3156", + "sha256:9b15f3f4c0f35727d3a0fba4b770b3c4ebbb1fa907dbcc046a1d2799f3edd142", + "sha256:a2238e9d1bb71a56cd710611a1614d1194dc10a175c1e08d75e1a7bcc250d442", + "sha256:a6ae12d08c0bf9909ce12385803a543bfe99b95fe01e752536a60af2b7797c62", + "sha256:ca0a928a3ddbc5725be2dd1cf895ec0a254798915fb3a36af0964a0a4149e3db", + "sha256:cb2c7c57005a6804ab66f106ceb8482da55f5314b7fcb06551db1edae4ad1531", + "sha256:d74bb8693bf9cf75ac3b47a54d716bbb1a92648d5f781fc799347cfc95952383", + "sha256:d945239a5639b3ff35b70a88c5f2f491913eb94871780ebfabb2568bd58afc5a", + "sha256:eba7011090323c1dadf18b3b689845fd96a61ba0a1dfbd7f24b921398affc357", + "sha256:efa1909120ce98bbb3777e8b6f92237f5d5c8ea6758efea36a473e1d38f7d3e4", + "sha256:f3900e8a5de27447acbf900b4750b0ddfd7ec1ea7fbaf11dfa911141bc522af0" + ], + "version": "==1.4.3" + }, + "mccabe": { + "hashes": [ + "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42", + "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f" + ], + "version": "==0.6.1" + }, + "pycodestyle": { + "hashes": [ + "sha256:95a2219d12372f05704562a14ec30bc76b05a5b297b21a5dfe3f6fac3491ae56", + "sha256:e40a936c9a450ad81df37f549d676d127b1b66000a6c500caa2b085bc0ca976c" + ], + "version": "==2.5.0" + }, + "pylint": { + "hashes": [ + "sha256:3db5468ad013380e987410a8d6956226963aed94ecb5f9d3a28acca6d9ac36cd", + "sha256:886e6afc935ea2590b462664b161ca9a5e40168ea99e5300935f6591ad467df4" + ], + "index": "pypi", + "version": "==2.4.4" + }, + "six": { + "hashes": [ + "sha256:1f1b7d42e254082a9db6279deae68afb421ceba6158efa6131de7b3003ee93fd", + "sha256:30f610279e8b2578cab6db20741130331735c781b56053c59c4076da27f06b66" + ], + "version": "==1.13.0" + }, + "wrapt": { + "hashes": [ + "sha256:565a021fd19419476b9362b05eeaa094178de64f8361e44468f9e9d7843901e1" + ], + "version": "==1.11.2" + } + } } diff --git a/projectsplatform/settings.py b/projectsplatform/settings.py index 604c9f8..09e55bd 100644 --- a/projectsplatform/settings.py +++ b/projectsplatform/settings.py @@ -21,6 +21,7 @@ # SECURITY WARNING: don't run with debug turned on in production! +SECRET_KEY = 'dulwepf_b#@eh19w)==v+pxvw$u$2gbxpwoevmzg)h-pl1mded' DEBUG = True ALLOWED_HOSTS = [] @@ -73,8 +74,12 @@ DATABASES = { 'default': { - 'ENGINE': 'django.db.backends.sqlite3', - 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), + 'ENGINE': 'django.db.backends.postgresql', + 'NAME': 'scprojects', + 'USER': 'scadmin', + 'PASSWORD': '', + 'HOST': 'localhost', + 'PORT': '', } } From a22925a01b088dfeb36729ba912227ab97e37af5 Mon Sep 17 00:00:00 2001 From: Nurmerey Shakhanova Date: Sat, 28 Dec 2019 12:01:27 -0800 Subject: [PATCH 2/5] Adding port and psycopg2 --- Pipfile | 1 + Pipfile.lock | 21 ++++++++++++++++++++- projectsplatform/settings.py | 2 +- 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/Pipfile b/Pipfile index 4e73af3..69cc50d 100644 --- a/Pipfile +++ b/Pipfile @@ -9,6 +9,7 @@ autopep8 = "*" [packages] django = "==2.2.6" +psycopg2 = "*" [requires] python_version = "3.8" diff --git a/Pipfile.lock b/Pipfile.lock index 0dab568..9b558c2 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "989efce7ed651d1d51333bcb29be970b1358ed5f519220ac9b7024cbd4db2769" + "sha256": "eb87b440ec0edde4aed9d5c7b55449d7fdf977777e7b4e31fe6a4d51b6e112bd" }, "pipfile-spec": 6, "requires": { @@ -24,6 +24,25 @@ "index": "pypi", "version": "==2.2.6" }, + "psycopg2": { + "hashes": [ + "sha256:4212ca404c4445dc5746c0d68db27d2cbfb87b523fe233dc84ecd24062e35677", + "sha256:47fc642bf6f427805daf52d6e52619fe0637648fe27017062d898f3bf891419d", + "sha256:72772181d9bad1fa349792a1e7384dde56742c14af2b9986013eb94a240f005b", + "sha256:8396be6e5ff844282d4d49b81631772f80dabae5658d432202faf101f5283b7c", + "sha256:893c11064b347b24ecdd277a094413e1954f8a4e8cdaf7ffbe7ca3db87c103f0", + "sha256:92a07dfd4d7c325dd177548c4134052d4842222833576c8391aab6f74038fc3f", + "sha256:965c4c93e33e6984d8031f74e51227bd755376a9df6993774fd5b6fb3288b1f4", + "sha256:9ab75e0b2820880ae24b7136c4d230383e07db014456a476d096591172569c38", + "sha256:b0845e3bdd4aa18dc2f9b6fb78fbd3d9d371ad167fd6d1b7ad01c0a6cdad4fc6", + "sha256:dca2d7203f0dfce8ea4b3efd668f8ea65cd2b35112638e488a4c12594015f67b", + "sha256:ed686e5926929887e2c7ae0a700e32c6129abb798b4ad2b846e933de21508151", + "sha256:ef6df7e14698e79c59c7ee7cf94cd62e5b869db369ed4b1b8f7b729ea825712a", + "sha256:f898e5cc0a662a9e12bde6f931263a1bbd350cfb18e1d5336a12927851825bb6" + ], + "index": "pypi", + "version": "==2.8.4" + }, "pytz": { "hashes": [ "sha256:1c557d7d0e871de1f5ccd5833f60fb2550652da6be2693c1e02300743d21500d", diff --git a/projectsplatform/settings.py b/projectsplatform/settings.py index 09e55bd..f120751 100644 --- a/projectsplatform/settings.py +++ b/projectsplatform/settings.py @@ -79,7 +79,7 @@ 'USER': 'scadmin', 'PASSWORD': '', 'HOST': 'localhost', - 'PORT': '', + 'PORT': '5432', } } From b0bdd8627b39c0c08d54cd7028870cac4439ad9e Mon Sep 17 00:00:00 2001 From: Nurmerey Shakhanova Date: Sat, 28 Dec 2019 12:27:27 -0800 Subject: [PATCH 3/5] Setup Project Model --- projectsplatform/settings.py | 1 + scprojects/__init__.py | 0 scprojects/admin.py | 3 ++ scprojects/apps.py | 5 ++++ scprojects/migrations/0001_initial.py | 41 +++++++++++++++++++++++++++ scprojects/migrations/__init__.py | 0 scprojects/models.py | 22 ++++++++++++++ scprojects/tests.py | 3 ++ scprojects/views.py | 3 ++ 9 files changed, 78 insertions(+) create mode 100644 scprojects/__init__.py create mode 100644 scprojects/admin.py create mode 100644 scprojects/apps.py create mode 100644 scprojects/migrations/0001_initial.py create mode 100644 scprojects/migrations/__init__.py create mode 100644 scprojects/models.py create mode 100644 scprojects/tests.py create mode 100644 scprojects/views.py diff --git a/projectsplatform/settings.py b/projectsplatform/settings.py index f120751..acd15eb 100644 --- a/projectsplatform/settings.py +++ b/projectsplatform/settings.py @@ -36,6 +36,7 @@ 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', + 'scprojects' ] MIDDLEWARE = [ diff --git a/scprojects/__init__.py b/scprojects/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/scprojects/admin.py b/scprojects/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/scprojects/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/scprojects/apps.py b/scprojects/apps.py new file mode 100644 index 0000000..1a69a5e --- /dev/null +++ b/scprojects/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class ScprojectsConfig(AppConfig): + name = 'scprojects' diff --git a/scprojects/migrations/0001_initial.py b/scprojects/migrations/0001_initial.py new file mode 100644 index 0000000..5660479 --- /dev/null +++ b/scprojects/migrations/0001_initial.py @@ -0,0 +1,41 @@ +# Generated by Django 2.2.6 on 2019-12-28 20:25 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='Tag', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created', models.DateTimeField(auto_now_add=True)), + ('updated', models.DateTimeField(auto_now=True)), + ('name', models.CharField(max_length=255)), + ], + ), + migrations.CreateModel( + name='Project', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=255)), + ('github_url', models.URLField(blank=True, max_length=255)), + ('description', models.TextField()), + ('looking_for', models.TextField()), + ('created', models.DateTimeField(auto_now_add=True)), + ('updated', models.DateTimeField(auto_now=True)), + ('contributors', models.ManyToManyField(to=settings.AUTH_USER_MODEL)), + ('lead', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='leads', to=settings.AUTH_USER_MODEL)), + ('tech_stack', models.ManyToManyField(to='scprojects.Tag')), + ], + ), + ] diff --git a/scprojects/migrations/__init__.py b/scprojects/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/scprojects/models.py b/scprojects/models.py new file mode 100644 index 0000000..a73313e --- /dev/null +++ b/scprojects/models.py @@ -0,0 +1,22 @@ +from django.db import models +from django.contrib.auth.models import User +# Create your models here. + + +class Tag(models.Model): + created = models.DateTimeField(auto_now_add=True) + updated = models.DateTimeField(auto_now=True) + name = models.CharField(max_length=255) + +class Project(models.Model): + name = models.CharField(max_length=255) + github_url = models.URLField(max_length=255, blank=True) + lead = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, related_name="leads") + description = models.TextField() + looking_for = models.TextField() + created = models.DateTimeField(auto_now_add=True) + updated = models.DateTimeField(auto_now=True) + tech_stack = models.ManyToManyField(Tag) + contributors = models.ManyToManyField(User) + + diff --git a/scprojects/tests.py b/scprojects/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/scprojects/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/scprojects/views.py b/scprojects/views.py new file mode 100644 index 0000000..91ea44a --- /dev/null +++ b/scprojects/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here. From f9e0d5400d91b742e9dca494f4a0bc1ac6777aca Mon Sep 17 00:00:00 2001 From: Nurmerey Shakhanova Date: Fri, 10 Jan 2020 09:50:00 -0800 Subject: [PATCH 4/5] URL patterns --- projectsplatform/urls.py | 5 ++++- scprojects/urls.py | 6 ++++++ scprojects/views.py | 4 +++- 3 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 scprojects/urls.py diff --git a/projectsplatform/urls.py b/projectsplatform/urls.py index 339d73a..b164e72 100644 --- a/projectsplatform/urls.py +++ b/projectsplatform/urls.py @@ -14,8 +14,11 @@ 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 include, path +from scprojects import views urlpatterns = [ + path('scprojects/', include('scprojects.urls')), path('admin/', admin.site.urls), + path('', views.index, name='index') ] diff --git a/scprojects/urls.py b/scprojects/urls.py new file mode 100644 index 0000000..6e21aeb --- /dev/null +++ b/scprojects/urls.py @@ -0,0 +1,6 @@ +from django.urls import path +from . import views + +urlpatterns = [ + path('', views.index, name='index'), +] diff --git a/scprojects/views.py b/scprojects/views.py index 91ea44a..bbe73cf 100644 --- a/scprojects/views.py +++ b/scprojects/views.py @@ -1,3 +1,5 @@ from django.shortcuts import render +from django.http import HttpResponse -# Create your views here. +def index(request): + return HttpResponse("Hello, world. You're at the polls index.") From 1793cd97d5c94082b2e0923f8aa310d643c3233d Mon Sep 17 00:00:00 2001 From: Nurmerey Shakhanova Date: Mon, 13 Jan 2020 08:51:24 -0800 Subject: [PATCH 5/5] Removed --- scprojects/models.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/scprojects/models.py b/scprojects/models.py index a73313e..cee2f6c 100644 --- a/scprojects/models.py +++ b/scprojects/models.py @@ -2,12 +2,6 @@ from django.contrib.auth.models import User # Create your models here. - -class Tag(models.Model): - created = models.DateTimeField(auto_now_add=True) - updated = models.DateTimeField(auto_now=True) - name = models.CharField(max_length=255) - class Project(models.Model): name = models.CharField(max_length=255) github_url = models.URLField(max_length=255, blank=True) @@ -16,7 +10,6 @@ class Project(models.Model): looking_for = models.TextField() created = models.DateTimeField(auto_now_add=True) updated = models.DateTimeField(auto_now=True) - tech_stack = models.ManyToManyField(Tag) contributors = models.ManyToManyField(User)