From 54acb322416c2400082c71f28c63e8cd936df6c3 Mon Sep 17 00:00:00 2001
From: William Zhang <willzhang05@gmail.com>
Date: Sat, 26 May 2018 18:20:42 -0400
Subject: [PATCH] working about page with templating and clean up formatting

---
 .gitignore                         |  1 +
 sgawebsite/apps/main/models.py     |  8 ----
 sgawebsite/apps/main/views.py      | 30 +++++++++++++
 sgawebsite/templates/about.html    | 20 +++++++--
 sgawebsite/templates/about.html.bk | 72 ------------------------------
 5 files changed, 47 insertions(+), 84 deletions(-)
 delete mode 100644 sgawebsite/templates/about.html.bk

diff --git a/.gitignore b/.gitignore
index 5223a9b..d15d914 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,3 +18,4 @@ settings.py
 env/
 db.sqlite3
 *.json
+admin/
diff --git a/sgawebsite/apps/main/models.py b/sgawebsite/apps/main/models.py
index a90f0a6..1f2dbda 100644
--- a/sgawebsite/apps/main/models.py
+++ b/sgawebsite/apps/main/models.py
@@ -16,14 +16,6 @@ class Member(models.Model):
     def __str__(self):
         return self.first_name + ' ' + self.last_name
 
-    def username(self):
-        if self.first_name and self.last_name:
-            if self.year > 0:
-                return str(year) + first_name[:1] + last_name[:7]
-            else:
-                return first_name[:1] + last_name[:7]
-        return None
-
 
 class Resource(models.Model):
     name = models.CharField(max_length=50)
diff --git a/sgawebsite/apps/main/views.py b/sgawebsite/apps/main/views.py
index 312cc82..37d2302 100644
--- a/sgawebsite/apps/main/views.py
+++ b/sgawebsite/apps/main/views.py
@@ -1,10 +1,14 @@
 from django.shortcuts import render
 from django.template.defaulttags import register
 from .models import Member, Resource
+from django.contrib.staticfiles.storage import staticfiles_storage
+import os
+
 
 def index(request):
     return render(request, 'index.html')
 
+
 def about(request):
     categories = list(Member.CATEGORIES)
     orgs = [c[0] for c in list(Member.CATEGORIES)]
@@ -18,12 +22,38 @@ def about(request):
     context['data'] = data
     return render(request, 'about.html', context)
 
+
 @register.filter
 def get_item(dictionary, key):
     return dictionary.get(key)
 
+
+@register.filter
+def username(obj):
+    if obj.first_name and obj.last_name:
+        if obj.year > 0:
+            return str(str(obj.year) +
+                       obj.first_name[:1] +
+                       obj.last_name[:7]).lower()
+        else:
+            return str(obj.first_name[:1] + obj.last_name[:7]).lower()
+    return None
+
+
+@register.filter
+def filename(obj):
+    uname = username(obj)
+    folder = 'img'
+    filepath = os.path.join(folder, 'people', uname + '.jpg')
+    if uname is not None and staticfiles_storage.exists(filepath):
+        return os.path.join('static', filepath)
+    else:
+        return os.path.join('static', folder, 'profile.jpg')
+
+
 def resources(request):
     return render(request, 'resources.html')
 
+
 def events(request):
     return render(request, 'events.html')
diff --git a/sgawebsite/templates/about.html b/sgawebsite/templates/about.html
index ae3d631..589188f 100644
--- a/sgawebsite/templates/about.html
+++ b/sgawebsite/templates/about.html
@@ -26,13 +26,25 @@
         {% for org in categories %}
         <section id="{{ org.0 }}">
             <h2>{{ org.1 }}</h2>
-            <div class="{{ org.username }}-intro">
             {% with key=data|get_item:org.0 %}
             {% for member in key %}
                 <div class="{{ org.0 }}-intro">
-                    {% with year=member.year first=member.first_name last=member.last_name %}
-                    {{ first }} {{ last }} {{ year }}
-                    {% endwith %}
+                    <div class="{{ org.0 }}-image">
+                        <img src="{{ member|filename }}" />
+                    </div>
+                    <div class="{{ org.0 }}-text">
+                        <span>{{ member.first_name }} {{ member.last_name }}</span>
+                        {% if member.category != 'sponsors' and member.category != 'senators' %}
+                        <span>{{ member.year }}</span>
+                        {% endif %}
+                    </div>
+                    {% if member.category != "officers" %}
+                    <span>{{ member.title }}</span>
+                    {% endif %}
+
+                    {% if member.category == "officers" and member.intro != '' %}
+                    <p>{{ member.intro }}</p>
+                    {% endif %}
                 </div>
             {% endfor %}
             {% endwith %}
diff --git a/sgawebsite/templates/about.html.bk b/sgawebsite/templates/about.html.bk
deleted file mode 100644
index bb371af..0000000
--- a/sgawebsite/templates/about.html.bk
+++ /dev/null
@@ -1,72 +0,0 @@
-<!DOCTYPE html>
-<html>
-{% load static %}
-<head>
-    <link href="{% static 'css/about.css' %}" rel="stylesheet" />
-    {% include 'head.html' %}
-    <title>About - TJSGA</title>
-</head>
-<body>
-    {% include 'header.html' %}
-    <div id="wrapper" class="fluid">
-        <section id="contact">
-            <h2>Contact Us!</h2>
-            <div class="desc">
-                <span class="quote">
-                    "The world is moved not only by the mighty shoves of the heroes, but also by the aggregate of the tiny pushes of each honest worker."  - Helen Keller
-                </span>
-            </div>
-            <div class="desc">
-                Contact us at
-                <a href="mailto:sga.tjhsst@gmail.com">sga.tjhsst@gmail.com</a>. We would love to answer questions or hear
-                about how you think we can improve TJ!
-            </div>
-        </section>
-        <hr />
-        {{ categories }}
-        <!--
-        {% for org in categories %}
-        <section id="{{ org[0] }}">
-            <h2>{{ org[1] }}</h2>
-            {% for member in org.members %}
-            <div class="{{ org.username }}-intro">
-            {% assign year = member.year | downcase %}
-            {% assign first = member.first | slice: 0 %}
-            {% assign last = member.last | slice: 0,7 %}
-            {% if org['username'] != "sponsors" %}
-                {% capture filename %}img/people/{{ year }}{{ first }}{{ last }}.jpg{% endcapture %}
-            {% else %}
-                {% capture filename %}img/people/{{ first }}{{ last }}.jpg{% endcapture %}
-            {% endif %}
-	    {% capture exists %}
-                {% file_exists {{ path }} %}
-            {% endcapture %}
-            {% if exists == false %}
-                {% capture filename %}img/profile.jpg{% endcapture %}
-            {% endif %}
-                <div class="{{ org.username }}-image">
-                    <img src="{{ filename | strip_newlines | downcase }}" />
-                </div>
-                <div class="{{ org.username }}-text">
-                    <span>{{ member.first }} {{ member.last }}</span>
-                    {% if org['username'] != "sponsors" and org['username'] != "senators" %}
-                    <span>{{ year }}</span>
-                    {% endif %}
-
-                    {% if org['username'] != "officers" %}
-                    <span>{{ member.title }}</span>
-                    {% endif %}
-
-                    {% if org['username'] == "officers" %}
-                    <p>{{ member.intro }}</p>
-                    {% endif %}
-                </div>
-            </div>
-            {% endfor %}
-        </section>
-        {% endfor %}
-        -->
-    </div>
-    {% include 'footer.html' %}
-</body>
-</html>