diff --git a/codeeve/settings.py b/codeeve/settings.py index 2f4e0ca..bf2cb14 100644 --- a/codeeve/settings.py +++ b/codeeve/settings.py @@ -126,6 +126,7 @@ SITE_ID = 1 ACCOUNT_LOGIN_REDIRECT_URL = '/projects' ACCOUNT_LOGOUT_ON_GET = True +LOGIN_URL = '/accounts/github/login/?process=login' # Static files (CSS, JavaScript, Images) diff --git a/projects/templates/projects/project_list.html b/projects/templates/projects/project_list.html index 922f50f..e141f9a 100644 --- a/projects/templates/projects/project_list.html +++ b/projects/templates/projects/project_list.html @@ -7,7 +7,9 @@
+ {% if view.request.user.is_authenticated %} Create a project + {% endif %} {% for project in object_list %}
diff --git a/projects/views.py b/projects/views.py index 943c760..72074f2 100644 --- a/projects/views.py +++ b/projects/views.py @@ -1,3 +1,5 @@ +from django.contrib.auth.decorators import login_required +from django.utils.decorators import method_decorator from django.views.generic.list import ListView from django.views.generic.detail import DetailView from django.views.generic.edit import CreateView, UpdateView @@ -8,10 +10,17 @@ class ProjectCreate(CreateView): model = Project - fields = ['title', 'description', 'max_members', 'difficulty', - 'image', 'participants', 'coach', 'owner'] + fields = ['title', 'description', 'max_members', 'difficulty', 'image'] success_url = reverse_lazy('project_list') + @method_decorator(login_required) + def dispatch(self, *args, **kwargs): + return super(ProjectCreate, self).dispatch(*args, **kwargs) + + def form_valid(self, form): + form.instance.owner = self.request.user + return super(ProjectCreate, self).form_valid(form) + class ProjectUpdate(UpdateView): model = Project