Skip to content

Commit bbdf08e

Browse files
friends join and create form
1 parent 4a23373 commit bbdf08e

File tree

13 files changed

+156
-0
lines changed

13 files changed

+156
-0
lines changed

app/settings.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@
5656
'user',
5757
'application',
5858
'review',
59+
'friends',
5960
]
6061

6162
MIDDLEWARE = [

app/urls.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
path('auth/', include('user.urls')),
2626
path('application/', include('application.urls')),
2727
path('review/', include('review.urls')),
28+
path('friends/', include('friends.urls')),
2829
]
2930

3031
# JWT fake login on DEBUG for development purposes

friends/__init__.py

Whitespace-only changes.

friends/admin.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
from django.contrib import admin
2+
3+
from friends.models import FriendsCode
4+
5+
admin.site.register(FriendsCode)

friends/apps.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
from django.apps import AppConfig
2+
3+
4+
class FriendsConfig(AppConfig):
5+
default_auto_field = 'django.db.models.BigAutoField'
6+
name = 'friends'

friends/forms.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
from django import forms
2+
from django.conf import settings
3+
from django.utils.translation import gettext_lazy as _
4+
5+
from app.mixins import BootstrapFormMixin
6+
7+
8+
class FriendsForm(BootstrapFormMixin, forms.Form):
9+
bootstrap_field_info = {'': {'fields': [{'name': 'friends_code', 'space': 12}, ]}}
10+
11+
friends_code = forms.CharField(label=_('Friends\' code'), max_length=getattr(settings, "FRIEND_CODE_LENGTH", 13),
12+
required=False)

friends/migrations/0001_initial.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Generated by Django 4.0.6 on 2022-08-16 16:33
2+
3+
from django.conf import settings
4+
from django.db import migrations, models
5+
import django.db.models.deletion
6+
import friends.models
7+
8+
9+
class Migration(migrations.Migration):
10+
11+
initial = True
12+
13+
dependencies = [
14+
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
15+
]
16+
17+
operations = [
18+
migrations.CreateModel(
19+
name='FriendCode',
20+
fields=[
21+
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
22+
('code', models.CharField(default=friends.models.get_random_string, max_length=13)),
23+
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
24+
],
25+
),
26+
]
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Generated by Django 4.0.6 on 2022-08-16 16:43
2+
3+
from django.conf import settings
4+
from django.db import migrations
5+
6+
7+
class Migration(migrations.Migration):
8+
9+
dependencies = [
10+
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
11+
('friends', '0001_initial'),
12+
]
13+
14+
operations = [
15+
migrations.RenameModel(
16+
old_name='FriendCode',
17+
new_name='FriendsCode',
18+
),
19+
]

friends/migrations/__init__.py

Whitespace-only changes.

friends/models.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import random
2+
import string
3+
4+
from django.conf import settings
5+
from django.db import models
6+
7+
8+
def get_random_string():
9+
# With combination of lower, upper case and numbers
10+
characters = string.ascii_letters + string.digits
11+
code_length = getattr(settings, "FRIEND_CODE_LENGTH", 13)
12+
return ''.join(random.choice(characters) for _ in range(code_length))
13+
14+
15+
class FriendsCode(models.Model):
16+
code = models.CharField(default=get_random_string, max_length=getattr(settings, "FRIEND_CODE_LENGTH", 13))
17+
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
18+
19+

0 commit comments

Comments
 (0)