Initial member list page, need a group called member and users added to function
This commit is contained in:
parent
59024b892e
commit
21da62b31c
|
@ -1,5 +1,6 @@
|
||||||
pipeline:
|
pipeline:
|
||||||
backend:
|
backend:
|
||||||
|
image: maidstonehackspacewebsite_django
|
||||||
commands:
|
commands:
|
||||||
- python manage.py test
|
- python manage.py test
|
||||||
|
|
||||||
|
|
|
@ -49,6 +49,7 @@ LOCAL_APPS = (
|
||||||
'mhackspace.users.apps.UsersConfig',
|
'mhackspace.users.apps.UsersConfig',
|
||||||
'mhackspace.feeds',
|
'mhackspace.feeds',
|
||||||
'mhackspace.contact',
|
'mhackspace.contact',
|
||||||
|
'mhackspace.members',
|
||||||
)
|
)
|
||||||
|
|
||||||
# See: https://docs.djangoproject.com/en/dev/ref/settings/#installed-apps
|
# See: https://docs.djangoproject.com/en/dev/ref/settings/#installed-apps
|
||||||
|
|
|
@ -8,6 +8,7 @@ from django.contrib import admin
|
||||||
from django.views.generic import TemplateView
|
from django.views.generic import TemplateView
|
||||||
from django.views import defaults as default_views
|
from django.views import defaults as default_views
|
||||||
from mhackspace.contact.views import contact
|
from mhackspace.contact.views import contact
|
||||||
|
from mhackspace.members.views import MemberListView
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
url(r'^$', TemplateView.as_view(template_name='pages/home.html'), name='home'),
|
url(r'^$', TemplateView.as_view(template_name='pages/home.html'), name='home'),
|
||||||
|
@ -18,6 +19,8 @@ urlpatterns = [
|
||||||
url(r'^contact/$', contact, name='contact'),
|
url(r'^contact/$', contact, name='contact'),
|
||||||
|
|
||||||
# need to be logged in for these urls
|
# need to be logged in for these urls
|
||||||
|
url(r'^members/$', MemberListView.as_view(), name='members'),
|
||||||
|
|
||||||
# Django Admin, use {% url 'admin:index' %}
|
# Django Admin, use {% url 'admin:index' %}
|
||||||
url(settings.ADMIN_URL, admin.site.urls),
|
url(settings.ADMIN_URL, admin.site.urls),
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import absolute_import, unicode_literals
|
||||||
|
|
||||||
|
from django.core.urlresolvers import reverse
|
||||||
|
from django.views.generic import DetailView, ListView, RedirectView, UpdateView
|
||||||
|
|
||||||
|
from django.contrib.auth.mixins import LoginRequiredMixin
|
||||||
|
|
||||||
|
from mhackspace.users.models import User
|
||||||
|
|
||||||
|
class MemberListView(LoginRequiredMixin, ListView):
|
||||||
|
template_name = 'pages/members.html'
|
||||||
|
queryset = User.objects.prefetch_related('users', 'groups')
|
||||||
|
paginate_by = 10
|
||||||
|
|
||||||
|
def get_context_data(self, **kwargs):
|
||||||
|
context = super(MemberListView, self).get_context_data(**kwargs)
|
||||||
|
context['members'] = self.get_queryset()
|
||||||
|
context['total'] = self.get_queryset().filter(groups__name='member').count()
|
||||||
|
return context
|
|
@ -0,0 +1,37 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
{% block content %}
|
||||||
|
|
||||||
|
Members feed
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="">Users {{ paginator.count }}</div>
|
||||||
|
<div class="">Members {{ total }}</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="card-deck-wrapper">
|
||||||
|
<div class="card-deck">
|
||||||
|
{% for member in members %}
|
||||||
|
<div class="card">
|
||||||
|
<img class="card-img-top img-responsive" src="{{ MEDIA_URL }}{{ member.image }}" alt="Card image cap" style="width:100%">
|
||||||
|
<div class="card-block">
|
||||||
|
<h4 class="card-title">{{ member.name }}</h4>
|
||||||
|
<p class="card-text">{{ member.users.description }}</p>
|
||||||
|
<p class="card-text">{{ member.users.skills }}</p>
|
||||||
|
|
||||||
|
{% for group in member.groups.all %}
|
||||||
|
{{ group.name }}
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
<div class="card-block">
|
||||||
|
<p class="card-text">{{ member.userblurb }}</p>
|
||||||
|
</div>
|
||||||
|
<div class="card-block">
|
||||||
|
<a href="{{ feed.url }}" class="card-link">View Original</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% if forloop.counter|divisibleby:3 %}</div><div class="card-deck">{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% endblock %}
|
|
@ -22,7 +22,7 @@ class User(AbstractUser):
|
||||||
|
|
||||||
|
|
||||||
class UserBlurb(models.Model):
|
class UserBlurb(models.Model):
|
||||||
user = models.ForeignKey(settings.AUTH_USER_MODEL)
|
user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='users')
|
||||||
skills = models.CharField(max_length=255)
|
skills = models.CharField(max_length=255)
|
||||||
description = models.TextField()
|
description = models.TextField()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue