Skip to content

Commit 7da5e5f

Browse files
committed
publications and events by_author view + member:index
1 parent 160eaa5 commit 7da5e5f

File tree

17 files changed

+329
-316
lines changed

17 files changed

+329
-316
lines changed

iTeam/events/urls.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# @Author: Adrien Chardon
44
# @Date: 2014-08-20 14:39:03
55
# @Last Modified by: Adrien Chardon
6-
# @Last Modified time: 2014-10-27 17:14:08
6+
# @Last Modified time: 2014-10-30 22:55:53
77

88
# This file is part of iTeam.org.
99
# Copyright (C) 2014 Adrien Chardon (Nodraak).
@@ -35,4 +35,5 @@
3535
url(r'^create/$', views.create, name='create'),
3636
url(r'^view/(?P<event_id>\d+)/(?P<event_slug>.+)/$', views.detail, name='detail'),
3737
url(r'^edit/(?P<event_id>\d+)/$', views.edit, name='edit'),
38+
url(r'^author/(?P<username>.+)$', views.by_author, name='by_author'),
3839
)

iTeam/events/views.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# @Author: Adrien Chardon
44
# @Date: 2014-08-21 18:57:25
55
# @Last Modified by: Adrien Chardon
6-
# @Last Modified time: 2014-10-27 17:53:48
6+
# @Last Modified time: 2014-10-30 23:13:30
77

88
# This file is part of iTeam.org.
99
# Copyright (C) 2014 Adrien Chardon (Nodraak).
@@ -31,10 +31,12 @@
3131
from django.core.urlresolvers import reverse
3232
from django.conf import settings
3333
from django.contrib.auth.decorators import login_required
34+
from django.contrib.auth.models import User
3435
from django.shortcuts import render, get_object_or_404, redirect
3536
from django.template.defaultfilters import slugify
3637
from django.utils import timezone
3738

39+
from iTeam.member.models import Profile
3840
from iTeam.events.models import Event
3941
from iTeam.events.forms import EventForm
4042

@@ -196,6 +198,28 @@ def detail(request, event_id, event_slug):
196198
raise PermissionDenied
197199

198200

201+
def by_author(request, username):
202+
user = get_object_or_404(User, username=username)
203+
profile = get_object_or_404(Profile, user=user)
204+
205+
profileRequest = None
206+
if request.user.is_authenticated():
207+
profileRequest = get_object_or_404(Profile, user=request.user)
208+
209+
events_all = Event.objects.all().filter(author=user).order_by('-date_start')
210+
events_list = events_all.filter(is_draft=False)
211+
events_drafts = events_all.filter(is_draft=True)
212+
213+
c = {
214+
'profile_detail': profile,
215+
'profile_request': profileRequest,
216+
'events_list': events_list,
217+
'events_draft_list': events_drafts,
218+
}
219+
220+
return render(request, 'events/by_author.html', c)
221+
222+
199223
@login_required
200224
def create(request):
201225
profile = request.user.profile # login_required

iTeam/member/urls.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# @Author: Adrien Chardon
44
# @Date: 2014-08-19 17:38:33
55
# @Last Modified by: Adrien Chardon
6-
# @Last Modified time: 2014-08-22 17:02:41
6+
# @Last Modified time: 2014-10-30 22:55:17
77

88
# This file is part of iTeam.org.
99
# Copyright (C) 2014 Adrien Chardon (Nodraak).
@@ -32,8 +32,6 @@
3232

3333
url(r'^voir/(?P<user_name>.+)/$', views.detail, name='detail'),
3434
url(r'^parametres/$', views.settings_view, name='settings_view'),
35-
url(r'^publications/$', views.publications, name='publications'),
36-
url(r'^events/$', views.events, name='events'),
3735

3836
url(r'^inscription/$', views.register_view, name='register_view'),
3937
url(r'^connexion/$', views.login_view, name='login_view'),

iTeam/member/views.py

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# @Author: Adrien Chardon
44
# @Date: 2014-08-20 18:26:44
55
# @Last Modified by: Adrien Chardon
6-
# @Last Modified time: 2014-09-02 15:20:34
6+
# @Last Modified time: 2014-10-30 22:14:22
77

