Merge remote-tracking branch 'origin/dev' into dev

remotes/origin/hasaccess
Vitaly Baev 8 years ago
commit 2adae89b86
  1. 34
      apps/course/templates/course/_items.html
  2. 18
      apps/user/admin.py
  3. 3
      apps/user/apps.py
  4. 53
      apps/user/migrations/0002_auto_20180129_0537.py
  5. 59
      apps/user/migrations/0003_auto_20180129_0624.py
  6. 19
      apps/user/models.py
  7. 3
      project/templates/lilcity/index.html
  8. 2
      project/urls.py

@ -1,26 +1,36 @@
{% load static %}
<div class="courses__item" data-course data-course-id={{ course.id }} data-likes-count={{ course.likes.count }}><a class="courses__preview" href="#"><img class="courses__pic" src="{{ course.cover.url }}"/>
<div class="courses__view">Подробнее</div>
{% if course.is_featured %}
<div class="courses__item" data-course data-course-id={{ course.id }} data-likes-count={{ course.likes.count }} {% if course.is_deferred_start %}data-future-course data-future-course-time={{ course.deferred_start_at.timestamp }}{% endif %}>
<a class="courses__preview" href="#">
<img class="courses__pic" src="{{ course.cover.url }}" />
<div class="courses__view">Подробнее</div>
{% if course.is_featured %}
<div class="courses__label courses__label_fav"></div>
{% endif %}
{% if course.is_deferred_start %}
{% endif %} {% if course.is_deferred_start %}
<div class="courses__soon">
<div class="courses__left">До запуска курса осталось:</div>
<div class="courses__time">{{ course.deferred_start_at_humanize }}</div>
<div class="courses__time">{{ course.deferred_start_at.timestamp }}</div>
</div>
<div class="courses__label courses__label_clock"></div>
{% endif %}
</a>
<div class="courses__details"><a class="courses__theme theme {{ theme_color }}" href="#">{{ course.category | upper }}</a>
{% if not course.is_free %}<div class="courses__price">{{ course.price|floatformat:"-2" }}$</div>{% endif %}
{% endif %}
</a>
<div class="courses__details">
<a class="courses__theme theme {{ theme_color }}" href="#">{{ course.category | upper }}</a>
{% if not course.is_free %}
<div class="courses__price">{{ course.price|floatformat:"-2" }}$</div>{% endif %}
</div>
<a class="courses__title" href="#">{{ course.title }}</a>
<div class="courses__content">{{ course.short_description }}
</div>
<div class="courses__user user">
<div class="user__ava ava"><img class="ava__pic" src={% static "img/user.jpg" %}/></div>
{% if course.author.photo %}
<div class="user__ava ava">
<img class="ava__pic" src={{ course.author.photo.url }}/>
</div>
{% else %}
<div class="user__ava ava">
<img class="ava__pic" src={% static "img/user.jpg" %}/>
</div>
{% endif %}
<div class="user__info">
<div class="user__name">{{ course.author.first_name }} {{ course.author.last_name }}</div>
<div class="user__meta">

@ -1 +1,19 @@
from django.contrib import admin
from django.contrib.auth import get_user_model
from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
from django.utils.translation import gettext_lazy as _
User = get_user_model()
@admin.register(User)
class UserAdmin(BaseUserAdmin):
fieldsets = (
(None, {'fields': ('username', 'password')}),
(_('Personal info'), {'fields': ('first_name', 'last_name', 'email', 'gender', 'about', 'photo')}),
('Facebook Auth data', {'fields': ('fb_id', 'fb_data', 'is_email_proved')}),
(_('Permissions'), {'fields': ('role', 'is_active', 'is_staff', 'is_superuser',
'groups', 'user_permissions')}),
(_('Important dates'), {'fields': ('last_login', 'date_joined')}),
('Social urls', {'fields': ('instagram', 'facebook', 'twitter', 'pinterest', 'youtube', 'vkontakte', )}),
)

@ -3,4 +3,5 @@ from django.apps import AppConfig
class UserConfig(AppConfig):
name = 'apps.user'
label = 'lilcity_user'
label = 'apps.user'
verbose_name = 'Пользователи'

