✨ Add user register mutation
🔥 Remove a bunch of legacy code
This commit is contained in:
1 parent
a47de48243
commit
b5c9094b64
34 files changed
+46
-7544
No files matched your search
@@ -0,0 +1,32 @@
|
||||
import strawberry
|
||||
import strawberry_django
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.db import transaction
|
||||
from strawberry_django import auto
|
||||
|
||||
from main import models
|
||||
from main.api.types.users import User
|
||||
|
||||
DjangoUser = get_user_model()
|
||||
|
||||
|
||||
@strawberry_django.input(DjangoUser)
|
||||
class UserInput:
|
||||
email: auto
|
||||
first_name: auto
|
||||
last_name: auto
|
||||
|
||||
|
||||
@strawberry.mutation
|
||||
@transaction.atomic
|
||||
def register_mutation(input: UserInput) -> User:
|
||||
user = DjangoUser.objects.create_user(
|
||||
first_name=input.first_name, last_name=input.last_name, email=input.email, username=input.email
|
||||
)
|
||||
models.UserProfile.objects.create(user=user)
|
||||
return user
|
||||
|
||||
|
||||
@strawberry.type
|
||||
class UsersMutations:
|
||||
register = register_mutation
|
||||
+2
-1
@@ -1,6 +1,7 @@
|
||||
import strawberry
|
||||
|
||||
from main.api.mutations.shop import ShopMutations
|
||||
from main.api.mutations.users import UsersMutations
|
||||
from main.api.queries.inventory import InventoryQueries
|
||||
from main.api.queries.shop import ShopQueries
|
||||
from main.api.queries.users import UsersQueries
|
||||
@@ -12,7 +13,7 @@ class Query(InventoryQueries, ShopQueries, UsersQueries):
|
||||
|
||||
|
||||
@strawberry.type
|
||||
class Mutation(ShopMutations):
|
||||
class Mutation(ShopMutations, UsersMutations):
|
||||
pass
|
||||
|
||||
|
||||
|
||||
+1
-24
@@ -1,29 +1,6 @@
|
||||
from django import forms
|
||||
from django.contrib.auth.models import User
|
||||
|
||||
from main.models import InventoryTransaction, Product, UserProfile
|
||||
from main.utils import format_username
|
||||
|
||||
|
||||
class SimpleCreateUserForm(forms.Form):
|
||||
first_name = forms.CharField(required=True, label="Fornavn")
|
||||
last_name = forms.CharField(required=True, label="Etternavn")
|
||||
email = forms.EmailField(required=True, label="E-post")
|
||||
|
||||
def save(self, commit=True):
|
||||
username = format_username(self.cleaned_data["first_name"], self.cleaned_data["last_name"])
|
||||
user = User.objects.create_user(username, email=self.cleaned_data["email"])
|
||||
user.first_name = self.cleaned_data["first_name"]
|
||||
user.last_name = self.cleaned_data["last_name"]
|
||||
|
||||
profile = UserProfile.objects.create(user=user)
|
||||
profile.image = self._get_facebook_url()
|
||||
|
||||
if commit:
|
||||
user.save()
|
||||
profile.save()
|
||||
|
||||
return user
|
||||
from main.models import InventoryTransaction, Product
|
||||
|
||||
|
||||
class InventoryTransactionForm(forms.ModelForm):
|
||||
|
||||
@@ -1,18 +1,11 @@
|
||||
from django.contrib.staticfiles.views import serve
|
||||
from django.urls import re_path
|
||||
|
||||
from main.views.reports import inventory, inventory_add, report
|
||||
from main.views.users import create_user
|
||||
|
||||
urlpatterns = [
|
||||
# TODO: migrate to SPA
|
||||
# Users
|
||||
re_path(r"^user/create/$", create_user, name="create-user"),
|
||||
# Reports
|
||||
re_path(r"^inventory/$", inventory, name="inventory"),
|
||||
re_path(r"^inventory/add/$", inventory_add, name="inventory-add"),
|
||||
re_path(r"^report$", report, name="report"),
|
||||
]
|
||||
|
||||
# Root level service-worker.js
|
||||
urlpatterns += [re_path(r"^service-worker\.js$", serve, kwargs={"path": "dist/service-worker.js"})]
|
||||
@@ -1,21 +0,0 @@
|
||||
from django.contrib import messages
|
||||
from django.shortcuts import redirect, render
|
||||
|
||||
from main.forms import SimpleCreateUserForm
|
||||
|
||||
|
||||
def create_user(request):
|
||||
if request.method == "POST":
|
||||
form = SimpleCreateUserForm(data=request.POST)
|
||||
if form.is_valid():
|
||||
user = form.save()
|
||||
messages.success(request, f"Hurra! {user.first_name}{user.last_name} er lagt til")
|
||||
return redirect("create-user")
|
||||
|
||||
else:
|
||||
messages.error(request, "Feil med skjemaet, se under.")
|
||||
form = SimpleCreateUserForm(data=request.POST)
|
||||
else:
|
||||
form = SimpleCreateUserForm()
|
||||
|
||||
return render(request, "registration/create_user.html", {"form": form})
|
||||
Reference in new issue
Block a user