From 914fe244c95d84cc88345b0c9225c9b393b77fc8 Mon Sep 17 00:00:00 2001 From: Drew Larson Date: Sun, 3 Apr 2016 19:59:34 -0600 Subject: [PATCH 1/4] Import CSS separately. --- bikeshop_project/core/static/scss/screen.scss | 150 ++++++++++++++++-- 1 file changed, 134 insertions(+), 16 deletions(-) diff --git a/bikeshop_project/core/static/scss/screen.scss b/bikeshop_project/core/static/scss/screen.scss index 2d59944..1bd2db5 100644 --- a/bikeshop_project/core/static/scss/screen.scss +++ b/bikeshop_project/core/static/scss/screen.scss @@ -1,24 +1,142 @@ -/** - * Copyright 2015 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -@import "vendor/material-design-lite/src/material-design-lite.scss"; +@import "vendor/material-design-lite/src/textfield/textfield"; +@import "vendor/material-design-lite/src/typography/typography"; +@import "vendor/material-design-lite/src/shadow/shadow"; +@import "vendor/material-design-lite/src/ripple/ripple"; +@import "vendor/material-design-lite/src/grid/grid"; +@import "vendor/material-design-lite/src/layout/layout"; +@import "vendor/material-design-lite/src/footer/mega_footer"; +@import "vendor/material-design-lite/src/checkbox/checkbox"; +@import "vendor/material-design-lite/src/button/button"; +@import "vendor/material-design-lite/src/palette/palette"; +@import "vendor/material-design-lite/src/menu/menu"; +@import "vendor/material-design-lite/src/card/card"; html, body { font-family: 'Roboto', 'Helvetica', sans-serif; } + +/* ========================================================================== + Helper classes + ========================================================================== */ +/* + * Hide visually and from screen readers: + */ +.hidden { + display: none !important; } + +/* + * Hide only visually, but have it available for screen readers: + * http://snook.ca/archives/html_and_css/hiding-content-for-accessibility + */ +.visuallyhidden { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; } + +/* + * Extends the .visuallyhidden class to allow the element + * to be focusable when navigated to via the keyboard: + * https://www.drupal.org/node/897638 + */ +.visuallyhidden.focusable:active, +.visuallyhidden.focusable:focus { + clip: auto; + height: auto; + margin: 0; + overflow: visible; + position: static; + width: auto; } + +/* + * Hide visually and from screen readers, but maintain layout + */ +.invisible { + visibility: hidden; } + +/* + * Clearfix: contain floats + * + * For modern browsers + * 1. The space content is one way to avoid an Opera bug when the + * `contenteditable` attribute is included anywhere else in the document. + * Otherwise it causes space to appear at the top and bottom of elements + * that receive the `clearfix` class. + * 2. The use of `table` rather than `block` is only necessary if using + * `:before` to contain the top-margins of child elements. + */ +.clearfix:before, +.clearfix:after { + content: " "; + /* 1 */ + display: table; + /* 2 */ } + +.clearfix:after { + clear: both; } + +/* ========================================================================== + EXAMPLE Media Queries for Responsive Design. + These examples override the primary ('mobile first') styles. + Modify as content requires. + ========================================================================== */ +/* ========================================================================== + Print styles. + Inlined to avoid the additional HTTP request: + http://www.phpied.com/delay-loading-your-print-css/ + ========================================================================== */ +@media print { + *, + *:before, + *:after, + *:first-letter { + background: transparent !important; + color: #000 !important; + /* Black prints faster: http://www.sanbeiji.com/archives/953 */ + box-shadow: none !important; } + a, + a:visited { + text-decoration: underline; } + a[href]:after { + content: " (" attr(href) ")"; } + abbr[title]:after { + content: " (" attr(title) ")"; } + /* + * Don't show links that are fragment identifiers, + * or use the `javascript:` pseudo protocol + */ + a[href^="#"]:after, + a[href^="javascript:"]:after { + content: ""; } + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; } + /* + * Printing Tables: + * http://css-discuss.incutio.com/wiki/Printing_Tables + */ + thead { + display: table-header-group; } + tr, + img { + page-break-inside: avoid; } + img { + max-width: 100% !important; } + p, + h2, + h3 { + orphans: 3; + widows: 3; } + h2, + h3 { + page-break-after: avoid; } } + .demo-avatar { width: 48px; height: 48px; From 060e5b2d910f5248471009b49a5ec51185739670 Mon Sep 17 00:00:00 2001 From: Drew Larson Date: Sun, 3 Apr 2016 19:59:42 -0600 Subject: [PATCH 2/4] Don't use NFS anymore. --- Vagrantfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Vagrantfile b/Vagrantfile index 6af54c4..8d2b93c 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -32,7 +32,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| # the path on the guest to mount the folder. And the optional third # argument is a set of non-required options. config.vm.synced_folder '.', '/vagrant', disabled: true - config.vm.synced_folder "bikeshop_project", "/srv/bikeshop", type: "nfs" + config.vm.synced_folder "bikeshop_project", "/srv/bikeshop" config.vm.provision "ansible" do |ansible| ansible.groups = { From fa475e58358863f9bc7e603788075f4a93fce63d Mon Sep 17 00:00:00 2001 From: Drew Larson Date: Mon, 4 Apr 2016 21:23:05 -0600 Subject: [PATCH 3/4] Name for finding url with reverse. --- bikeshop_project/registration/urls.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bikeshop_project/registration/urls.py b/bikeshop_project/registration/urls.py index 26c068d..84781dd 100644 --- a/bikeshop_project/registration/urls.py +++ b/bikeshop_project/registration/urls.py @@ -2,5 +2,5 @@ from django.conf.urls import url from .views import MemberFormView urlpatterns = [ - url(r'^new/$', MemberFormView.as_view()), + url(r'^new/$', MemberFormView.as_view(), name='signup'), ] From ffa6b4b16966ad2e261c1ececf4f41eb6f8d9c6f Mon Sep 17 00:00:00 2001 From: Drew Larson Date: Mon, 4 Apr 2016 21:23:15 -0600 Subject: [PATCH 4/4] Basic login form. --- bikeshop_project/bikeshop/urls.py | 2 + .../registration/templates/login.html | 79 ++++++++++++++----- 2 files changed, 60 insertions(+), 21 deletions(-) diff --git a/bikeshop_project/bikeshop/urls.py b/bikeshop_project/bikeshop/urls.py index 05aa77e..5a04e02 100644 --- a/bikeshop_project/bikeshop/urls.py +++ b/bikeshop_project/bikeshop/urls.py @@ -15,11 +15,13 @@ Including another URLconf """ from django.conf.urls import include, url from django.contrib import admin +from django.contrib.auth.views import login from core import urls as core_urls from registration import urls as member_urls urlpatterns = [ url(r'^', include(core_urls)), + url(r'^login/', login, {'template_name': 'login.html'}), url(r'^member/', include(member_urls)), url(r'^admin/', admin.site.urls), ] diff --git a/bikeshop_project/registration/templates/login.html b/bikeshop_project/registration/templates/login.html index e12d229..5e141de 100644 --- a/bikeshop_project/registration/templates/login.html +++ b/bikeshop_project/registration/templates/login.html @@ -1,31 +1,68 @@ {% extends 'base.html' %} +{% load staticfiles compress %} + +{% block styles %} + {{ block.super }} + {% compress css %} + + {% endcompress %} +{% endblock %} + +{% block scripts %} + {{ block.super }} + +{% endblock %} + + + {% block content %}

Welcome

-
+ + {% if form.non_field_errors %} +
+ {{ form.non_field_errors }} +
+ {% endif %} + {% csrf_token %}
- - + +
+
+ + +
+ +
+ + Become a Member +
- -
-
- - - Input is not a number! -
-
- -
- -
+
{% endblock %} \ No newline at end of file