diff --git a/.gitignore b/.gitignore index ffb3de3832416b870bf800ac19d59da9db49bf56..1b67e5ef5038d2f89454c811f37ae3645665fed4 100644 --- a/.gitignore +++ b/.gitignore @@ -110,4 +110,10 @@ environment.ps1 environment.bat #PyCharm -.idea/ \ No newline at end of file +.idea/ + +#Migrations +**/migrations/ + +#media +/media/* \ No newline at end of file diff --git a/src/account/models.py b/src/account/models.py index 83292a752d3eb42fc8334b1ecb3b4937eb6fe329..21bfbfac2c7a73b0b4e0b3d3c5fee6734dd46c45 100644 --- a/src/account/models.py +++ b/src/account/models.py @@ -46,7 +46,7 @@ class Profile(models.Model): groups = models.ManyToManyField( GroupChoice, related_name='profiles', blank=True) role = models.CharField(max_length=10, choices=ROLES, default='Applicant') - + @property def events_visited(self): return self.events_visitor.all().count() @@ -65,4 +65,5 @@ class Profile(models.Model): class Deadline(SingletonModel): deadline = models.DateTimeField(null=True) - text = models.CharField(max_length=50, blank=True, default='') + messageBefore = models.TextField(blank=True, default='') + messageAfter = models.TextField(blank=True, default='') diff --git a/src/account/views.py b/src/account/views.py index 04cb6d6b382c9358f2bedcd8853800602c1eb78a..9321defcd2c0031f9746656a2fdd5269e08ebc90 100644 --- a/src/account/views.py +++ b/src/account/views.py @@ -37,5 +37,6 @@ class ProfileViewSet(viewsets.ModelViewSet): deadline = models.Deadline.get_solo() return Response({ 'deadline': deadline.deadline, - 'text': deadline.text + 'messageBefore': deadline.messageBefore, + 'messageAfter': deadline.messageAfter }) diff --git a/src/kszkepzes/settings/base.py b/src/kszkepzes/settings/base.py index d564e3dee8ad1ad214bc5863f4860746d92d5f6b..0e504cc5dd800885e1a7dc4be93fe4b379502209 100644 --- a/src/kszkepzes/settings/base.py +++ b/src/kszkepzes/settings/base.py @@ -48,6 +48,7 @@ INSTALLED_APPS = [ 'stats', 'news', 'document', + 'mentors', 'groups', 'drf_yasg', ] diff --git a/src/kszkepzes/urls.py b/src/kszkepzes/urls.py index 154ab83d88494a0ebff41d1c574e006ef6f51c70..36b2b6bb87de5468f80a403ffbacc6fd3cd84846 100644 --- a/src/kszkepzes/urls.py +++ b/src/kszkepzes/urls.py @@ -33,6 +33,7 @@ urlpatterns = [ url(r'^api/v1/', include('news.urls')), url(r'^api/v1/', include('document.urls')), url(r'^api/v1/', include('groups.urls')), + url(r'^api/v1/', include('mentors.urls')), url(r'^api/v1/logout/$', auth_views.LogoutView.as_view(), name='logout'), ] diff --git a/src/mentors/__init__.py b/src/mentors/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/mentors/admin.py b/src/mentors/admin.py new file mode 100644 index 0000000000000000000000000000000000000000..bacbf7e7188cfdcd9b02e7ebae4224e61e575e06 --- /dev/null +++ b/src/mentors/admin.py @@ -0,0 +1,5 @@ +from django.contrib import admin +from .models import Mentor + +admin.site.register(Mentor) +# Register your models here. diff --git a/src/mentors/apps.py b/src/mentors/apps.py new file mode 100644 index 0000000000000000000000000000000000000000..5649da659a30793fa15b89d01037e08c0fdb3275 --- /dev/null +++ b/src/mentors/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class MentorsConfig(AppConfig): + name = 'mentors' diff --git a/src/mentors/models.py b/src/mentors/models.py new file mode 100644 index 0000000000000000000000000000000000000000..75e6470415d71a2afe41fde5b6b6f1fe5a0d88c5 --- /dev/null +++ b/src/mentors/models.py @@ -0,0 +1,19 @@ +from django.db import models +from account.models import Profile +from common.middleware import CurrentUserMiddleware + + +class Mentor(models.Model): + mentor = models.ForeignKey( + Profile, + related_name="mentor", + on_delete=models.DO_NOTHING, + default=CurrentUserMiddleware.get_current_user_profile + ) + name = models.CharField(null=False, max_length=200) + text = models.TextField() + image = models.ImageField(upload_to='mentors/images/', null=True, blank=True) + email = models.EmailField() + + def __str__(self): + return self.name diff --git a/src/mentors/serializers.py b/src/mentors/serializers.py new file mode 100644 index 0000000000000000000000000000000000000000..c5ef6d7498b0e30b928edbbafd7b7936b228c3bf --- /dev/null +++ b/src/mentors/serializers.py @@ -0,0 +1,15 @@ +from mentors.models import Mentor +from rest_framework import serializers +from common.serializers import CurrentUserProfileDefault + + +class MentorSerializer(serializers.ModelSerializer): + mentor = serializers.SerializerMethodField() + + class Meta: + model = Mentor + read_only_fields = ('mentor', ) + fields = '__all__' + + def get_mentor(self, obj): + return obj.mentor.full_name diff --git a/src/mentors/tests.py b/src/mentors/tests.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/mentors/urls.py b/src/mentors/urls.py new file mode 100644 index 0000000000000000000000000000000000000000..f83af8146a4078ca216ed2f398099b8478ec1932 --- /dev/null +++ b/src/mentors/urls.py @@ -0,0 +1,8 @@ +from rest_framework import routers +from mentors import views + + +router = routers.DefaultRouter() +router.register(r'mentors', views.MentorssViewSet, base_name='mentors') + +urlpatterns = router.urls diff --git a/src/mentors/views.py b/src/mentors/views.py new file mode 100644 index 0000000000000000000000000000000000000000..f294867543eee37da0eeb0a4e12eed2a1adf829e --- /dev/null +++ b/src/mentors/views.py @@ -0,0 +1,10 @@ +from common.permissions import IsStaffOrStudent +from rest_framework import viewsets +from mentors.models import Mentor +from mentors.serializers import MentorSerializer + + +class MentorssViewSet(viewsets.ModelViewSet): + serializer_class = MentorSerializer + permission_classes = (IsStaffOrStudent,) + queryset = Mentor.objects.all().order_by('name')