@ -0,0 +1,53 @@
# Generated by Django 2.0.1 on 2018-01-29 05:37
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('user', '0001_initial'),
]
operations = [
migrations.AddField(
model_name='user',
name='photo',
field=models.ImageField(blank=True, null=True, upload_to='users', verbose_name='Фото'),
),
migrations.AlterField(
model_name='user',
name='about',
field=models.CharField(default='', max_length=1000, verbose_name='О себе'),
),
migrations.AlterField(
model_name='user',
name='city',
field=models.CharField(default='', max_length=85, verbose_name='Город'),
),
migrations.AlterField(
model_name='user',
name='country',
field=models.CharField(default='', max_length=50, verbose_name='Страна'),
),
migrations.AlterField(
model_name='user',
name='gender',
field=models.CharField(choices=[('n', 'не указан'), ('m', 'Мужчина'), ('f', 'Женщина')], max_length=1, verbose_name='Пол'),
),
migrations.AlterField(
model_name='user',
name='is_email_proved',
field=models.BooleanField(default=False, verbose_name='Верифицирован по email'),
),
migrations.AlterField(
model_name='user',
name='role',
field=models.PositiveSmallIntegerField(choices=[(0, 'пользователь'), (1, 'автор'), (2, 'администратор')], default=0, verbose_name='Роль'),
),
migrations.AlterField(
model_name='user',
name='vkontakte',
field=models.URLField(default='', verbose_name='ВКонтакте'),
),
]

@ -0,0 +1,59 @@
# Generated by Django 2.0.1 on 2018-01-29 06:24
import django.contrib.postgres.fields.jsonb
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('user', '0002_auto_20180129_0537'),
]
operations = [
migrations.AlterField(
model_name='user',
name='about',
field=models.CharField(blank=True, default='', max_length=1000, verbose_name='О себе'),
),
migrations.AlterField(
model_name='user',
name='facebook',
field=models.URLField(blank=True, default='', null=True),
),
migrations.AlterField(
model_name='user',
name='fb_data',
field=django.contrib.postgres.fields.jsonb.JSONField(blank=True, default={}, null=True),
),
migrations.AlterField(
model_name='user',
name='gender',
field=models.CharField(choices=[('n', 'не указан'), ('m', 'Мужчина'), ('f', 'Женщина')], default='n', max_length=1, verbose_name='Пол'),
),
migrations.AlterField(
model_name='user',
name='instagram',
field=models.URLField(blank=True, default='', null=True),
),
migrations.AlterField(
model_name='user',
name='pinterest',
field=models.URLField(blank=True, default='', null=True),
),
migrations.AlterField(
model_name='user',
name='twitter',
field=models.URLField(blank=True, default='', null=True),
),
migrations.AlterField(
model_name='user',
name='vkontakte',
field=models.URLField(blank=True, default='', null=True, verbose_name='ВКонтакте'),
),
migrations.AlterField(
model_name='user',
name='youtube',
field=models.URLField(blank=True, default='', null=True),
),
]

@ -17,19 +17,20 @@ class User(AbstractUser):
)
email = models.EmailField(_('email address'), unique=True)
role = models.PositiveSmallIntegerField('Роль', default=0, choices=ROLE_CHOICES)
gender = models.CharField('Пол', max_length=1, choices=GENDER_CHOICES)
gender = models.CharField('Пол', max_length=1, default='n', choices=GENDER_CHOICES)
country = models.CharField('Страна', max_length=50, default='')
city = models.CharField('Город', max_length=85, default='')
about = models.CharField('О себе', max_length=1000, default='')
instagram = models.URLField(default='')
facebook = models.URLField(default='')
twitter = models.URLField(default='')
pinterest = models.URLField(default='')
youtube = models.URLField(default='')
vkontakte = models.URLField('ВКонтакте', default='')
about = models.CharField('О себе', max_length=1000, default='', blank=True)
instagram = models.URLField(default='', null=True, blank=True)
facebook = models.URLField(default='', null=True, blank=True)
twitter = models.URLField(default='', null=True, blank=True)
pinterest = models.URLField(default='', null=True, blank=True)
youtube = models.URLField(default='', null=True, blank=True)
vkontakte = models.URLField('ВКонтакте', default='', null=True, blank=True)
fb_id = models.PositiveIntegerField(null=True, blank=True, unique=True)
fb_data = pgfields.JSONField(default={})
fb_data = pgfields.JSONField(default={}, null=True, blank=True)
is_email_proved = models.BooleanField('Верифицирован по email', default=False)
photo = models.ImageField('Фото', null=True, blank=True, upload_to='users')
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['username']

@ -46,6 +46,9 @@
}
</script>
<script>
LIL_SERVER_TIME = "{% now 'U' %}"
</script>
</head>
<body>

@ -24,7 +24,7 @@ urlpatterns = [
path('admin/', admin.site.urls),
path('auth/', include(('apps.auth.urls', 'lilcity'))),
path('courses/', CoursesView.as_view(), name='courses'),
path('courses/<int:course_id>/like/', likes, name='likes'),
path('courses/<int:course_id>/like', likes, name='likes'),
path('', TemplateView.as_view(template_name="templates/lilcity/main.html"), name='index'),
]

Loading…
Cancel
Save