⬆️ Major bumps and django checks

Notably to django 3.2
This commit is contained in:
Nikolai R Kristiansen committed 2021-10-27 19:12:07 +02:00
1 parent a1437ab5d2
commit d311e65058
9 files changed
+247 -38

No files matched your search

+20
View File
@@ -0,0 +1,20 @@
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[packages]
django-extensions = "==3.1.*"
easy-thumbnails = "==2.7.*"
facebook-sdk = "==3.0.0"
gunicorn = "==20.1.*"
mysqlclient = "==2.0.*"
djangorestframework = "==3.12.*"
sentry-sdk = "==1.*"
Django = "==3.2.*"
Pillow = "==8.*"
[dev-packages]
[requires]
python_version = "3.9"
Generated
+198
View File
@@ -0,0 +1,198 @@
{
"_meta": {
"hash": {
"sha256": "c079e1ab20a4d9bd30eed7407120599adbc7ef1de635764c5adcab332a08ca1e"
},
"pipfile-spec": 6,
"requires": {
"python_version": "3.9"
},
"sources": [
{
"name": "pypi",
"url": "https://pypi.org/simple",
"verify_ssl": true
}
]
},
"default": {
"asgiref": {
"hashes": [
"sha256:4ef1ab46b484e3c706329cedeff284a5d40824200638503f5768edb6de7d58e9",
"sha256:ffc141aa908e6f175673e7b1b3b7af4fdb0ecb738fc5c8b88f69f055c2415214"
],
"markers": "python_version >= '3.6'",
"version": "==3.4.1"
},
"certifi": {
"hashes": [
"sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872",
"sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569"
],
"version": "==2021.10.8"
},
"charset-normalizer": {
"hashes": [
"sha256:e019de665e2bcf9c2b64e2e5aa025fa991da8720daa3c1138cadd2fd1856aed0",
"sha256:f7af805c321bfa1ce6714c51f254e0d5bb5e5834039bc17db7ebe3a4cec9492b"
],
"markers": "python_version >= '3'",
"version": "==2.0.7"
},
"django": {
"hashes": [
"sha256:42573831292029639b798fe4d3812996bfe4ff3275f04566da90764daec011a5",
"sha256:f6d2c4069c9b9bfac03bedff927ea1f9e0d29e34525cec8a68fd28eb2a8df7af"
],
"index": "pypi",
"version": "==3.2.8"
},
"django-extensions": {
"hashes": [
"sha256:50de8977794a66a91575dd40f87d5053608f679561731845edbd325ceeb387e3",
"sha256:5f0fea7bf131ca303090352577a9e7f8bfbf5489bd9d9c8aea9401db28db34a0"
],
"index": "pypi",
"version": "==3.1.3"
},
"djangorestframework": {
"hashes": [
"sha256:6d1d59f623a5ad0509fe0d6bfe93cbdfe17b8116ebc8eda86d45f6e16e819aaf",
"sha256:f747949a8ddac876e879190df194b925c177cdeb725a099db1460872f7c0a7f2"
],
"index": "pypi",
"version": "==3.12.4"
},
"easy-thumbnails": {
"hashes": [
"sha256:9d7ed56a9b57aba7a8d0e03dc3b8507ca51aab5e0ed0bc705c3261ff1f659192",
"sha256:a7dd9cf97efaf70ba5d76484a962f08ba65b31f1681bc417257743650e9e8a8a"
],
"index": "pypi",
"version": "==2.7.2"
},
"facebook-sdk": {
"hashes": [
"sha256:8ef0a0d2c98a515a926875bb4be9c9a4630a39fc8190bff8d5265d58af1ef257",
"sha256:c94df84b2bba1c497684c169ed28a713b57917bf56f95fba4c2a5290c16ce81e",
"sha256:f3d450ec313b62d3716fadc4e5098183760e1d2a9e0434a94b74e59ea6ea3e4d"
],
"index": "pypi",
"version": "==3.0.0"
},
"gunicorn": {
"hashes": [
"sha256:9dcc4547dbb1cb284accfb15ab5667a0e5d1881cc443e0677b4882a4067a807e",
"sha256:e0a968b5ba15f8a328fdfd7ab1fcb5af4470c28aaf7e55df02a99bc13138e6e8"
],
"index": "pypi",
"version": "==20.1.0"
},
"idna": {
"hashes": [
"sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff",
"sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"
],
"markers": "python_version >= '3'",
"version": "==3.3"
},
"mysqlclient": {
"hashes": [
"sha256:0ac0dd759c4ca02c35a9fedc24bc982cf75171651e8187c2495ec957a87dfff7",
"sha256:3381ca1a4f37ff1155fcfde20836b46416d66531add8843f6aa6d968982731c3",
"sha256:71c4b330cf2313bbda0307fc858cc9055e64493ba9bf28454d25cf8b3ee8d7f5",
"sha256:f6ebea7c008f155baeefe16c56cd3ee6239f7a5a9ae42396c2f1860f08a7c432",
"sha256:fc575093cf81b6605bed84653e48b277318b880dc9becf42dd47fa11ffd3e2b6"
],
"index": "pypi",
"version": "==2.0.3"
},
"pillow": {
"hashes": [
"sha256:066f3999cb3b070a95c3652712cffa1a748cd02d60ad7b4e485c3748a04d9d76",
"sha256:0a0956fdc5defc34462bb1c765ee88d933239f9a94bc37d132004775241a7585",
"sha256:0b052a619a8bfcf26bd8b3f48f45283f9e977890263e4571f2393ed8898d331b",
"sha256:1394a6ad5abc838c5cd8a92c5a07535648cdf6d09e8e2d6df916dfa9ea86ead8",
"sha256:1bc723b434fbc4ab50bb68e11e93ce5fb69866ad621e3c2c9bdb0cd70e345f55",
"sha256:244cf3b97802c34c41905d22810846802a3329ddcb93ccc432870243211c79fc",
"sha256:25a49dc2e2f74e65efaa32b153527fc5ac98508d502fa46e74fa4fd678ed6645",
"sha256:2e4440b8f00f504ee4b53fe30f4e381aae30b0568193be305256b1462216feff",
"sha256:3862b7256046fcd950618ed22d1d60b842e3a40a48236a5498746f21189afbbc",
"sha256:3eb1ce5f65908556c2d8685a8f0a6e989d887ec4057326f6c22b24e8a172c66b",
"sha256:3f97cfb1e5a392d75dd8b9fd274d205404729923840ca94ca45a0af57e13dbe6",
"sha256:493cb4e415f44cd601fcec11c99836f707bb714ab03f5ed46ac25713baf0ff20",
"sha256:4acc0985ddf39d1bc969a9220b51d94ed51695d455c228d8ac29fcdb25810e6e",
"sha256:5503c86916d27c2e101b7f71c2ae2cddba01a2cf55b8395b0255fd33fa4d1f1a",
"sha256:5b7bb9de00197fb4261825c15551adf7605cf14a80badf1761d61e59da347779",
"sha256:5e9ac5f66616b87d4da618a20ab0a38324dbe88d8a39b55be8964eb520021e02",
"sha256:620582db2a85b2df5f8a82ddeb52116560d7e5e6b055095f04ad828d1b0baa39",
"sha256:62cc1afda735a8d109007164714e73771b499768b9bb5afcbbee9d0ff374b43f",
"sha256:70ad9e5c6cb9b8487280a02c0ad8a51581dcbbe8484ce058477692a27c151c0a",
"sha256:72b9e656e340447f827885b8d7a15fc8c4e68d410dc2297ef6787eec0f0ea409",
"sha256:72cbcfd54df6caf85cc35264c77ede902452d6df41166010262374155947460c",
"sha256:792e5c12376594bfcb986ebf3855aa4b7c225754e9a9521298e460e92fb4a488",
"sha256:7b7017b61bbcdd7f6363aeceb881e23c46583739cb69a3ab39cb384f6ec82e5b",
"sha256:81f8d5c81e483a9442d72d182e1fb6dcb9723f289a57e8030811bac9ea3fef8d",
"sha256:82aafa8d5eb68c8463b6e9baeb4f19043bb31fefc03eb7b216b51e6a9981ae09",
"sha256:84c471a734240653a0ec91dec0996696eea227eafe72a33bd06c92697728046b",
"sha256:8c803ac3c28bbc53763e6825746f05cc407b20e4a69d0122e526a582e3b5e153",
"sha256:93ce9e955cc95959df98505e4608ad98281fff037350d8c2671c9aa86bcf10a9",
"sha256:9a3e5ddc44c14042f0844b8cf7d2cd455f6cc80fd7f5eefbe657292cf601d9ad",
"sha256:a4901622493f88b1a29bd30ec1a2f683782e57c3c16a2dbc7f2595ba01f639df",
"sha256:a5a4532a12314149d8b4e4ad8ff09dde7427731fcfa5917ff16d0291f13609df",
"sha256:b8831cb7332eda5dc89b21a7bce7ef6ad305548820595033a4b03cf3091235ed",
"sha256:b8e2f83c56e141920c39464b852de3719dfbfb6e3c99a2d8da0edf4fb33176ed",
"sha256:c70e94281588ef053ae8998039610dbd71bc509e4acbc77ab59d7d2937b10698",
"sha256:c8a17b5d948f4ceeceb66384727dde11b240736fddeda54ca740b9b8b1556b29",
"sha256:d82cdb63100ef5eedb8391732375e6d05993b765f72cb34311fab92103314649",
"sha256:d89363f02658e253dbd171f7c3716a5d340a24ee82d38aab9183f7fdf0cdca49",
"sha256:d99ec152570e4196772e7a8e4ba5320d2d27bf22fdf11743dd882936ed64305b",
"sha256:ddc4d832a0f0b4c52fff973a0d44b6c99839a9d016fe4e6a1cb8f3eea96479c2",
"sha256:e3dacecfbeec9a33e932f00c6cd7996e62f53ad46fbe677577394aaa90ee419a",
"sha256:eb9fc393f3c61f9054e1ed26e6fe912c7321af2f41ff49d3f83d05bacf22cc78"
],
"index": "pypi",
"version": "==8.4.0"
},
"pytz": {
"hashes": [
"sha256:3672058bc3453457b622aab7a1c3bfd5ab0bdae451512f6cf25f64ed37f5b87c",
"sha256:acad2d8b20a1af07d4e4c9d2e9285c5ed9104354062f275f3fcd88dcef4f1326"
],
"version": "==2021.3"
},
"requests": {
"hashes": [
"sha256:6c1246513ecd5ecd4528a0906f910e8f0f9c6b8ec72030dc9fd154dc1a6efd24",
"sha256:b8aa58f8cf793ffd8782d3d8cb19e66ef36f7aba4353eec859e74678b01b07a7"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'",
"version": "==2.26.0"
},
"sentry-sdk": {
"hashes": [
"sha256:b9844751e40710e84a457c5bc29b21c383ccb2b63d76eeaad72f7f1c808c8828",
"sha256:c091cc7115ff25fe3a0e410dbecd7a996f81a3f6137d2272daef32d6c3cfa6dc"
],
"index": "pypi",
"version": "==1.4.3"
},
"sqlparse": {
"hashes": [
"sha256:0c00730c74263a94e5a9919ade150dfc3b19c574389985446148402998287dae",
"sha256:48719e356bb8b42991bdbb1e8b83223757b93789c00910a616a071910ca4a64d"
],
"markers": "python_version >= '3.5'",
"version": "==0.4.2"
},
"urllib3": {
"hashes": [
"sha256:4987c65554f7a2dbf30c18fd48778ef124af6fab771a377103da0585e2336ece",
"sha256:c4fdf4019605b6e5423637e01bc9fe4daef873709a7973e195ceba0a62bbc844"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'",
"version": "==1.26.7"
}
},
"develop": {}
}
+5 -2
View File
@@ -52,6 +52,7 @@ TEMPLATES = [
'OPTIONS': { 'OPTIONS': {
'context_processors': [ 'context_processors': [
'django.contrib.auth.context_processors.auth', 'django.contrib.auth.context_processors.auth',
'django.template.context_processors.request',
'django.template.context_processors.debug', 'django.template.context_processors.debug',
'django.template.context_processors.i18n', 'django.template.context_processors.i18n',
'django.template.context_processors.media', 'django.template.context_processors.media',
@@ -63,13 +64,13 @@ TEMPLATES = [
}, },
] ]
MIDDLEWARE_CLASSES = ( MIDDLEWARE = [
'django.middleware.common.CommonMiddleware', 'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware', 'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware', 'django.contrib.messages.middleware.MessageMiddleware',
) ]
ROOT_URLCONF = 'bbssite.urls' ROOT_URLCONF = 'bbssite.urls'
@@ -151,6 +152,8 @@ LOGGING = {
}, },
} }
DEFAULT_AUTO_FIELD = 'django.db.models.AutoField'
try: try:
from .local_settings import * from .local_settings import *
except ImportError: except ImportError:
+6 -6
View File
@@ -1,9 +1,9 @@
from django.conf import settings from django.conf import settings
from django.conf.urls import include, url
from django.contrib import admin from django.contrib import admin
from django.contrib.auth.views import LoginView, LogoutView from django.contrib.auth.views import LoginView, LogoutView
from django.contrib.staticfiles.urls import staticfiles_urlpatterns from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.contrib.staticfiles.views import serve from django.contrib.staticfiles.views import serve
from django.urls import path, re_path, include
from main import urls as main_urls from main import urls as main_urls
@@ -11,17 +11,17 @@ from main import urls as main_urls
admin.autodiscover() admin.autodiscover()
urlpatterns = [ urlpatterns = [
url(r'', include(main_urls)), re_path(r'', include(main_urls)),
url(r'^accounts/login/$', LoginView.as_view(), name='django.contrib.auth.views.login'), path('accounts/login/', LoginView.as_view(), name='django.contrib.auth.views.login'),
url(r'^accounts/logout/$', LogoutView.as_view(), name='django.contrib.auth.views.logout'), path('accounts/logout/', LogoutView.as_view(), name='django.contrib.auth.views.logout'),
url(r'^admin/', include(admin.site.urls)), path('admin/', admin.site.urls),
] ]
urlpatterns += staticfiles_urlpatterns() urlpatterns += staticfiles_urlpatterns()
if settings.DEBUG: if settings.DEBUG:
urlpatterns += [ urlpatterns += [
url(r'^media/(?P<path>.*)$', serve, { re_path(r'^media/(?P<path>.*)$', serve, {
'document_root': settings.MEDIA_ROOT, 'document_root': settings.MEDIA_ROOT,
}) })
] ]
+2 -3
View File
@@ -1,6 +1,5 @@
from rest_framework import mixins from rest_framework import mixins
from rest_framework.decorators import list_route from rest_framework.decorators import action
from rest_framework.permissions import AllowAny
from rest_framework.response import Response from rest_framework.response import Response
from main.api.serializers import ProductSerializer, ProductStatSerializer from main.api.serializers import ProductSerializer, ProductStatSerializer
@@ -14,7 +13,7 @@ class ProductViewSet(mixins.ListModelMixin,
serializer_class = ProductSerializer serializer_class = ProductSerializer
queryset = Product.objects.all() queryset = Product.objects.all()
@list_route(methods=['get']) @action(detail=False, methods=['get'])
def group_by_user(self, request): def group_by_user(self, request):
products = self.get_queryset().filter(active=True) products = self.get_queryset().filter(active=True)
serializer = ProductStatSerializer(products, many=True) serializer = ProductStatSerializer(products, many=True)
+1 -1
View File
@@ -2,7 +2,7 @@ from django.apps import AppConfig
class BBSAppConfig(AppConfig): class BBSAppConfig(AppConfig):
name = 'bbs' name = 'main'
verbose_name = 'Biceps Bar System' verbose_name = 'Biceps Bar System'
def ready(self): def ready(self):
+13 -14
View File
@@ -3,11 +3,10 @@ from datetime import datetime
from django.conf import settings from django.conf import settings
from django.db import models from django.db import models
from django.utils.encoding import python_2_unicode_compatible
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
@python_2_unicode_compatible
class Product(models.Model): class Product(models.Model):
name = models.CharField(max_length=64) name = models.CharField(max_length=64)
sale_price_int = models.FloatField() sale_price_int = models.FloatField()
@@ -53,9 +52,9 @@ class Product(models.Model):
ordering = ['name'] ordering = ['name']
@python_2_unicode_compatible
class Order(models.Model): class Order(models.Model):
customer = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, blank=True, related_name='orders') customer = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, null=True, blank=True, related_name='orders')
order_sum = models.FloatField(db_column='sum') order_sum = models.FloatField(db_column='sum')
created = models.DateTimeField(auto_now_add=True) created = models.DateTimeField(auto_now_add=True)
@@ -69,10 +68,10 @@ class Order(models.Model):
return "{}: {} kr".format(self.customer or "Ekstern", self.order_sum) return "{}: {} kr".format(self.customer or "Ekstern", self.order_sum)
@python_2_unicode_compatible
class OrderLine(models.Model): class OrderLine(models.Model):
order = models.ForeignKey('main.Order', related_name='orderlines') order = models.ForeignKey('main.Order', on_delete=models.CASCADE, related_name='orderlines')
product = models.ForeignKey('main.Product', related_name='orderlines') product = models.ForeignKey('main.Product', on_delete=models.CASCADE, related_name='orderlines')
amount = models.IntegerField() amount = models.IntegerField()
unit_price = models.FloatField(verbose_name=_('Enhetspris')) unit_price = models.FloatField(verbose_name=_('Enhetspris'))
@@ -87,10 +86,10 @@ class OrderLine(models.Model):
unique_together = ('order', 'product') unique_together = ('order', 'product')
@python_2_unicode_compatible
class Transaction(models.Model): class Transaction(models.Model):
""" Money """ """ Money """
user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='transactions') user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='transactions')
amount = models.FloatField() amount = models.FloatField()
created = models.DateTimeField(auto_now_add=True) created = models.DateTimeField(auto_now_add=True)
@@ -98,11 +97,11 @@ class Transaction(models.Model):
return "{}: {}: {}".format(self.id, self.user, self.amount) return "{}: {}: {}".format(self.id, self.user, self.amount)
@python_2_unicode_compatible
class InventoryTransaction(models.Model): class InventoryTransaction(models.Model):
""" Goods """ """ Goods """
user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='inventory_transactions') user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='inventory_transactions')
product = models.ForeignKey('main.Product', related_name='transactions', verbose_name=_('Produkt')) product = models.ForeignKey('main.Product', on_delete=models.CASCADE, related_name='transactions', verbose_name=_('Produkt'))
amount = models.FloatField(verbose_name=_('Antall')) amount = models.FloatField(verbose_name=_('Antall'))
unit_price = models.FloatField(verbose_name=_('Enhetspris')) unit_price = models.FloatField(verbose_name=_('Enhetspris'))
comment = models.TextField(verbose_name=_('Kommentar'), blank=True) comment = models.TextField(verbose_name=_('Kommentar'), blank=True)
@@ -121,9 +120,9 @@ class InventoryTransaction(models.Model):
self.unit_price) self.unit_price)
@python_2_unicode_compatible
class UserProfile(models.Model): class UserProfile(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL, related_name='profile') user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='profile')
balance = models.FloatField(default=0.0) balance = models.FloatField(default=0.0)
image = models.URLField(blank=True) image = models.URLField(blank=True)
+2 -1
View File
@@ -6,11 +6,12 @@ from datetime import datetime, timedelta
from django.conf import settings from django.conf import settings
from django.contrib import messages from django.contrib import messages
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.core.urlresolvers import reverse
from django.db.models import Min from django.db.models import Min
from django.forms import formset_factory from django.forms import formset_factory
from django.http import HttpResponseRedirect from django.http import HttpResponseRedirect
from django.shortcuts import render, redirect from django.shortcuts import render, redirect
from django.urls import reverse
from main.forms import OrderLineForm, OrderForm, DepositForm from main.forms import OrderLineForm, OrderForm, DepositForm
from main.models import Product, OrderLine, Order, Transaction from main.models import Product, OrderLine, Order, Transaction
from main.utils import users_format_js, users_with_perm from main.utils import users_format_js, users_with_perm
-11
View File
@@ -1,11 +0,0 @@
django==1.11.15
django-bootstrap-form==3.4
django-extensions==2.1.0
django-widget-tweaks==1.4.2
easy-thumbnails==2.5
facebook-sdk==3.0.0
gunicorn==19.9.0
mysqlclient==1.3.13
djangorestframework==3.6.4
pillow==5.2.0
raven==6.9.0