88
# This file is part of iTeam.org.
99
# Copyright (C) 2014 Adrien Chardon (Nodraak).
@@ -86,20 +86,9 @@ def detail(request, user_name):
8686
if need_redirect:
8787
redirect(reverse('member:detail', args=[user_name]))
8888

89-
# template var
90-
publications_all = Publication.objects.all().order_by('-pub_date')
91-
publications_list = publications_all.filter(author=user, is_draft=False)
92-
publications_drafts = publications_all.filter(author=user, is_draft=True)
93-
94-
is_admin = request.user.is_authenticated() and request.user.profile.is_admin
95-
show_draft = (request.user == user) or is_admin
96-
9789
c = {
9890
'profile_detail': profile,
9991
'profile_request': profileRequest,
100-
'publications_list': publications_list,
101-
'publications_draft_list': publications_drafts,
102-
'show_draft': show_draft,
10392
}
10493

10594
return render(request, 'member/detail.html', c)

iTeam/publications/urls.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# @Author: Adrien Chardon
44
# @Date: 2014-07-10 11:43:53
55
# @Last Modified by: Adrien Chardon
6-
# @Last Modified time: 2014-10-27 16:57:15
6+
# @Last Modified time: 2014-10-30 22:06:14
77

88
# This file is part of iTeam.org.
99
# Copyright (C) 2014 Adrien Chardon (Nodraak).
@@ -32,4 +32,5 @@
3232
url(r'^create/$', views.create, name='create'),
3333
url(r'^view/(?P<publication_id>\d+)/(?P<publication_slug>.+)/$', views.detail, name='detail'),
3434
url(r'^edit/(?P<publication_id>\d+)/$', views.edit, name='edit'),
35+
url(r'^author/(?P<username>.+)$', views.by_author, name='by_author'),
3536
)

iTeam/publications/views.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# @Author: Adrien Chardon
44
# @Date: 2014-08-21 18:22:36
55
# @Last Modified by: Adrien Chardon
6-
# @Last Modified time: 2014-10-28 19:53:32
6+
# @Last Modified time: 2014-10-30 22:34:41
77

88
# This file is part of iTeam.org.
99
# Copyright (C) 2014 Adrien Chardon (Nodraak).
@@ -29,10 +29,12 @@
2929
from django.core.urlresolvers import reverse
3030
from django.conf import settings
3131
from django.contrib.auth.decorators import login_required
32+
from django.contrib.auth.models import User
3233
from django.shortcuts import render, get_object_or_404, redirect
3334
from django.template.defaultfilters import slugify
3435
from django.utils import timezone
3536

37+
from iTeam.member.models import Profile
3638
from iTeam.publications.models import Publication
3739
from iTeam.publications.forms import PublicationForm
3840

@@ -101,6 +103,28 @@ def detail(request, publication_id, publication_slug):
101103
raise PermissionDenied
102104

103105

106+
def by_author(request, username):
107+
user = get_object_or_404(User, username=username)
108+
profile = get_object_or_404(Profile, user=user)
109+
110+
profileRequest = None
111+
if request.user.is_authenticated():
112+
profileRequest = get_object_or_404(Profile, user=request.user)
113+
114+
publications_all = Publication.objects.all().filter(author=user).order_by('-pub_date')
115+
publications_list = publications_all.filter(is_draft=False)
116+
publications_drafts = publications_all.filter(is_draft=True)
117+
118+
c = {
119+
'profile_detail': profile,
120+
'profile_request': profileRequest,
121+
'publications_list': publications_list,
122+
'publications_draft_list': publications_drafts,
123+
}
124+
125+
return render(request, 'publications/by_author.html', c)
126+
127+
104128
@login_required
105129
def create(request):
106130
profile = request.user.profile # login_required

iTeam/settings.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# @Author: Adrien Chardon
44
# @Date: 2014-09-02 12:01:06
55
# @Last Modified by: Adrien Chardon
6-
# @Last Modified time: 2014-10-29 13:09:07
6+
# @Last Modified time: 2014-10-30 22:10:59
77

88
# This file is part of iTeam.org.
99
# Copyright (C) 2014 Adrien Chardon (Nodraak).
@@ -204,7 +204,7 @@
204204

205205
NB_PUBLICATIONS_PER_PAGE = 10
206206
NB_EVENTS_PER_PAGE = 10
207-
NB_MEMBERS_PER_PAGE = 10
207+
NB_MEMBERS_PER_PAGE = 8*10
208208

