From fba43eb7c453207a482c5c9423d76194fa99881a Mon Sep 17 00:00:00 2001 From: Charles Connell Date: Tue, 29 Apr 2014 13:59:56 -0400 Subject: [PATCH] A number of design changes --- karmaworld/apps/courses/models.py | 2 +- karmaworld/apps/courses/views.py | 9 ++ karmaworld/assets/css/dashboard.css | 4 + karmaworld/assets/css/global.css | 103 +++++++++++++++++- karmaworld/assets/css/home.css | 22 +--- karmaworld/assets/css/note_course_pages.css | 23 ++-- karmaworld/assets/img/angle-down.png | Bin 0 -> 147 bytes karmaworld/assets/img/global_header_logo.png | Bin 1586 -> 0 bytes karmaworld/assets/img/karmanotes_logo.png | Bin 0 -> 14300 bytes .../assets/img/karmanotes_logo_small.png | Bin 0 -> 5328 bytes karmaworld/assets/js/course-list.js | 26 +++-- .../templates/courses/course_detail.html | 31 +++--- karmaworld/templates/courses/course_list.html | 44 +++++--- .../templates/courses/course_list_entry.html | 2 +- karmaworld/templates/footer.html | 2 +- karmaworld/templates/header.html | 21 ++-- karmaworld/templates/notes/note_detail.html | 4 +- .../templates/notes/note_list_entry.html | 6 +- .../templates/notes/search_results.html | 18 +-- karmaworld/templates/user_profile.html | 26 +++-- 20 files changed, 229 insertions(+), 114 deletions(-) create mode 100644 karmaworld/assets/img/angle-down.png delete mode 100644 karmaworld/assets/img/global_header_logo.png create mode 100644 karmaworld/assets/img/karmanotes_logo.png create mode 100644 karmaworld/assets/img/karmanotes_logo_small.png diff --git a/karmaworld/apps/courses/models.py b/karmaworld/apps/courses/models.py index de65a7a..f6b3f8c 100644 --- a/karmaworld/apps/courses/models.py +++ b/karmaworld/apps/courses/models.py @@ -316,7 +316,7 @@ class Course(models.Model): # loaded into memory. In that case, we avoid making any more database # queries. sum = 0 - for note in self.note_set: + for note in self.note_set.all(): sum += note.thanks return sum diff --git a/karmaworld/apps/courses/views.py b/karmaworld/apps/courses/views.py index 29445b2..873da73 100644 --- a/karmaworld/apps/courses/views.py +++ b/karmaworld/apps/courses/views.py @@ -77,6 +77,15 @@ class CourseListSubView(ListView): # get the course form for the form at the bottom of the homepage context['course_form'] = CourseForm() + schools = set() + for course in self.object_list: + if course.school: + schools.add(course.school) + elif course.department.school: + schools.add(course.department.school) + + context['schools'] = sorted(list(schools), key=lambda x: x.name) + # Include settings constants for honeypot for key in ('HONEYPOT_FIELD_NAME', 'HONEYPOT_VALUE'): context[key] = getattr(settings, key) diff --git a/karmaworld/assets/css/dashboard.css b/karmaworld/assets/css/dashboard.css index 426172a..1ed1390 100644 --- a/karmaworld/assets/css/dashboard.css +++ b/karmaworld/assets/css/dashboard.css @@ -16,6 +16,10 @@ div.stat-container { border-left: solid 1px #dfdfdf; + width: 200px; + float: left; + padding: 0 10px 0 20px; + margin: 5px 0 5px 0; } .activity_item { diff --git a/karmaworld/assets/css/global.css b/karmaworld/assets/css/global.css index c0cffad..ecda509 100644 --- a/karmaworld/assets/css/global.css +++ b/karmaworld/assets/css/global.css @@ -28,7 +28,21 @@ p { .top-bar-section ul li > a { font-family: inherit; - font-size: 1em; + font-size: 1.2em; + padding: 0; +} + +.top-bar-section ul li { + margin-left: 20px; + padding: 0; +} + +.top-bar-section ul li > a:hover { + background: #ffffff !important; + border-radius: 2px; + color: #333333 !important; + text-decoration: none !important; + font-family: 'museo700'; } #content-container { @@ -41,6 +55,20 @@ p { color: #d4d4d4; } +div.contain-to-grid { + padding: 5px 0 5px 0; +} + +@media only screen and (max-width: 500px) { + div.contain-to-grid { + padding: 0; + } + .top-bar-section ul li { + padding: 10px; + margin-left: 5px; + } +} + #header-login-nav { text-align: right; color: #ffffff; @@ -60,6 +88,12 @@ p { padding: 0 5px 0 5px; } +@media only screen and (max-width: 500px) { + #splash { + background-image: url('/static/img/banner_small.jpg'); + } +} + #global_footer { line-height: 1.5em; color: #d4d4d4; @@ -192,6 +226,7 @@ table.dataTable a { float: left; } +table.dataTable .table-row.even .data-table-entry-wrapper, .even { background-color: #fafafa !important; border-top: 1px solid #f0f0f0; @@ -226,19 +261,22 @@ ul.ui-autocomplete { } dl.tabs dd.active { - border-radius: 3px; + border-radius: 5px 5px 0 0; + border: 1px solid #dfdfdf; + border-bottom: none; } dl.tabs dd { - margin: 0 10px 0px 10px; - border: 1px solid #dfdfdf; border-bottom: none; + margin-left: 10px; } dl.tabs dd, -dl.tabs dd a { +dl.tabs dd a, +dl.tabs dd a:hover { border-top-left-radius: 3px; border-top-right-radius: 3px; + background: transparent; } dl.tabs dd a { @@ -258,3 +296,58 @@ ul.socialaccount_providers li{ display: inline; margin: 0 5px 0 5px; } + +.select-wrapper { + border: 1px solid #cfcfcf; + border-radius: 3px; + width: 100%; + height: 30px; + overflow: hidden; + background: url('/static/img/angle-down.png') no-repeat right #fff; + margin: 5px 20px 20px 0; +} + +select, +select:hover { + width: 120%; + height: 30px; + background: transparent; + border: 0px; + padding: 5px; +} + +input.search { + display: inline; + font-size: 1.2em; + font-family: 'adelle-sans'; + font-weight: lighter; + border-radius: 3px 0 0 3px; + width: calc(100% - 40px); + height: 40px; + margin-right: 0; +} + +i.search-icon, +button.search-icon { + background-color: black; + color: white; + height: 40px; + width: 40px; + vertical-align: top; + padding: 12px; + border-radius: 0 3px 3px 0; + margin-left: -4px; + margin-bottom: 0; + cursor: pointer; +} + +.sort-label { + font-size: 0.8em; + font-weight: normal; + margin-top: 10px; +} + +.filter-options { + border-bottom: 1px solid #a9a9a9; +} + diff --git a/karmaworld/assets/css/home.css b/karmaworld/assets/css/home.css index b5426a5..3c29050 100644 --- a/karmaworld/assets/css/home.css +++ b/karmaworld/assets/css/home.css @@ -26,21 +26,6 @@ } } /* medium screens and down */ -input.search-courses { - display: inline; - margin: 0 0 10px 5px; - max-width: 30em; -} - -#course-sort-wrapper { - float: right; - display: inline; -} - -select.course-sort { - width: 10em; -} - #course-search-bar { background: #f5f5f5; padding: 15px 0 0 0; @@ -52,6 +37,7 @@ select.course-sort { background: #ffffff; margin: 10px 0 0 0; padding: 5px 5px 5px 5px; + box-shadow: 1px 1px 3px black; } #add-course-form p { @@ -76,6 +62,10 @@ label.validation_error { } #add-course-btn { - width: 100% + width: 100%; + font-size: 1.2em; + border-radius: 3px; + height: 40px; + margin-bottom: 10px; } diff --git a/karmaworld/assets/css/note_course_pages.css b/karmaworld/assets/css/note_course_pages.css index cf9c33f..0bd7a7f 100644 --- a/karmaworld/assets/css/note_course_pages.css +++ b/karmaworld/assets/css/note_course_pages.css @@ -33,20 +33,10 @@ form.search-notes { display: inline; } -#note-sort-wrapper { - float: right; - display: inline; -} - -select.note-sort { - width: 10em; -} - #note-search-bar { background: #f5f5f5; padding: 15px 0 0 0; font: 1em 'museo300'; - margin-bottom: 20px; } ul.socialaccount_providers li @@ -69,7 +59,7 @@ table.dataTable span.note-thanks { div.return-to-course { background: #f5f5f5; padding: 10px 0 10px 0; - font-size: 0.8em; + font-size: 0.7em; } #results_header { @@ -114,6 +104,10 @@ div.header-title-row { button.add-note-btn { width: 100%; + font-size: 1.2em; + font-family: 'museo700'; + margin-bottom: 10px; + height: 40px; } .note-upload-remove-button { @@ -137,4 +131,9 @@ button.add-note-btn { font-size: inherit; margin: 0; padding: 5px; -} \ No newline at end of file +} + +#keyword-intro { + font-size: 0.8em; +} + diff --git a/karmaworld/assets/img/angle-down.png b/karmaworld/assets/img/angle-down.png new file mode 100644 index 0000000000000000000000000000000000000000..85ffd36bed53d6a503c798043f9d42906914f66f GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`QJyZ2Ar*6y6C_we*bnjW@a&e9 zkPs<6QEq5ppz_$bVQOPzqAWA>VP`frHdd3Jb!=>H{6JM{EisJ7PZ%dDx?~?qJCU;@ tEjY<^vGk{TGG|Y;X-r&QDI&nhz!=Q?|J_HiuRvQEJYD@<);T3K0RV1oDvkgE literal 0 HcmV?d00001 diff --git a/karmaworld/assets/img/global_header_logo.png b/karmaworld/assets/img/global_header_logo.png deleted file mode 100644 index 07e56aa0a86823f06f59456b6fd8ee293d4dbfab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1586 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 i)I`47Y<$b}JNRFSt+I8yaf%%P0000 Report course as inappropriate {% endif %} - {% else %} - {% endif %} @@ -157,29 +152,31 @@ {% endif %}