Skip to content

Commit

Permalink
add login by vk and some db edit
Browse files Browse the repository at this point in the history
  • Loading branch information
SeninoSeno committed Dec 18, 2023
1 parent e3edd53 commit cc1425c
Show file tree
Hide file tree
Showing 9 changed files with 55 additions and 4 deletions.
13 changes: 13 additions & 0 deletions mysite/mysite/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,20 @@
'django.contrib.staticfiles',
'pokemoon',
'rest_framework',
'social_django',
]

SOCIAL_AUTH_POSTGRES_JSONFIELD = True

AUTHENTICATION_BACKENDS = (
'social_core.backends.vk.VKOAuth2',
'django.contrib.auth.backends.ModelBackend',
)

SOCIAL_AUTH_VK_OAUTH2_KEY = os.environ.get("VK_APP_ID")
SOCIAL_AUTH_VK_OAUTH2_SECRET = os.environ.get("VK_API_SECRET")
SOCIAL_AUTH_VK_OAUTH2_SCOPE = ['email']

REST_FRAMEWORK = {
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.LimitOffsetPagination',
'PAGE_SIZE': 25
Expand Down Expand Up @@ -71,6 +83,7 @@
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'social_django.context_processors.backends',
],
},
},
Expand Down
26 changes: 26 additions & 0 deletions mysite/pokemoon/migrations/0002_feedback_user_fight_user.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Generated by Django 4.2.8 on 2023-12-18 21:49

from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('pokemoon', '0001_initial'),
]

operations = [
migrations.AddField(
model_name='feedback',
name='user',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
),
migrations.AddField(
model_name='fight',
name='user',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
),
]
3 changes: 2 additions & 1 deletion mysite/pokemoon/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ class Fight(models.Model):
winner_id = models.IntegerField()
round_count = models.IntegerField()
created_at = models.DateTimeField(auto_now_add=True)
user = models.ForeignKey('auth.User', on_delete=models.CASCADE, null=True)

class Pokemon(models.Model):
pokid = models.IntegerField()
Expand All @@ -20,7 +21,7 @@ class Feedback(models.Model):
rating = models.IntegerField()
text = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)

user = models.ForeignKey('auth.User', on_delete=models.CASCADE, null=True)
pokemon = models.ForeignKey("Pokemon", on_delete=models.CASCADE)

def __str__(self):
Expand Down
2 changes: 0 additions & 2 deletions mysite/pokemoon/templates/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,6 @@ <h1><a href=".">Pokemoon</a>: интернет-каталог покемонов
<button>Выйти</button>
</a>
{% endif %}

<p>Hi hello</p>
</header>

<input id="input" type="text">
Expand Down
3 changes: 3 additions & 0 deletions mysite/pokemoon/templates/pokemon.html
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,9 @@ <h3>Отзывы и оценки</h3>
{% if feedbacks %}
{% for feedback in feedbacks %}
<div class="feedback">
{% if feedback.user %}
<p>Автор: {{ feedback.user }}</p>
{% endif %}
<p>Рейтинг: {{ feedback.rating }}</p>
{% if feedback.text %}
<p>Текст: {{ feedback.text }}</p>
Expand Down
3 changes: 3 additions & 0 deletions mysite/pokemoon/templates/registration/login.html
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@
<td>{{ form.password }}</td>
</tr>
</table>
<a href="{% url "social:begin" "vk-oauth2" %}">
Login by VK
</a>

<input type="submit" value="Войти">
<a href="{% url 'register' %}">
Expand Down
1 change: 1 addition & 0 deletions mysite/pokemoon/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
path("accounts/login/prove/", views.login_prove_view, name="login_prove"),
path("accounts/logout", views.logout_view, name="logout"),
path("accounts/registration", views.registration_view, name="register"),
path('', include('social_django.urls')),
# API ↓
path("pokemon/list", views.PokemonList.as_view()),
path("pokemon/<int:id>", views.PokemonInfo.as_view()),
Expand Down
5 changes: 5 additions & 0 deletions mysite/pokemoon/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ def pokemon(request, name):
feedbacks.append({
'text': feedback.text,
'rating': feedback.rating,
'user': feedback.user,
})

context = {
Expand Down Expand Up @@ -103,6 +104,8 @@ def result(request, name):
fight.second_pokemon_hp = data['pc_hp']
fight.round_count = data['round_count']
fight.winner_id = data['winner_id']
if request.user.id:
fight.user = request.user
fight.save()

if (data['email']):
Expand Down Expand Up @@ -174,6 +177,8 @@ def feedback(request, name):
feedback.rating = rating
feedback.text = text
feedback.pokemon = pokemon
if request.user.id:
feedback.user = request.user
feedback.save()
return HttpResponseRedirect(f"/{name}/info")

Expand Down
3 changes: 2 additions & 1 deletion mysite/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,5 @@ gunicorn
djangorestframework
selenium
six
argon2-cffi
argon2-cffi
social-auth-app-django

0 comments on commit cc1425c

Please sign in to comment.