LIL-623 добавить пробный урок у преподавателя

remotes/origin/hotfix/LIL-661
gzbender 8 years ago
parent 191d2886cd
commit 89a60f0046
  1. 2
      apps/user/forms.py
  2. 18
      apps/user/migrations/0023_user_trial_lesson.py
  3. 1
      apps/user/models.py
  4. 13
      apps/user/templates/user/profile-settings.html
  5. 5
      apps/user/views.py
  6. 17
      project/templates/blocks/teachers.html
  7. 7
      web/src/sass/_common.sass

@ -18,6 +18,7 @@ class UserEditForm(forms.ModelForm):
# gender = forms.ChoiceField(choices=User.GENDER_CHOICES, required=False)
gender = forms.CharField(required=False)
# about = forms.CharField()
trial_lesson = forms.URLField(required=False)
old_password = forms.CharField(required=False)
new_password1 = forms.CharField(required=False)
new_password2 = forms.CharField(required=False)
@ -41,6 +42,7 @@ class UserEditForm(forms.ModelForm):
'birthday',
'gender',
'about',
'trial_lesson',
'old_password',
'new_password1',
'new_password2',

@ -0,0 +1,18 @@
# Generated by Django 2.0.6 on 2018-08-22 12:11
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('user', '0022_user_instagram_hashtag'),
]
operations = [
migrations.AddField(
model_name='user',
name='trial_lesson',
field=models.URLField(blank=True, default='', null=True),
),
]

@ -75,6 +75,7 @@ class User(AbstractUser):
)
photo = models.ImageField('Фото', null=True, blank=True, upload_to='users')
show_in_mainpage = models.BooleanField('Показывать на главной странице', default=False)
trial_lesson = models.URLField(default='', null=True, blank=True)
objects = UserManager()

@ -150,7 +150,18 @@
{% for error in form.about.errors %}
<div class="field__error">{{ error }}</div>
{% endfor %}
</div>
</div>
{% if is_teacher %}
<div class="form__field field{% if form.trial_lesson.errors %} error{% endif %}">
<div class="field__label">Пробный урок</div>
<div class="field__wrap">
<input name='trial_lesson' class="field__input" type="url" value="{{ user.trial_lesson }}">
</div>
{% for error in form.trial_lesson.errors %}
<div class="field__error">{{ error }}</div>
{% endfor %}
</div>
{% endif %}
</div>
<div class="form__group">
<div class="form__title">Пароль</div>

@ -210,6 +210,11 @@ class ProfileEditView(UpdateView):
self.object = self.get_object()
return super().dispatch(request, *args, **kwargs)
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['is_teacher'] = self.object.role == User.TEACHER_ROLE
return context
def post(self, request, *args, **kwargs):
# it's magic *-*-*-*-*
if 'photo' in request.FILES:

@ -17,10 +17,15 @@
</div>
<div class="teachers__wrap">
<div class="teachers__title">
<a href="{% url 'user' teacher.id %}">{{ teacher.get_full_name }}</a>{% if teacher.instagram_hashtag %},
<a href='https://www.instagram.com/explore/tags/{{ teacher.instagram_hashtag }}/' target="_blank">
{{ teacher.instagram_hashtag }}
</a>
<div class="teachers__title-name">
<a href="{% url 'user' teacher.id %}">{{ teacher.get_full_name }}</a>{% if teacher.instagram_hashtag %},
<a href='https://www.instagram.com/explore/tags/{{ teacher.instagram_hashtag }}/' target="_blank">
{{ teacher.instagram_hashtag }}
</a>
{% endif %}
</div>
{% if teacher.trial_lesson %}
<a target="_blank" href="{{ teacher.trial_lesson }}" class="btn btn_light">ПРОБНЫЙ УРОК</a>
{% endif %}
</div>
<div class="teachers__social">
@ -30,13 +35,13 @@
<use xlink:href="{% static 'img/sprite.svg' %}#icon-share-facebook"></use>
</svg>
</a>
{% endif %} {% if teacher.instagram %}
{% endif %} {# if teacher.instagram #}
<a class="social__item" href="{{ teacher.instagram }}" target="_blank">
<svg class="icon icon-share-instagram">
<use xlink:href="{% static 'img/sprite.svg' %}#icon-share-instagram"></use>
</svg>
</a>
{% endif %} {% if teacher.twitter %}
{# endif #} {% if teacher.twitter %}
<a class="social__item" href="{{ teacher.twitter }}" target="_blank">
<svg class="icon icon-share-twitter">
<use xlink:href="{% static 'img/sprite.svg' %}#icon-share-twitter"></use>

@ -1519,12 +1519,17 @@ a.grey-link
flex: 0 0 95px
&__title
margin-bottom: 5px
display: flex
+fb
font-size: 20px
letter-spacing: 2px
+t
font-size: 12px
letter-spacing: 2px
+m
display: block
&-name
flex: 1
&__social
.social__item
margin-right: 3px
@ -1533,6 +1538,8 @@ a.grey-link
&__content
font-size: 16px
line-height: (22/16)
&__wrap
flex: 1
.toggle
font-size: 14px

Loading…
Cancel
Save