Initial member list page, need a group called member and users added to function

This commit is contained in:
Oliver Marks 2017-01-07 19:21:00 +00:00
parent 59024b892e
commit 21da62b31c
6 changed files with 63 additions and 1 deletions

View File

@ -1,5 +1,6 @@
pipeline: pipeline:
backend: backend:
image: maidstonehackspacewebsite_django
commands: commands:
- python manage.py test - python manage.py test

View File

@ -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

View File

@ -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),

View File

@ -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

View File

@ -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 %}

View File

@ -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()