209209
SIZE_MAX_IMG = 5*1024*1024 # 5 Mo
210210
SIZE_MAX_FILE = 50*1024*1024 # 50 Mo

templates/events/by_author.html

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
{% extends "events/base.html" %}
2+
3+
{% block title_page %}
4+
{% if user.is_authenticated and profile_detail.user == user %}
5+
Mes événements &#183;
6+
{% else %}
7+
Événements de {{ profile_detail.user.get_username }} &#183;
8+
{% endif %}
9+
{% endblock %}
10+
11+
{% block breadcrumb_page %}
12+
<li class="current"><a href="#">{{ profile_detail.user.get_username }}</a></li>
13+
{% endblock %}
14+
15+
{% block content %}
16+
17+
<div class="row">
18+
<div class="large-12 columns">
19+
{# title #}
20+
<div class="home-app-title">
21+
<div class="row">
22+
<div class="large-8 columns">
23+
<h1>
24+
{% if user.is_authenticated and profile_detail.user == user %}
25+
Mes événements
26+
{% else %}
27+
Événements de {{ profile_detail.user.get_username }}
28+
{% endif %}
29+
</h1>
30+
</div>
31+
</div>
32+
</div>
33+
{# content #}
34+
<div class="row">
35+
<div class="large-12 columns">
36+
<h3>Événements publiés :</h3>
37+
{% if events_list %}
38+
{% with data_list=events_list %}
39+
{% include "events/by_author.table.html" %}
40+
{% endwith %}
41+
{% else %}
42+
<p>Aucuns événements trouvés.</p>
43+
{% endif %}
44+
45+
{% if profile_detail.user == profile_request.user or profile_request.is_admin %}
46+
<h3>Brouillons :</h3>
47+
{% if events_draft_list %}
48+
{% with data_list=events_draft_list %}
49+
{% include "events/by_author.table.html" %}
50+
{% endwith %}
51+
{% else %}
52+
<p>Aucuns brouillons trouvés.</p>
53+
{% endif %}
54+
{% endif %}
55+
</div>
56+
</div>
57+
</div>
58+
</div>
59+
60+
61+
{% endblock %}
62+
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
<div class="row">
2+
<div class="large-12 columns member_event_table">
3+
4+
<table width="100%">
5+
<thead>
6+
<tr>
7+
{% if profile_detail.user == profile_request.user or profile_request.is_admin %}
8+
<th width="30%">Titre</th>
9+
<th width="40%">Type d'événement, lieu et date</th>
10+
<th width="30%">Actions</th>
11+
{% else %}
12+
<th width="50%">Titre</th>
13+
<th width="50%">Type d'événement, lieu et date</th>
14+
{% endif %}
15+
</tr>
16+
</thead>
17+
<tbody>
18+
{% for data in data_list %}
19+
<tr>
20+
<td>
21+
<div class="row" width="100%">
22+
<div class="large-3 hide-for-small columns">
23+
<img src="{{ data.image_url }}" alt="" width="50" />
24+
</div>
25+
<div class="large-9 small-12 columns">
26+
<p>
27+
<a href="{{ data.get_absolute_url }}">
28+
{{ data.title }}
29+
</a>
30+
</p>
31+
</div>
32+
</div>
33+
</td>
34+
35+
<td>
36+
<p>
37+
{{ data.get_type_display }} - {{ data.place }} - {{ data.date_start }}
38+
</p>
39+
</td>
40+
41+
{% if profile_detail.user == profile_request.user or profile_request.is_admin %}
42+
<td>
43+
<div class="button-group ">
44+
<a href="{% url 'events:edit' data.pk %}" class="button-admin">
45+
Éditer
46+
</a>
47+
{% if data.is_draft %}
48+
<form action="{{ data.get_absolute_url }}" method="post">
49+
{% csrf_token %}
50+
<button name="toggle_draft" class="button-admin">
51+
Publier
52+
</button>
53+
</form>
54+
{% endif %}
55+
</div>
56+
</td>
57+
{% endif %}
58+
</tr>
59+
{% endfor %}
60+
</tbody>
61+
</table>
62+
</div>
63+
</div>

0 commit comments

Comments
 (0)