diff options
Diffstat (limited to 'apps/accounts')
-rw-r--r-- | apps/accounts/forms.py | 11 | ||||
-rw-r--r-- | apps/accounts/migrations/0002_auto_20190108_2115.py | 35 | ||||
-rw-r--r-- | apps/accounts/models.py | 12 | ||||
-rw-r--r-- | apps/accounts/urls.py | 6 | ||||
-rw-r--r-- | apps/accounts/views.py | 2 |
5 files changed, 60 insertions, 6 deletions
diff --git a/apps/accounts/forms.py b/apps/accounts/forms.py index d53e754..2da08cb 100644 --- a/apps/accounts/forms.py +++ b/apps/accounts/forms.py @@ -1,4 +1,5 @@ from django import forms +from django.utils.translation import ugettext_lazy as _ from django_registration.forms import RegistrationForm from .models import User, UserProfile @@ -12,7 +13,15 @@ class UserForm(RegistrationForm): class ProfileForm(forms.ModelForm): class Meta: model = UserProfile - fields = '__all__' + fields = ['bio', 'photo', 'website'] + labels = { + "photo": _("Profile photo"), + "bio": _("Bio. A little about you. links are fine, line breaks are not. Keep it short and sweet, 350 characters max"), + "website": _("If you have a personal website, plug it in here."), + } + widgets = { + 'bio': forms.Textarea(attrs={'cols': 104, 'rows': 10, 'class': 'textarea-rounded'}), + } def __init__(self, *args, **kwargs): self.user = kwargs.pop("user", None) diff --git a/apps/accounts/migrations/0002_auto_20190108_2115.py b/apps/accounts/migrations/0002_auto_20190108_2115.py new file mode 100644 index 0000000..1ebb280 --- /dev/null +++ b/apps/accounts/migrations/0002_auto_20190108_2115.py @@ -0,0 +1,35 @@ +# Generated by Django 2.1.2 on 2019-01-09 03:15 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('accounts', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='userprofile', + name='bio', + field=models.CharField(blank=True, default='', max_length=350), + ), + migrations.AlterField( + model_name='userprofile', + name='location', + field=models.CharField(blank=True, default='', max_length=300), + ), + migrations.AlterField( + model_name='userprofile', + name='user', + field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='profile', to=settings.AUTH_USER_MODEL), + ), + migrations.AlterField( + model_name='userprofile', + name='website', + field=models.CharField(blank=True, default='', max_length=300), + ), + ] diff --git a/apps/accounts/models.py b/apps/accounts/models.py index 1b62ffd..feb20bf 100644 --- a/apps/accounts/models.py +++ b/apps/accounts/models.py @@ -1,4 +1,5 @@ from django.db import models +from django.urls import reverse from django.contrib.auth.models import AbstractUser from django.utils.functional import cached_property @@ -15,15 +16,18 @@ class User(AbstractUser): class UserProfile(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='profile') photo = models.ImageField(upload_to='profile', null=True, blank=True) - website = models.CharField(max_length=300, null=True, blank=True, default='') - location = models.CharField(max_length=300, null=True, blank=True, default='') - bio = models.TextField(null=True, blank=True, default='') + website = models.CharField(max_length=300, blank=True, default='') + location = models.CharField(max_length=300, blank=True, default='') + bio = models.CharField(max_length=350, blank=True, default='') + #default_note_folder = models.ForeignKey('notes.Notebook', null=True, on_delete=models.SET_NULL) #default_note_public = models.BooleanField(default=False) - #default_note_folder = models.ForeignKey('notes.Folder', null=True, on_delete=models.SET_NULL) def __str__(self): return self.user.username + def get_absolute_url(self): + return reverse("accounts:settings") + @cached_property def get_notebook_list(self): return Notebook.objects.filter(owner=self.user).select_related().annotate(note_count=models.Count('note'))[:8] diff --git a/apps/accounts/urls.py b/apps/accounts/urls.py index d9ee327..5cad311 100644 --- a/apps/accounts/urls.py +++ b/apps/accounts/urls.py @@ -2,9 +2,15 @@ from django.urls import path from . import views +app_name = "accounts" urlpatterns = [ path( + r'change-profile/', + views.ProfileView.as_view(), + name="change-profile" + ), + path( r'', views.SettingsListView.as_view(), name="settings" diff --git a/apps/accounts/views.py b/apps/accounts/views.py index d463522..75bb933 100644 --- a/apps/accounts/views.py +++ b/apps/accounts/views.py @@ -18,7 +18,7 @@ class UpdateViewWithUser(UpdateView): class ProfileView(UpdateViewWithUser): model = UserProfile form_class = ProfileForm - template_name = "accounts/profile.html" + template_name = "accounts/change-settings.html" def get_object(self): return self.request.user.profile |