├── .gitignore ├── INSTALL ├── README ├── __init__.py ├── admin_media ├── css │ ├── base.css │ ├── changelists.css │ ├── dashboard.css │ ├── forms.css │ ├── ie.css │ ├── login.css │ ├── rtl.css │ └── widgets.css ├── img │ ├── admin │ │ ├── arrow-down.gif │ │ ├── arrow-up.gif │ │ ├── changelist-bg.gif │ │ ├── changelist-bg_rtl.gif │ │ ├── chooser-bg.gif │ │ ├── chooser_stacked-bg.gif │ │ ├── default-bg-reverse.gif │ │ ├── default-bg.gif │ │ ├── deleted-overlay.gif │ │ ├── icon-no.gif │ │ ├── icon-unknown.gif │ │ ├── icon-yes.gif │ │ ├── icon_addlink.gif │ │ ├── icon_alert.gif │ │ ├── icon_calendar.gif │ │ ├── icon_changelink.gif │ │ ├── icon_clock.gif │ │ ├── icon_deletelink.gif │ │ ├── icon_error.gif │ │ ├── icon_searchbox.png │ │ ├── icon_success.gif │ │ ├── inline-delete-8bit.png │ │ ├── inline-delete.png │ │ ├── inline-restore-8bit.png │ │ ├── inline-restore.png │ │ ├── inline-splitter-bg.gif │ │ ├── nav-bg-grabber.gif │ │ ├── nav-bg-reverse.gif │ │ ├── nav-bg.gif │ │ ├── selector-add.gif │ │ ├── selector-addall.gif │ │ ├── selector-remove.gif │ │ ├── selector-removeall.gif │ │ ├── selector-search.gif │ │ ├── selector_stacked-add.gif │ │ ├── selector_stacked-remove.gif │ │ ├── tool-left.gif │ │ ├── tool-left_over.gif │ │ ├── tool-right.gif │ │ ├── tool-right_over.gif │ │ ├── tooltag-add.gif │ │ ├── tooltag-add_over.gif │ │ ├── tooltag-arrowright.gif │ │ └── tooltag-arrowright_over.gif │ └── gis │ │ ├── move_vertex_off.png │ │ └── move_vertex_on.png └── js │ ├── SelectBox.js │ ├── SelectFilter2.js │ ├── admin │ ├── CollapsedFieldsets.js │ ├── DateTimeShortcuts.js │ ├── RelatedObjectLookups.js │ └── ordering.js │ ├── calendar.js │ ├── core.js │ ├── dateparse.js │ ├── getElementsBySelector.js │ ├── timeparse.js │ └── urlify.js ├── application_fields.py ├── blog ├── CHANGELOG.yml ├── README.txt ├── __init__.py ├── admin.py ├── feeds.py ├── managers.py ├── models.py ├── sitemap.py ├── templates │ ├── base.html │ ├── blog │ │ ├── base_blog.html │ │ ├── category_detail.html │ │ ├── category_list.html │ │ ├── post_archive_day.html │ │ ├── post_archive_month.html │ │ ├── post_archive_year.html │ │ ├── post_detail.html │ │ ├── post_list.html │ │ └── post_search.html │ ├── feeds │ │ ├── posts_description.html │ │ └── posts_title.html │ └── inlines │ │ └── default.html ├── templatetags │ ├── __init__.py │ └── blog.py ├── tests.py ├── urls.py └── views.py ├── calendar_dates ├── __init__.py ├── models.py ├── tests.py └── views.py ├── comments ├── __init__.py ├── admin.py ├── feeds.py ├── forms.py ├── managers.py ├── models.py ├── signals.py ├── templates │ └── comments │ │ ├── 400-debug.html │ │ ├── approve.html │ │ ├── approved.html │ │ ├── base.html │ │ ├── delete.html │ │ ├── deleted.html │ │ ├── flag.html │ │ ├── flagged.html │ │ ├── form.html │ │ ├── moderation_queue.html │ │ ├── posted.html │ │ └── preview.html ├── templatetags │ ├── __init__.py │ └── comments.py ├── urls.py └── views │ ├── __init__.py │ ├── comments.py │ ├── moderation.py │ └── utils.py ├── constants.py ├── email-auth.py ├── empty_local_settings.py ├── endpoint.py ├── homeviews.py ├── manage.py ├── media ├── css │ ├── images │ │ ├── ajax-loader.gif │ │ ├── arrow-down.gif │ │ ├── arrow-up.gif │ │ ├── brand-back.jpg │ │ ├── btn-paynow.gif │ │ ├── ccs-logo.png │ │ ├── ccs-ribbon.gif │ │ ├── changelist-bg.gif │ │ ├── changelist-bg_rtl.gif │ │ ├── chooser-bg.gif │ │ ├── chooser_stacked-bg.gif │ │ ├── create-account-btn.gif │ │ ├── default-bg-reverse.gif │ │ ├── default-bg.gif │ │ ├── deleted-overlay.gif │ │ ├── icon-no.gif │ │ ├── icon-unknown.gif │ │ ├── icon-yes.gif │ │ ├── icon_addlink.gif │ │ ├── icon_alert.gif │ │ ├── icon_calendar.gif │ │ ├── icon_changelink.gif │ │ ├── icon_clock.gif │ │ ├── icon_deletelink.gif │ │ ├── icon_error.gif │ │ ├── icon_searchbox.png │ │ ├── icon_success.gif │ │ ├── inline-delete-8bit.png │ │ ├── inline-delete.png │ │ ├── inline-restore-8bit.png │ │ ├── inline-restore.png │ │ ├── inline-splitter-bg.gif │ │ ├── menu-key.gif │ │ ├── menu-month-bg.gif │ │ ├── nav-bg-grabber.gif │ │ ├── nav-bg-reverse.gif │ │ ├── nav-bg.gif │ │ ├── photo_60x60.jpg │ │ ├── photo_60x60.psd │ │ ├── rounded.png │ │ ├── selector-add.gif │ │ ├── selector-addall.gif │ │ ├── selector-remove.gif │ │ ├── selector-removeall.gif │ │ ├── selector-search.gif │ │ ├── selector_stacked-add.gif │ │ ├── selector_stacked-remove.gif │ │ ├── status-complete.gif │ │ ├── status-incomplete.gif │ │ ├── switch_minus.gif │ │ ├── switch_plus.gif │ │ ├── tool-left.gif │ │ ├── tool-left_over.gif │ │ ├── tool-right.gif │ │ ├── tool-right_over.gif │ │ ├── tooltag-add.gif │ │ ├── tooltag-add_over.gif │ │ ├── tooltag-arrowright.gif │ │ ├── tooltag-arrowright_over.gif │ │ ├── ui-bg_flat_0_aaaaaa_40x100.png │ │ ├── ui-bg_glass_55_fbf9ee_1x400.png │ │ ├── ui-bg_glass_65_ffffff_1x400.png │ │ ├── ui-bg_glass_75_dadada_1x400.png │ │ ├── ui-bg_glass_75_e6e6e6_1x400.png │ │ ├── ui-bg_glass_75_ffffff_1x400.png │ │ ├── ui-bg_highlight-soft_75_cccccc_1x100.png │ │ ├── ui-bg_inset-soft_95_fef1ec_1x100.png │ │ ├── ui-icons_222222_256x240.png │ │ ├── ui-icons_2e83ff_256x240.png │ │ ├── ui-icons_454545_256x240.png │ │ ├── ui-icons_888888_256x240.png │ │ └── ui-icons_cd0a0a_256x240.png │ ├── jquery-ui-1.7.1.custom.css │ ├── reset.css │ └── style.css ├── highslide │ ├── graphics │ │ ├── close.png │ │ ├── closeX.png │ │ ├── controlbar-black-border.gif │ │ ├── controlbar-text-buttons.png │ │ ├── controlbar-white-small.gif │ │ ├── controlbar-white.gif │ │ ├── controlbar2.gif │ │ ├── controlbar3.gif │ │ ├── controlbar4-hover.gif │ │ ├── controlbar4.gif │ │ ├── fullexpand.gif │ │ ├── geckodimmer.png │ │ ├── icon.gif │ │ ├── loader.gif │ │ ├── loader.white.gif │ │ ├── outlines │ │ │ ├── Outlines.psd │ │ │ ├── beveled.png │ │ │ ├── drop-shadow.png │ │ │ ├── glossy-dark.png │ │ │ ├── outer-glow.png │ │ │ ├── rounded-black.png │ │ │ └── rounded-white.png │ │ ├── resize.gif │ │ ├── scrollarrows.png │ │ ├── zoomin.cur │ │ └── zoomout.cur │ ├── highslide-full.js │ ├── highslide-full.packed.js │ ├── highslide-ie6.css │ ├── highslide-with-gallery.js │ ├── highslide-with-gallery.packed.js │ ├── highslide-with-html.js │ ├── highslide-with-html.packed.js │ ├── highslide.css │ ├── highslide.js │ └── highslide.packed.js ├── img │ └── ajax-loader.gif ├── js │ ├── admin-expand.js │ ├── iframeModal.js │ ├── jqDnR.js │ ├── jqModal.js │ ├── jquery-1.2.6.js │ ├── jquery-1.3.1.min.js │ ├── jquery-1.3.2.min.js │ ├── jquery-menu.js │ ├── jquery-ui-1.7.1.custom.min.js │ ├── jquery.cookie.js │ ├── jquery.form.js │ ├── jquery.js │ ├── mootools.js │ └── validate.js ├── our_people_avatars │ └── images.jpeg ├── player.swf ├── school.wsgi ├── swfobject.js ├── video_stills │ ├── beach.jpg │ └── beach_.jpg └── videos │ └── out-4.ogv.flv ├── media_logs ├── CHANGELOG.yml ├── README.txt ├── __init__.py ├── admin.py ├── models.py ├── templates │ ├── base.html │ └── media_logs │ │ ├── audio_detail.html │ │ ├── audio_list.html │ │ ├── audioset_detail.html │ │ ├── audioset_list.html │ │ ├── base_audio.html │ │ ├── base_photos.html │ │ ├── base_videos.html │ │ ├── photo_detail.html │ │ ├── photo_list.html │ │ ├── photoset_detail.html │ │ ├── photoset_list.html │ │ ├── video_detail.html │ │ ├── video_list.html │ │ ├── videoset_detail.html │ │ └── videoset_list.html ├── tests.py └── urls │ ├── __init__.py │ ├── audios.py │ ├── photos.py │ └── videos.py ├── menu ├── __init__.py ├── admin.py ├── forms.py ├── models.py ├── templatetags │ ├── __init__.py │ └── logic.py ├── tests.py ├── urls.py └── views.py ├── our_people ├── __init__.py ├── models.py ├── tests.py ├── urls.py └── views.py ├── payments ├── __init__.py ├── models.py └── tests.py ├── people ├── __init__.py ├── models.py └── tests.py ├── records ├── __init__.py ├── admin.py ├── forms.py ├── models.py ├── tests.py ├── urls.py └── views.py ├── settings.py ├── templates ├── admin │ ├── base_site.html │ ├── people │ │ └── guardian │ │ │ └── change_list.html │ └── records │ │ ├── application │ │ └── change_form.html │ │ └── application_print_detail.html ├── base.html ├── calendar.html ├── home.html ├── menu │ ├── .see.html.swo │ ├── order.html │ ├── paynow.html │ └── see.html ├── our_people │ ├── detail.html │ └── person_list.html ├── records │ ├── addStudent.html │ ├── apply.html │ ├── base.html │ ├── changeStudent.html │ ├── changeVol.html │ ├── complete.html │ ├── continue.html │ ├── current.html │ ├── emergency.html │ ├── enroll.html │ ├── family.html │ ├── guardians.html │ ├── home_start.html │ ├── mssq.html │ ├── mystudents.html │ ├── parent.html │ ├── pickup.html │ ├── profile.html │ ├── questions.html │ ├── register.html │ ├── students.html │ └── volunteer.html └── registration │ ├── activate.html │ ├── activation_email.txt │ ├── activation_email_subject.txt │ ├── login.html │ ├── logout.html │ ├── registration_complete.html │ └── registration_form.html ├── urls.py ├── utils.py ├── views ├── __init__.py └── generic │ ├── __init__.py │ ├── create_update.py │ ├── date_based.py │ ├── list_detail.py │ └── simple.py └── years ├── __init__.py ├── models.py ├── tests.py └── views.py /.gitignore: -------------------------------------------------------------------------------- 1 | dev.db 2 | *.pyc 3 | *.svn 4 | local_settings.py 5 | local_settings.py 6 | *.svn* 7 | *.swp 8 | *~ 9 | 10 | -------------------------------------------------------------------------------- /INSTALL: -------------------------------------------------------------------------------- 1 | 1) clone the repository 2 | 3 | * git clone git://github.com/ssavelan/django-school.git 4 | 5 | 2) Fix up your settings. 6 | 7 | cd django-school (or custom name) 8 | mv empty_local_settings.py local_settings.py 9 | 10 | open a Python Interpreter and run: 11 | 12 | from random import choice 13 | ''.join([choice('abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)') for i in range(50)]) 14 | 15 | paste the result for your SECRET_KEY in local_settings.py 16 | 17 | Set LIVE=False in your settings.py to run devel server with sqlite. 18 | 19 | 4) syncdb, runserver 20 | 21 | ** add 1 of each type of meal (3 in all) and a dateset for the menu to work. 22 | This app was special-cased for a client and could use some abstraction. 23 | -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- 1 | The open source demo version has fallen woefully behind it's commercial counterparts. 2 | If you would like to help develop django-school please feel free to branch or repurpose. 3 | You can contact skylar.saveland@gmail.com with any questions or comments. 4 | 5 | I guess the MIT or GPL license could go here? 6 | 7 | 8 | Summary 9 | ======= 10 | 11 | Django School (Quince) is a web-based school information system. The system is very customizable 12 | so that the school can get exactly what it wants and not more. No extra functionality will be left 13 | to clutter or confuse. The system is intuitive and easy to learn. 14 | 15 | All information can be retrieved with a few clicks and is searchable and sortable. Get any obscure 16 | information stored in the system instantly! Beautiful, unobtrusive Ajax where it is merited. Ready to 17 | integrate existing design/logos/styles/flash resources or to create new ones. 18 | 19 | If the school desires a feature that is not currently in Quince it should be relatively straight-forward 20 | to add. We look forward to defining further needs and specifications with you so we can improve Quince. 21 | 22 | 23 | Features (in progress features in parenthesis) 24 | ============================================== 25 | 26 | * Online Payments Hub 27 | * Keep track of all online payments for your school 28 | * Paypal integration, records keeping, instant notification 29 | * (Google Checkout) 30 | 31 | * Application, Registration and Enrollment 32 | * Forms 33 | * Payments 34 | * Tracking 35 | * Scheduling 36 | * Notification 37 | * Easy to set discount timeframes 38 | * Easy to integrate with online calendars 39 | 40 | * Records 41 | * PARENTS enter their data and update throughout the year and during enrollment 42 | * Emergency contacts 43 | * Pickup People 44 | * Allergies and other student information 45 | * Disciplinary actions, gold stars, notes, anything you want 46 | * Define the data that you want to store and we can easily adapt the 47 | software to your specific needs. 48 | * Volunteer organization 49 | * Donations 50 | * Family members and community 51 | 52 | (* Calendars 53 | * Make your own, anything you can think of! 54 | * Split into intuitive categories 55 | * Easy and extensible 56 | * Application/Registration/Enrollment 57 | * Events 58 | * Lunch Menu 59 | ) 60 | 61 | (* News and information 62 | * Video archives with search and categories 63 | * School Blog 64 | * Photo albums 65 | * About sections 66 | * Easy to add features/flash 67 | * Show the world how great your school is in: 68 | * Pictures, videos, print 69 | ) 70 | 71 | (* Scheduling 72 | * Set important dates and dictate what the parents see based on date and time 73 | * Group students based on homeroom or other criteria 74 | * Attach students to a main teacher or contact 75 | * (Create classrooms and schedule the student's days/weeks/semesters/quarters/years) 76 | * (Know exactly where a student is supposed to be at any given time) 77 | * (Mark tardies and absences) 78 | ) 79 | -------------------------------------------------------------------------------- /__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/__init__.py -------------------------------------------------------------------------------- /admin_media/css/dashboard.css: -------------------------------------------------------------------------------- 1 | /* DASHBOARD */ 2 | 3 | .dashboard .module table th { 4 | width: 100%; 5 | } 6 | 7 | .dashboard .module table td { 8 | white-space: nowrap; 9 | } 10 | 11 | .dashboard .module table td a { 12 | display: block; 13 | padding-right: .6em; 14 | } 15 | 16 | /* RECENT ACTIONS MODULE */ 17 | 18 | .module ul.actionlist { 19 | margin-left: 0; 20 | } 21 | 22 | ul.actionlist li { 23 | list-style-type: none; 24 | } 25 | -------------------------------------------------------------------------------- /admin_media/css/ie.css: -------------------------------------------------------------------------------- 1 | /* IE 6 & 7 */ 2 | 3 | /* Proper fixed width for dashboard in IE6 */ 4 | 5 | .dashboard #content { 6 | *width: 768px; 7 | } 8 | 9 | .dashboard #content-main { 10 | *width: 535px; 11 | } 12 | 13 | /* IE 6 ONLY */ 14 | 15 | /* Keep header from flowing off the page */ 16 | 17 | #container { 18 | _position: static; 19 | } 20 | 21 | /* Put the right sidebars back on the page */ 22 | 23 | .colMS #content-related { 24 | _margin-right: 0; 25 | _margin-left: 10px; 26 | _position: static; 27 | } 28 | 29 | /* Put the left sidebars back on the page */ 30 | 31 | .colSM #content-related { 32 | _margin-right: 10px; 33 | _margin-left: -115px; 34 | _position: static; 35 | } 36 | 37 | .form-row { 38 | _height: 1%; 39 | } 40 | 41 | /* Fix right margin for changelist filters in IE6 */ 42 | 43 | #changelist-filter ul { 44 | _margin-right: -10px; 45 | } 46 | 47 | /* IE ignores min-height, but treats height as if it were min-height */ 48 | 49 | .change-list .filtered { 50 | _height: 400px; 51 | } -------------------------------------------------------------------------------- /admin_media/css/login.css: -------------------------------------------------------------------------------- 1 | /* LOGIN FORM */ 2 | 3 | body.login { 4 | background: #eee; 5 | } 6 | 7 | .login #container { 8 | background: white; 9 | border: 1px solid #ccc; 10 | width: 28em; 11 | min-width: 300px; 12 | margin-left: auto; 13 | margin-right: auto; 14 | margin-top: 100px; 15 | } 16 | 17 | .login #content-main { 18 | width: 100%; 19 | } 20 | 21 | .login form { 22 | margin-top: 1em; 23 | } 24 | 25 | .login .form-row { 26 | padding: 4px 0; 27 | float: left; 28 | width: 100%; 29 | } 30 | 31 | .login .form-row label { 32 | float: left; 33 | width: 9em; 34 | padding-right: 0.5em; 35 | line-height: 2em; 36 | text-align: right; 37 | font-size: 1em; 38 | color: #333; 39 | } 40 | 41 | .login .form-row #id_username, .login .form-row #id_password { 42 | width: 14em; 43 | } 44 | 45 | .login span.help { 46 | font-size: 10px; 47 | display: block; 48 | } 49 | 50 | .login .submit-row { 51 | clear: both; 52 | padding: 1em 0 0 9.4em; 53 | } 54 | 55 | -------------------------------------------------------------------------------- /admin_media/img/admin/arrow-down.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/arrow-down.gif -------------------------------------------------------------------------------- /admin_media/img/admin/arrow-up.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/arrow-up.gif -------------------------------------------------------------------------------- /admin_media/img/admin/changelist-bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/changelist-bg.gif -------------------------------------------------------------------------------- /admin_media/img/admin/changelist-bg_rtl.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/changelist-bg_rtl.gif -------------------------------------------------------------------------------- /admin_media/img/admin/chooser-bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/chooser-bg.gif -------------------------------------------------------------------------------- /admin_media/img/admin/chooser_stacked-bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/chooser_stacked-bg.gif -------------------------------------------------------------------------------- /admin_media/img/admin/default-bg-reverse.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/default-bg-reverse.gif -------------------------------------------------------------------------------- /admin_media/img/admin/default-bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/default-bg.gif -------------------------------------------------------------------------------- /admin_media/img/admin/deleted-overlay.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/deleted-overlay.gif -------------------------------------------------------------------------------- /admin_media/img/admin/icon-no.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/icon-no.gif -------------------------------------------------------------------------------- /admin_media/img/admin/icon-unknown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/icon-unknown.gif -------------------------------------------------------------------------------- /admin_media/img/admin/icon-yes.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/icon-yes.gif -------------------------------------------------------------------------------- /admin_media/img/admin/icon_addlink.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/icon_addlink.gif -------------------------------------------------------------------------------- /admin_media/img/admin/icon_alert.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/icon_alert.gif -------------------------------------------------------------------------------- /admin_media/img/admin/icon_calendar.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/icon_calendar.gif -------------------------------------------------------------------------------- /admin_media/img/admin/icon_changelink.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/icon_changelink.gif -------------------------------------------------------------------------------- /admin_media/img/admin/icon_clock.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/icon_clock.gif -------------------------------------------------------------------------------- /admin_media/img/admin/icon_deletelink.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/icon_deletelink.gif -------------------------------------------------------------------------------- /admin_media/img/admin/icon_error.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/icon_error.gif -------------------------------------------------------------------------------- /admin_media/img/admin/icon_searchbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/icon_searchbox.png -------------------------------------------------------------------------------- /admin_media/img/admin/icon_success.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/icon_success.gif -------------------------------------------------------------------------------- /admin_media/img/admin/inline-delete-8bit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/inline-delete-8bit.png -------------------------------------------------------------------------------- /admin_media/img/admin/inline-delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/inline-delete.png -------------------------------------------------------------------------------- /admin_media/img/admin/inline-restore-8bit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/inline-restore-8bit.png -------------------------------------------------------------------------------- /admin_media/img/admin/inline-restore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/inline-restore.png -------------------------------------------------------------------------------- /admin_media/img/admin/inline-splitter-bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/inline-splitter-bg.gif -------------------------------------------------------------------------------- /admin_media/img/admin/nav-bg-grabber.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/nav-bg-grabber.gif -------------------------------------------------------------------------------- /admin_media/img/admin/nav-bg-reverse.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/nav-bg-reverse.gif -------------------------------------------------------------------------------- /admin_media/img/admin/nav-bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/nav-bg.gif -------------------------------------------------------------------------------- /admin_media/img/admin/selector-add.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/selector-add.gif -------------------------------------------------------------------------------- /admin_media/img/admin/selector-addall.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/selector-addall.gif -------------------------------------------------------------------------------- /admin_media/img/admin/selector-remove.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/selector-remove.gif -------------------------------------------------------------------------------- /admin_media/img/admin/selector-removeall.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/selector-removeall.gif -------------------------------------------------------------------------------- /admin_media/img/admin/selector-search.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/selector-search.gif -------------------------------------------------------------------------------- /admin_media/img/admin/selector_stacked-add.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/selector_stacked-add.gif -------------------------------------------------------------------------------- /admin_media/img/admin/selector_stacked-remove.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/selector_stacked-remove.gif -------------------------------------------------------------------------------- /admin_media/img/admin/tool-left.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/tool-left.gif -------------------------------------------------------------------------------- /admin_media/img/admin/tool-left_over.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/tool-left_over.gif -------------------------------------------------------------------------------- /admin_media/img/admin/tool-right.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/tool-right.gif -------------------------------------------------------------------------------- /admin_media/img/admin/tool-right_over.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/tool-right_over.gif -------------------------------------------------------------------------------- /admin_media/img/admin/tooltag-add.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/tooltag-add.gif -------------------------------------------------------------------------------- /admin_media/img/admin/tooltag-add_over.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/tooltag-add_over.gif -------------------------------------------------------------------------------- /admin_media/img/admin/tooltag-arrowright.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/tooltag-arrowright.gif -------------------------------------------------------------------------------- /admin_media/img/admin/tooltag-arrowright_over.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/admin/tooltag-arrowright_over.gif -------------------------------------------------------------------------------- /admin_media/img/gis/move_vertex_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/gis/move_vertex_off.png -------------------------------------------------------------------------------- /admin_media/img/gis/move_vertex_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/admin_media/img/gis/move_vertex_on.png -------------------------------------------------------------------------------- /admin_media/js/admin/RelatedObjectLookups.js: -------------------------------------------------------------------------------- 1 | // Handles related-objects functionality: lookup link for raw_id_fields 2 | // and Add Another links. 3 | 4 | function html_unescape(text) { 5 | // Unescape a string that was escaped using django.utils.html.escape. 6 | text = text.replace(/</g, '<'); 7 | text = text.replace(/>/g, '>'); 8 | text = text.replace(/"/g, '"'); 9 | text = text.replace(/'/g, "'"); 10 | text = text.replace(/&/g, '&'); 11 | return text; 12 | } 13 | 14 | // IE doesn't accept periods or dashes in the window name, but the element IDs 15 | // we use to generate popup window names may contain them, therefore we map them 16 | // to allowed characters in a reversible way so that we can locate the correct 17 | // element when the popup window is dismissed. 18 | function id_to_windowname(text) { 19 | text = text.replace(/\./g, '__dot__'); 20 | text = text.replace(/\-/g, '__dash__'); 21 | return text; 22 | } 23 | 24 | function windowname_to_id(text) { 25 | text = text.replace(/__dot__/g, '.'); 26 | text = text.replace(/__dash__/g, '-'); 27 | return text; 28 | } 29 | 30 | function showRelatedObjectLookupPopup(triggeringLink) { 31 | var name = triggeringLink.id.replace(/^lookup_/, ''); 32 | name = id_to_windowname(name); 33 | var href; 34 | if (triggeringLink.href.search(/\?/) >= 0) { 35 | href = triggeringLink.href + '&pop=1'; 36 | } else { 37 | href = triggeringLink.href + '?pop=1'; 38 | } 39 | var win = window.open(href, name, 'height=500,width=800,resizable=yes,scrollbars=yes'); 40 | win.focus(); 41 | return false; 42 | } 43 | 44 | function dismissRelatedLookupPopup(win, chosenId) { 45 | var name = windowname_to_id(win.name); 46 | var elem = document.getElementById(name); 47 | if (elem.className.indexOf('vManyToManyRawIdAdminField') != -1 && elem.value) { 48 | elem.value += ',' + chosenId; 49 | } else { 50 | document.getElementById(name).value = chosenId; 51 | } 52 | win.close(); 53 | } 54 | 55 | function showAddAnotherPopup(triggeringLink) { 56 | var name = triggeringLink.id.replace(/^add_/, ''); 57 | name = id_to_windowname(name); 58 | href = triggeringLink.href 59 | if (href.indexOf('?') == -1) { 60 | href += '?_popup=1'; 61 | } else { 62 | href += '&_popup=1'; 63 | } 64 | var win = window.open(href, name, 'height=500,width=800,resizable=yes,scrollbars=yes'); 65 | win.focus(); 66 | return false; 67 | } 68 | 69 | function dismissAddAnotherPopup(win, newId, newRepr) { 70 | // newId and newRepr are expected to have previously been escaped by 71 | // django.utils.html.escape. 72 | newId = html_unescape(newId); 73 | newRepr = html_unescape(newRepr); 74 | var name = windowname_to_id(win.name); 75 | var elem = document.getElementById(name); 76 | if (elem) { 77 | if (elem.nodeName == 'SELECT') { 78 | var o = new Option(newRepr, newId); 79 | elem.options[elem.options.length] = o; 80 | o.selected = true; 81 | } else if (elem.nodeName == 'INPUT') { 82 | elem.value = newId; 83 | } 84 | } else { 85 | var toId = name + "_to"; 86 | elem = document.getElementById(toId); 87 | var o = new Option(newRepr, newId); 88 | SelectBox.add_to_cache(toId, o); 89 | SelectBox.redisplay(toId); 90 | } 91 | win.close(); 92 | } 93 | -------------------------------------------------------------------------------- /admin_media/js/timeparse.js: -------------------------------------------------------------------------------- 1 | var timeParsePatterns = [ 2 | // 9 3 | { re: /^\d{1,2}$/i, 4 | handler: function(bits) { 5 | if (bits[0].length == 1) { 6 | return '0' + bits[0] + ':00'; 7 | } else { 8 | return bits[0] + ':00'; 9 | } 10 | } 11 | }, 12 | // 13:00 13 | { re: /^\d{2}[:.]\d{2}$/i, 14 | handler: function(bits) { 15 | return bits[0].replace('.', ':'); 16 | } 17 | }, 18 | // 9:00 19 | { re: /^\d[:.]\d{2}$/i, 20 | handler: function(bits) { 21 | return '0' + bits[0].replace('.', ':'); 22 | } 23 | }, 24 | // 3 am / 3 a.m. / 3am 25 | { re: /^(\d+)\s*([ap])(?:.?m.?)?$/i, 26 | handler: function(bits) { 27 | var hour = parseInt(bits[1]); 28 | if (hour == 12) { 29 | hour = 0; 30 | } 31 | if (bits[2].toLowerCase() == 'p') { 32 | if (hour == 12) { 33 | hour = 0; 34 | } 35 | return (hour + 12) + ':00'; 36 | } else { 37 | if (hour < 10) { 38 | return '0' + hour + ':00'; 39 | } else { 40 | return hour + ':00'; 41 | } 42 | } 43 | } 44 | }, 45 | // 3.30 am / 3:15 a.m. / 3.00am 46 | { re: /^(\d+)[.:](\d{2})\s*([ap]).?m.?$/i, 47 | handler: function(bits) { 48 | var hour = parseInt(bits[1]); 49 | var mins = parseInt(bits[2]); 50 | if (mins < 10) { 51 | mins = '0' + mins; 52 | } 53 | if (hour == 12) { 54 | hour = 0; 55 | } 56 | if (bits[3].toLowerCase() == 'p') { 57 | if (hour == 12) { 58 | hour = 0; 59 | } 60 | return (hour + 12) + ':' + mins; 61 | } else { 62 | if (hour < 10) { 63 | return '0' + hour + ':' + mins; 64 | } else { 65 | return hour + ':' + mins; 66 | } 67 | } 68 | } 69 | }, 70 | // noon 71 | { re: /^no/i, 72 | handler: function(bits) { 73 | return '12:00'; 74 | } 75 | }, 76 | // midnight 77 | { re: /^mid/i, 78 | handler: function(bits) { 79 | return '00:00'; 80 | } 81 | } 82 | ]; 83 | 84 | function parseTimeString(s) { 85 | for (var i = 0; i < timeParsePatterns.length; i++) { 86 | var re = timeParsePatterns[i].re; 87 | var handler = timeParsePatterns[i].handler; 88 | var bits = re.exec(s); 89 | if (bits) { 90 | return handler(bits); 91 | } 92 | } 93 | return s; 94 | } 95 | -------------------------------------------------------------------------------- /application_fields.py: -------------------------------------------------------------------------------- 1 | # This is where we define the questions that are within the application 2 | # 3 | 4 | fields = [ 5 | ('Where were you born?','q1','T') 6 | ] 7 | 8 | 9 | q1 = models.TextField(verbose_name='Where were you born?') 10 | 11 | 12 | -------------------------------------------------------------------------------- /blog/CHANGELOG.yml: -------------------------------------------------------------------------------- 1 | changes: 2 | date: 2008-09-17 3 | change: Enabled the ability to override the default template names. 4 | 5 | date: 2008-08-26 6 | change: Upgraded post_detail.html to now use new Django refactored comments. Sidenote: basic.remarks have been removed. 7 | 8 | date: 2008-07-14 9 | change: Removed get_query_set from Blog manager to fix a problem where saving a post marked as Draft would not save. 10 | change: Added a get_previous_post and get_next_post method for front end template. These will not return Draft posts. 11 | 12 | date: 2008-06-17 13 | change: BlogPostFeed is now BlogPostsFeed and there is a new BlogPostsByCategory. 14 | 15 | date: 2008-05-18 16 | change: Converted everything to 4 space tabs and made a few other changes to comply with Python Style Guide. 17 | 18 | date: 2008-04-23 19 | change: Added an inline admin interface helper for choosing inlines to go into posts. 20 | change: The inline app is now a dependancy of the blog. 21 | 22 | date: 2008-04-22 23 | change: Removed the 'render_inlines' filter from the Blog template tags. The tag is now in an app called inlines which can be used with any django app. 24 | 25 | date: 2008-02-27 26 | change: Added 'allow_comments' field to the Post model. 27 | change: Removed 'Closed' choice from status field of Post model 28 | 29 | date: 2008-02-18 30 | fix: Fixed feed pointing to hardcoded url. 31 | 32 | date: 2008-02-15 33 | change: Internationalized models 34 | 35 | date: 2008-02-04 36 | change: Added 'get_links' template filter. 37 | change: Templates: added a {% block content_title %} 38 | 39 | date: 2008-02-02 40 | change: Added a sitemap 41 | 42 | date: 2008-01-30 43 | change: Renamed 'do_inlines' filter to 'render_inlines' 44 | 45 | date: 2008-01-29 46 | change: BeautifulSoup is no longer a dependancy unless you want to use the do_inlines filter. 47 | 48 | date: 2008-01-27 49 | fix: removed 'tagging.register(Post)' from model. It was causing too many unnecessary SQL JOINS. 50 | change: Changed the inlines tag to a filter. (Example: {{ object.text|do_inlines }}) 51 | 52 | date: 2008-01-22 53 | change: Registered the Post model with the tagging app 54 | 55 | date: 2008-01-19 56 | change: Renamed the 'list' class to 'link_list' 57 | 58 | date: 2008-01-09 59 | change: Changed urls.py so you can have /posts/page/2/ or /posts/?page=2 60 | 61 | date: 2008-01-07 62 | change: Removed PublicPostManager in favor of ManagerWithPublished. 63 | change: Made wrappers for generic views. 64 | 65 | date: 2008-01-06 66 | fix: In blog.py changed 'beautifulsoup' to 'BeautifulSoup' 67 | 68 | date: 2007-12-31 69 | change: Changed some syntax in managers.py to hopefully fix a bug. 70 | change: Removed an inline template that didn't belong. 71 | 72 | date: 2007-12-21 73 | change: Added markup tag that formats inlines. 74 | 75 | date: 2007-12-12 76 | change: Cleaned up unit tests. 77 | 78 | date: 2007-12-11 79 | change: Add documentation to templatetags and views. 80 | change: Smartened up the previous/next blog part of the post_detail.html template. 81 | 82 | date: 2007-12-09 83 | change: Added feed templates and wrapped up feeds.py. 84 | change: Changed Post.live manager to Post.public 85 | change: Added a search view along with templates 86 | -------------------------------------------------------------------------------- /blog/README.txt: -------------------------------------------------------------------------------- 1 | =========================================== 2 | Django Basic Blog 3 | http://code.google.com/p/django-basic-apps/ 4 | =========================================== 5 | 6 | A simple blog application for Django projects. 7 | 8 | To install this app, simply create a folder somewhere in 9 | your PYTHONPATH named 'basic' and place the 'blog' 10 | app inside. Then add 'basic.blog' to your projects 11 | INSTALLED_APPS list in your settings.py file. 12 | 13 | === Dependancies === 14 | * Basic Inlines 15 | * [http://www.djangoproject.com/documentation/add_ons/#comments Django Comments] 16 | * [http://code.google.com/p/django-tagging Django Tagging] 17 | * [http://www.djangoproject.com/documentation/add_ons/#markup Markup] 18 | * [http://www.crummy.com/software/BeautifulSoup/ BeautifulSoup] - only if you want to use the [http://code.google.com/p/django-basic-blog/wiki/BlogInlinesProposal render_inlines] filter, otherwise it's not necessary. -------------------------------------------------------------------------------- /blog/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/blog/__init__.py -------------------------------------------------------------------------------- /blog/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | from blog.models import * 3 | 4 | 5 | class CategoryAdmin(admin.ModelAdmin): 6 | prepopulated_fields = {'slug': ('title',)} 7 | 8 | admin.site.register(Category, CategoryAdmin) 9 | 10 | 11 | class PostAdmin(admin.ModelAdmin): 12 | list_display = ('title', 'publish', 'status') 13 | list_filter = ('publish', 'categories', 'status') 14 | search_fields = ('title', 'body') 15 | prepopulated_fields = {'slug': ('title',)} 16 | 17 | admin.site.register(Post, PostAdmin) 18 | -------------------------------------------------------------------------------- /blog/feeds.py: -------------------------------------------------------------------------------- 1 | from django.contrib.syndication.feeds import FeedDoesNotExist 2 | from django.core.exceptions import ObjectDoesNotExist 3 | from django.contrib.sites.models import Site 4 | from django.contrib.syndication.feeds import Feed 5 | from django.core.urlresolvers import reverse 6 | from blog.models import Post, Category 7 | 8 | 9 | class BlogPostsFeed(Feed): 10 | _site = Site.objects.get_current() 11 | title = '%s feed' % _site.name 12 | description = '%s posts feed.' % _site.name 13 | 14 | def link(self): 15 | return reverse('blog_index') 16 | 17 | def items(self): 18 | return Post.objects.published()[:10] 19 | 20 | def item_pubdate(self, obj): 21 | return obj.publish 22 | 23 | 24 | class BlogPostsByCategory(Feed): 25 | _site = Site.objects.get_current() 26 | title = '%s posts category feed' % _site.name 27 | 28 | def get_object(self, bits): 29 | if len(bits) != 1: 30 | raise ObjectDoesNotExist 31 | return Category.objects.get(slug__exact=bits[0]) 32 | 33 | def link(self, obj): 34 | if not obj: 35 | raise FeedDoesNotExist 36 | return obj.get_absolute_url() 37 | 38 | def description(self, obj): 39 | return "Posts recently categorized as %s" % obj.title 40 | 41 | def items(self, obj): 42 | return obj.post_set.published()[:10] 43 | -------------------------------------------------------------------------------- /blog/managers.py: -------------------------------------------------------------------------------- 1 | from django.db.models import Manager 2 | import datetime 3 | 4 | 5 | class PublicManager(Manager): 6 | """Returns published posts that are not in the future.""" 7 | 8 | def published(self): 9 | return self.get_query_set().filter(status__gte=2, publish__lte=datetime.datetime.now()) 10 | -------------------------------------------------------------------------------- /blog/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | from django.utils.translation import ugettext_lazy as _ 3 | from django.db.models import permalink 4 | from django.contrib.auth.models import User 5 | from tagging.fields import TagField 6 | from blog.managers import PublicManager 7 | 8 | import tagging 9 | 10 | 11 | class Category(models.Model): 12 | """Category model.""" 13 | title = models.CharField(_('title'), max_length=100) 14 | slug = models.SlugField(_('slug'), unique=True) 15 | 16 | class Meta: 17 | verbose_name = _('category') 18 | verbose_name_plural = _('categories') 19 | db_table = 'blog_categories' 20 | ordering = ('title',) 21 | 22 | class Admin: 23 | pass 24 | 25 | def __unicode__(self): 26 | return u'%s' % self.title 27 | 28 | @permalink 29 | def get_absolute_url(self): 30 | return ('blog_category_detail', None, {'slug': self.slug}) 31 | 32 | 33 | class Post(models.Model): 34 | """Post model.""" 35 | STATUS_CHOICES = ( 36 | (1, _('Draft')), 37 | (2, _('Public')), 38 | ) 39 | title = models.CharField(_('title'), max_length=200) 40 | slug = models.SlugField(_('slug'), unique_for_date='publish') 41 | author = models.ForeignKey(User, blank=True, null=True) 42 | body = models.TextField(_('body')) 43 | tease = models.TextField(_('tease'), blank=True) 44 | status = models.IntegerField(_('status'), choices=STATUS_CHOICES, default=2) 45 | allow_comments = models.BooleanField(_('allow comments'), default=True) 46 | publish = models.DateTimeField(_('publish')) 47 | created = models.DateTimeField(_('created'), auto_now_add=True) 48 | modified = models.DateTimeField(_('modified'), auto_now=True) 49 | categories = models.ManyToManyField(Category, blank=True) 50 | tags = TagField() 51 | objects = PublicManager() 52 | 53 | class Meta: 54 | verbose_name = _('post') 55 | verbose_name_plural = _('posts') 56 | db_table = 'blog_posts' 57 | ordering = ('-publish',) 58 | get_latest_by = 'publish' 59 | 60 | class Admin: 61 | list_display = ('title', 'publish', 'status') 62 | list_filter = ('publish', 'categories', 'status') 63 | search_fields = ('title', 'body') 64 | 65 | def __unicode__(self): 66 | return u'%s' % self.title 67 | 68 | @permalink 69 | def get_absolute_url(self): 70 | return ('blog_detail', None, { 71 | 'year': self.publish.year, 72 | 'month': self.publish.strftime('%b').lower(), 73 | 'day': self.publish.day, 74 | 'slug': self.slug 75 | }) 76 | 77 | def get_previous_post(self): 78 | return self.get_previous_by_publish(status__gte=2) 79 | 80 | def get_next_post(self): 81 | return self.get_next_by_publish(status__gte=2) 82 | -------------------------------------------------------------------------------- /blog/sitemap.py: -------------------------------------------------------------------------------- 1 | from django.contrib.sitemaps import Sitemap 2 | from basic.blog.models import Post 3 | 4 | 5 | class BlogSitemap(Sitemap): 6 | changefreq = "never" 7 | priority = 0.5 8 | 9 | def items(self): 10 | return Post.objects.published() 11 | 12 | def lastmod(self, obj): 13 | return obj.publish -------------------------------------------------------------------------------- /blog/templates/base.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 |
6 | 7 |12 | {% if object.get_previous_by_publish %} 13 | « {{ object.get_previous_post }} 14 | {% endif %} 15 | {% if object.get_next_by_publish %} 16 | | {{ object.get_next_post }} » 17 | {% endif %} 18 |
19 | 20 | {% load blog markup comments tagging_tags %} 21 | 22 |{{ object.publish|date:"j F Y" }}
23 | 24 |Related tags: 31 | {% for tag in tag_list %} 32 | {{ tag }}{% if not forloop.last %}, {% endif %} 33 | {% endfor %} 34 |
35 | {% endif %} 36 | 37 | {% get_comment_list for object as comment_list %} 38 | {% if comment_list %} 39 |Comments have been close for this post.
62 |26 | {% if has_next %} 27 | Older 28 | {% endif %} 29 | {% if has_next and has_previous %} | {% endif %} 30 | {% if has_previous %} 31 | Newer 32 | {% endif %} 33 |
34 | {% endif %} 35 | {% endblock %} -------------------------------------------------------------------------------- /blog/templates/blog/post_search.html: -------------------------------------------------------------------------------- 1 | {% extends "blog/base_blog.html" %} 2 | 3 | 4 | {% block title %}Post search{% endblock %} 5 | {% block body_class %}{{ block.super }} post_search{% endblock %} 6 | 7 | 8 | {% block content_title %} 9 |{{ post.publish|date:"Y F d" }}
31 |{{ post.tease }}
32 |{% if comment_count %}{{ comment_count }} comment{{ comment_count|pluralize }}{% endif %}
33 |Why: | 31 |{{ why }} | 32 |
---|
37 | The comment you tried to post to this view wasn't saved because something 38 | tampered with the security information in the comment form. The message 39 | above should explain the problem, or you can check the comment 41 | documentation for more help. 42 |
43 |
47 | You're seeing this error because you have DEBUG = True
in
48 | your Django settings file. Change that to False
, and Django
49 | will display a standard 400 error page.
50 |
{{ comment|linebreaks }}9 | 15 | {% endblock %} 16 | -------------------------------------------------------------------------------- /comments/templates/comments/approved.html: -------------------------------------------------------------------------------- 1 | {% extends "comments/base.html" %} 2 | {% load i18n %} 3 | 4 | {% block title %}{% trans "Thanks for approving" %}.{% endblock %} 5 | 6 | {% block content %} 7 |
{{ comment|linebreaks }}9 | 15 | {% endblock %} 16 | -------------------------------------------------------------------------------- /comments/templates/comments/deleted.html: -------------------------------------------------------------------------------- 1 | {% extends "comments/base.html" %} 2 | {% load i18n %} 3 | 4 | {% block title %}{% trans "Thanks for removing" %}.{% endblock %} 5 | 6 | {% block content %} 7 |
{{ comment|linebreaks }}9 | 15 | {% endblock %} 16 | -------------------------------------------------------------------------------- /comments/templates/comments/flagged.html: -------------------------------------------------------------------------------- 1 | {% extends "comments/base.html" %} 2 | {% load i18n %} 3 | 4 | {% block title %}{% trans "Thanks for flagging" %}.{% endblock %} 5 | 6 | {% block content %} 7 |
{% trans "No comments to moderate" %}.
27 | {% else %} 28 |{% trans "Action" %} | 34 |{% trans "Name" %} | 35 |{% trans "Comment" %} | 36 |{% trans "Email" %} | 37 |{% trans "URL" %} | 38 |{% trans "Authenticated?" %} | 39 |{% trans "IP Address" %} | 40 |{% trans "Date posted" %} | 41 |
---|---|---|---|---|---|---|---|
47 | 51 | 55 | | 56 |{{ comment.name }} | 57 |{{ comment.comment|truncatewords:"50" }} | 58 |{{ comment.email }} | 59 |{{ comment.url }} | 60 |
61 | ![]() |
66 | {{ comment.ip_address }} | 67 |{{ comment.submit_date|date:"F j, P" }} | 68 |
Go back to {{comment.content_object}} »
9 | {% endblock %} 10 | -------------------------------------------------------------------------------- /comments/templates/comments/preview.html: -------------------------------------------------------------------------------- 1 | {% extends "comments/base.html" %} 2 | {% load i18n %} 3 | 4 | {% block title %}{% trans "Preview your comment" %}{% endblock %} 5 | 6 | {% block content %} 7 | {% load comments %} 8 | 35 | {% endblock %} 36 | -------------------------------------------------------------------------------- /comments/templatetags/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/comments/templatetags/__init__.py -------------------------------------------------------------------------------- /comments/urls.py: -------------------------------------------------------------------------------- 1 | from django.conf.urls.defaults import * 2 | 3 | urlpatterns = patterns('django.contrib.comments.views', 4 | url(r'^post/$', 'comments.post_comment', name='comments-post-comment'), 5 | url(r'^posted/$', 'comments.comment_done', name='comments-comment-done'), 6 | url(r'^flag/(\d+)/$', 'moderation.flag', name='comments-flag'), 7 | url(r'^flagged/$', 'moderation.flag_done', name='comments-flag-done'), 8 | url(r'^delete/(\d+)/$', 'moderation.delete', name='comments-delete'), 9 | url(r'^deleted/$', 'moderation.delete_done', name='comments-delete-done'), 10 | url(r'^moderate/$', 'moderation.moderation_queue', name='comments-moderation-queue'), 11 | url(r'^approve/(\d+)/$', 'moderation.approve', name='comments-approve'), 12 | url(r'^approved/$', 'moderation.approve_done', name='comments-approve-done'), 13 | ) 14 | 15 | urlpatterns += patterns('', 16 | url(r'^cr/(\d+)/(\w+)/$', 'django.views.defaults.shortcut', name='comments-url-redirect'), 17 | ) 18 | 19 | -------------------------------------------------------------------------------- /comments/views/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/comments/views/__init__.py -------------------------------------------------------------------------------- /comments/views/utils.py: -------------------------------------------------------------------------------- 1 | """ 2 | A few bits of helper functions for comment views. 3 | """ 4 | 5 | import urllib 6 | import textwrap 7 | from django.http import HttpResponseRedirect 8 | from django.core import urlresolvers 9 | from django.shortcuts import render_to_response 10 | from django.template import RequestContext 11 | from django.core.exceptions import ObjectDoesNotExist 12 | from django.contrib import comments 13 | 14 | def next_redirect(data, default, default_view, **get_kwargs): 15 | """ 16 | Handle the "where should I go next?" part of comment views. 17 | 18 | The next value could be a kwarg to the function (``default``), or a 19 | ``?next=...`` GET arg, or the URL of a given view (``default_view``). See 20 | the view modules for examples. 21 | 22 | Returns an ``HttpResponseRedirect``. 23 | """ 24 | next = data.get("next", default) 25 | if next is None: 26 | next = urlresolvers.reverse(default_view) 27 | if get_kwargs: 28 | next += "?" + urllib.urlencode(get_kwargs) 29 | return HttpResponseRedirect(next) 30 | 31 | def confirmation_view(template, doc="Display a confirmation view."): 32 | """ 33 | Confirmation view generator for the "comment was 34 | posted/flagged/deleted/approved" views. 35 | """ 36 | def confirmed(request): 37 | comment = None 38 | if 'c' in request.GET: 39 | try: 40 | comment = comments.get_model().objects.get(pk=request.GET['c']) 41 | except ObjectDoesNotExist: 42 | pass 43 | return render_to_response(template, 44 | {'comment': comment}, 45 | context_instance=RequestContext(request) 46 | ) 47 | 48 | confirmed.__doc__ = textwrap.dedent("""\ 49 | %s 50 | 51 | Templates: `%s`` 52 | Context: 53 | comment 54 | The posted comment 55 | """ % (doc, template) 56 | ) 57 | return confirmed 58 | -------------------------------------------------------------------------------- /constants.py: -------------------------------------------------------------------------------- 1 | payment_types = ( 2 | ('MealPlan', 'MealPlan'), 3 | ('ApplicationFee', 'ApplicationFee'), 4 | ('RegistrationFee', 'RegistrationFee'), 5 | ('EnrollmentFee', 'EnrollmentFee'), 6 | ) 7 | 8 | title_choices = ( 9 | ('Mr','Mr.'), 10 | ('Mrs','Mrs.'), 11 | ('Ms','Ms.'), 12 | ('Miss','Miss'), 13 | ('Dr','Dr.'), 14 | ('Prof','Prof.'), 15 | ('Rev','Rev.'), 16 | ) 17 | 18 | grade_choices = ( 19 | ('k4','K4'), 20 | ('k5','K5'), 21 | ('1st','1st'), 22 | ('2nd','2nd'), 23 | ('3rd','3rd'), 24 | ('4th','4th'), 25 | ('5th','5th'), 26 | ('6th','6th'), 27 | ('7th','7th'), 28 | ('8th','8th'), 29 | ) 30 | 31 | gender_choices = ( 32 | ('m', 'Male'), 33 | ('f', 'Female') 34 | ) 35 | 36 | relationship_choices = ( 37 | ('mother', 'Mother'), 38 | ('father', 'Father'), 39 | ('grandfather', 'Grandfather'), 40 | ('grandmother', 'Grandmother'), 41 | ('aunt', 'Aunt'), 42 | ('uncle', 'Uncle'), 43 | ('brother', 'Brother'), 44 | ('sister', 'Sister'), 45 | ('cousin', 'Cousin'), 46 | ('other', 'Other'), 47 | ) 48 | 49 | -------------------------------------------------------------------------------- /email-auth.py: -------------------------------------------------------------------------------- 1 | from django.contrib.auth.models import User 2 | from django.forms.fields import email_re 3 | 4 | class BasicBackend: 5 | def get_user(self, user_id): 6 | try: 7 | return User.objects.get(pk=user_id) 8 | except User.DoesNotExist: 9 | return None 10 | 11 | class EmailBackend(BasicBackend): 12 | def authenticate(self, username=None, password=None): 13 | #If username is an email address, then try to pull it up 14 | if email_re.search(username): 15 | try: 16 | user = User.objects.get(email=username) 17 | except User.DoesNotExist: 18 | return None 19 | else: 20 | #We have a non-email address username we should try username 21 | try: 22 | user = User.objects.get(username=username) 23 | except User.DoesNotExist: 24 | return None 25 | if user.check_password(password): 26 | return user 27 | 28 | -------------------------------------------------------------------------------- /empty_local_settings.py: -------------------------------------------------------------------------------- 1 | SECRET_KEY = '' 2 | DATABASE_ENGINE = '' 3 | DATABASE_NAME = '' 4 | DATABASE_USER = '' 5 | DATABASE_PASSWORD = '' 6 | DATABASE_HOST = '' 7 | DATABASE_PORT = '' 8 | 9 | EMAIL_HOST = '' 10 | EMAIL_HOST_USER = '' 11 | EMAIL_HOST_PASSWORD = '' 12 | EMAIL_PORT = '' 13 | DEFAULT_FROM_EMAIL = '' 14 | SERVER_EMAIL = '' 15 | 16 | MEDIA_URL = '' 17 | ADMIN_MEDIA_PREFIX = '' 18 | 19 | -------------------------------------------------------------------------------- /homeviews.py: -------------------------------------------------------------------------------- 1 | import datetime 2 | from django.shortcuts import render_to_response 3 | from django.template import RequestContext 4 | 5 | from menu.models import DateSet 6 | def home(request): 7 | try: 8 | menu = DateSet.objects.get(start_taking_orders__lte =\ 9 | datetime.date.today(), end_taking_orders__gte =\ 10 | datetime.date.today()) 11 | except: 12 | menu = None 13 | 14 | home=True 15 | try: 16 | profile = request.user.get_profile() 17 | except: 18 | profile=None 19 | context = {'menu':menu, 'home':home, 'profile':profile,} 20 | return render_to_response('home.html', context,\ 21 | context_instance=RequestContext(request)) 22 | 23 | def calendar(request): 24 | context = {} 25 | return render_to_response('calendar.html', context,\ 26 | context_instance=RequestContext(request)) 27 | -------------------------------------------------------------------------------- /manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | from django.core.management import execute_manager 3 | try: 4 | import settings # Assumed to be in the same directory. 5 | except ImportError: 6 | import sys 7 | sys.stderr.write("Error: Can't find the file 'settings.py' in the directory containing %r. It appears you've customized things.\nYou'll have to run django-admin.py, passing it your settings module.\n(If the file settings.py does indeed exist, it's causing an ImportError somehow.)\n" % __file__) 8 | sys.exit(1) 9 | 10 | if __name__ == "__main__": 11 | execute_manager(settings) 12 | -------------------------------------------------------------------------------- /media/css/images/ajax-loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/ajax-loader.gif -------------------------------------------------------------------------------- /media/css/images/arrow-down.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/arrow-down.gif -------------------------------------------------------------------------------- /media/css/images/arrow-up.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/arrow-up.gif -------------------------------------------------------------------------------- /media/css/images/brand-back.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/brand-back.jpg -------------------------------------------------------------------------------- /media/css/images/btn-paynow.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/btn-paynow.gif -------------------------------------------------------------------------------- /media/css/images/ccs-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/ccs-logo.png -------------------------------------------------------------------------------- /media/css/images/ccs-ribbon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/ccs-ribbon.gif -------------------------------------------------------------------------------- /media/css/images/changelist-bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/changelist-bg.gif -------------------------------------------------------------------------------- /media/css/images/changelist-bg_rtl.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/changelist-bg_rtl.gif -------------------------------------------------------------------------------- /media/css/images/chooser-bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/chooser-bg.gif -------------------------------------------------------------------------------- /media/css/images/chooser_stacked-bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/chooser_stacked-bg.gif -------------------------------------------------------------------------------- /media/css/images/create-account-btn.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/create-account-btn.gif -------------------------------------------------------------------------------- /media/css/images/default-bg-reverse.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/default-bg-reverse.gif -------------------------------------------------------------------------------- /media/css/images/default-bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/default-bg.gif -------------------------------------------------------------------------------- /media/css/images/deleted-overlay.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/deleted-overlay.gif -------------------------------------------------------------------------------- /media/css/images/icon-no.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/icon-no.gif -------------------------------------------------------------------------------- /media/css/images/icon-unknown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/icon-unknown.gif -------------------------------------------------------------------------------- /media/css/images/icon-yes.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/icon-yes.gif -------------------------------------------------------------------------------- /media/css/images/icon_addlink.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/icon_addlink.gif -------------------------------------------------------------------------------- /media/css/images/icon_alert.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/icon_alert.gif -------------------------------------------------------------------------------- /media/css/images/icon_calendar.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/icon_calendar.gif -------------------------------------------------------------------------------- /media/css/images/icon_changelink.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/icon_changelink.gif -------------------------------------------------------------------------------- /media/css/images/icon_clock.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/icon_clock.gif -------------------------------------------------------------------------------- /media/css/images/icon_deletelink.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/icon_deletelink.gif -------------------------------------------------------------------------------- /media/css/images/icon_error.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/icon_error.gif -------------------------------------------------------------------------------- /media/css/images/icon_searchbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/icon_searchbox.png -------------------------------------------------------------------------------- /media/css/images/icon_success.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/icon_success.gif -------------------------------------------------------------------------------- /media/css/images/inline-delete-8bit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/inline-delete-8bit.png -------------------------------------------------------------------------------- /media/css/images/inline-delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/inline-delete.png -------------------------------------------------------------------------------- /media/css/images/inline-restore-8bit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/inline-restore-8bit.png -------------------------------------------------------------------------------- /media/css/images/inline-restore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/inline-restore.png -------------------------------------------------------------------------------- /media/css/images/inline-splitter-bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/inline-splitter-bg.gif -------------------------------------------------------------------------------- /media/css/images/menu-key.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/menu-key.gif -------------------------------------------------------------------------------- /media/css/images/menu-month-bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/menu-month-bg.gif -------------------------------------------------------------------------------- /media/css/images/nav-bg-grabber.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/nav-bg-grabber.gif -------------------------------------------------------------------------------- /media/css/images/nav-bg-reverse.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/nav-bg-reverse.gif -------------------------------------------------------------------------------- /media/css/images/nav-bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/nav-bg.gif -------------------------------------------------------------------------------- /media/css/images/photo_60x60.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/photo_60x60.jpg -------------------------------------------------------------------------------- /media/css/images/photo_60x60.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/photo_60x60.psd -------------------------------------------------------------------------------- /media/css/images/rounded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/rounded.png -------------------------------------------------------------------------------- /media/css/images/selector-add.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/selector-add.gif -------------------------------------------------------------------------------- /media/css/images/selector-addall.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/selector-addall.gif -------------------------------------------------------------------------------- /media/css/images/selector-remove.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/selector-remove.gif -------------------------------------------------------------------------------- /media/css/images/selector-removeall.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/selector-removeall.gif -------------------------------------------------------------------------------- /media/css/images/selector-search.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/selector-search.gif -------------------------------------------------------------------------------- /media/css/images/selector_stacked-add.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/selector_stacked-add.gif -------------------------------------------------------------------------------- /media/css/images/selector_stacked-remove.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/selector_stacked-remove.gif -------------------------------------------------------------------------------- /media/css/images/status-complete.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/status-complete.gif -------------------------------------------------------------------------------- /media/css/images/status-incomplete.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/status-incomplete.gif -------------------------------------------------------------------------------- /media/css/images/switch_minus.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/switch_minus.gif -------------------------------------------------------------------------------- /media/css/images/switch_plus.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/switch_plus.gif -------------------------------------------------------------------------------- /media/css/images/tool-left.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/tool-left.gif -------------------------------------------------------------------------------- /media/css/images/tool-left_over.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/tool-left_over.gif -------------------------------------------------------------------------------- /media/css/images/tool-right.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/tool-right.gif -------------------------------------------------------------------------------- /media/css/images/tool-right_over.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/tool-right_over.gif -------------------------------------------------------------------------------- /media/css/images/tooltag-add.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/tooltag-add.gif -------------------------------------------------------------------------------- /media/css/images/tooltag-add_over.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/tooltag-add_over.gif -------------------------------------------------------------------------------- /media/css/images/tooltag-arrowright.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/tooltag-arrowright.gif -------------------------------------------------------------------------------- /media/css/images/tooltag-arrowright_over.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/tooltag-arrowright_over.gif -------------------------------------------------------------------------------- /media/css/images/ui-bg_flat_0_aaaaaa_40x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/ui-bg_flat_0_aaaaaa_40x100.png -------------------------------------------------------------------------------- /media/css/images/ui-bg_glass_55_fbf9ee_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/ui-bg_glass_55_fbf9ee_1x400.png -------------------------------------------------------------------------------- /media/css/images/ui-bg_glass_65_ffffff_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/ui-bg_glass_65_ffffff_1x400.png -------------------------------------------------------------------------------- /media/css/images/ui-bg_glass_75_dadada_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/ui-bg_glass_75_dadada_1x400.png -------------------------------------------------------------------------------- /media/css/images/ui-bg_glass_75_e6e6e6_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/ui-bg_glass_75_e6e6e6_1x400.png -------------------------------------------------------------------------------- /media/css/images/ui-bg_glass_75_ffffff_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/ui-bg_glass_75_ffffff_1x400.png -------------------------------------------------------------------------------- /media/css/images/ui-bg_highlight-soft_75_cccccc_1x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/ui-bg_highlight-soft_75_cccccc_1x100.png -------------------------------------------------------------------------------- /media/css/images/ui-bg_inset-soft_95_fef1ec_1x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/ui-bg_inset-soft_95_fef1ec_1x100.png -------------------------------------------------------------------------------- /media/css/images/ui-icons_222222_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/ui-icons_222222_256x240.png -------------------------------------------------------------------------------- /media/css/images/ui-icons_2e83ff_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/ui-icons_2e83ff_256x240.png -------------------------------------------------------------------------------- /media/css/images/ui-icons_454545_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/ui-icons_454545_256x240.png -------------------------------------------------------------------------------- /media/css/images/ui-icons_888888_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/ui-icons_888888_256x240.png -------------------------------------------------------------------------------- /media/css/images/ui-icons_cd0a0a_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/css/images/ui-icons_cd0a0a_256x240.png -------------------------------------------------------------------------------- /media/css/reset.css: -------------------------------------------------------------------------------- 1 | /* Resets 2 | ----------------------------------------------- */ 3 | html, body, div, span, applet, object, iframe, 4 | h1, h2, h3, h4, h5, h6, p, blockquote, pre, 5 | a, abbr, acronym, address, big, cite, code, 6 | del, dfn, em, font, img, ins, kbd, q, s, samp, 7 | small, strike, strong, sub, sup, tt, var, 8 | dl, dt, dd, ol, ul, li, 9 | fieldset, form, label, legend, 10 | table, caption, tbody, tfoot, thead, tr, th, td { 11 | margin: 0; 12 | padding: 0; 13 | border: 0; 14 | outline: 0; 15 | font-weight: inherit; 16 | font-style: inherit; 17 | font-size: 100%; 18 | font-family: inherit; 19 | vertical-align: baseline; 20 | } 21 | /* remember to define focus styles! */ 22 | :focus { 23 | outline: 0; 24 | } 25 | body { 26 | line-height: 1; 27 | color: black; 28 | background: white; 29 | } 30 | ol, ul { 31 | list-style: none; 32 | } 33 | /* tables still need 'cellspacing="0"' in the markup */ 34 | table { 35 | border-collapse: separate; 36 | border-spacing: 0; 37 | } 38 | caption, th, td { 39 | text-align: left; 40 | font-weight: normal; 41 | } 42 | 43 | /* whoever thought blue linked image borders were a good idea? */ 44 | a img,:link img,:visited img { border:none } -------------------------------------------------------------------------------- /media/highslide/graphics/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/highslide/graphics/close.png -------------------------------------------------------------------------------- /media/highslide/graphics/closeX.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/highslide/graphics/closeX.png -------------------------------------------------------------------------------- /media/highslide/graphics/controlbar-black-border.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/highslide/graphics/controlbar-black-border.gif -------------------------------------------------------------------------------- /media/highslide/graphics/controlbar-text-buttons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/highslide/graphics/controlbar-text-buttons.png -------------------------------------------------------------------------------- /media/highslide/graphics/controlbar-white-small.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/highslide/graphics/controlbar-white-small.gif -------------------------------------------------------------------------------- /media/highslide/graphics/controlbar-white.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/highslide/graphics/controlbar-white.gif -------------------------------------------------------------------------------- /media/highslide/graphics/controlbar2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/highslide/graphics/controlbar2.gif -------------------------------------------------------------------------------- /media/highslide/graphics/controlbar3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/highslide/graphics/controlbar3.gif -------------------------------------------------------------------------------- /media/highslide/graphics/controlbar4-hover.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/highslide/graphics/controlbar4-hover.gif -------------------------------------------------------------------------------- /media/highslide/graphics/controlbar4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/highslide/graphics/controlbar4.gif -------------------------------------------------------------------------------- /media/highslide/graphics/fullexpand.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/highslide/graphics/fullexpand.gif -------------------------------------------------------------------------------- /media/highslide/graphics/geckodimmer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/highslide/graphics/geckodimmer.png -------------------------------------------------------------------------------- /media/highslide/graphics/icon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/highslide/graphics/icon.gif -------------------------------------------------------------------------------- /media/highslide/graphics/loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/highslide/graphics/loader.gif -------------------------------------------------------------------------------- /media/highslide/graphics/loader.white.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/highslide/graphics/loader.white.gif -------------------------------------------------------------------------------- /media/highslide/graphics/outlines/Outlines.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/highslide/graphics/outlines/Outlines.psd -------------------------------------------------------------------------------- /media/highslide/graphics/outlines/beveled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/highslide/graphics/outlines/beveled.png -------------------------------------------------------------------------------- /media/highslide/graphics/outlines/drop-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/highslide/graphics/outlines/drop-shadow.png -------------------------------------------------------------------------------- /media/highslide/graphics/outlines/glossy-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/highslide/graphics/outlines/glossy-dark.png -------------------------------------------------------------------------------- /media/highslide/graphics/outlines/outer-glow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/highslide/graphics/outlines/outer-glow.png -------------------------------------------------------------------------------- /media/highslide/graphics/outlines/rounded-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/highslide/graphics/outlines/rounded-black.png -------------------------------------------------------------------------------- /media/highslide/graphics/outlines/rounded-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/highslide/graphics/outlines/rounded-white.png -------------------------------------------------------------------------------- /media/highslide/graphics/resize.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/highslide/graphics/resize.gif -------------------------------------------------------------------------------- /media/highslide/graphics/scrollarrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/highslide/graphics/scrollarrows.png -------------------------------------------------------------------------------- /media/highslide/graphics/zoomin.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/highslide/graphics/zoomin.cur -------------------------------------------------------------------------------- /media/highslide/graphics/zoomout.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/highslide/graphics/zoomout.cur -------------------------------------------------------------------------------- /media/highslide/highslide-full.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/highslide/highslide-full.js -------------------------------------------------------------------------------- /media/highslide/highslide-full.packed.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/highslide/highslide-full.packed.js -------------------------------------------------------------------------------- /media/highslide/highslide-ie6.css: -------------------------------------------------------------------------------- 1 | .closebutton { 2 | /* NOTE! This URL is relative to the HTML page, not the CSS */ 3 | filter:progid:DXImageTransform.Microsoft.AlphaImageLoader( 4 | src='../highslide/graphics/close.png', sizingMethod='scale'); 5 | 6 | background: none; 7 | cursor: hand; 8 | } 9 | 10 | /* Viewport fixed hack */ 11 | .highslide-viewport { 12 | position: absolute; 13 | left: expression( ( ( ignoreMe1 = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) ) + 'px' ); 14 | top: expression( ( ignoreMe2 = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) + 'px' ); 15 | width: expression( ( ( ignoreMe3 = document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.clientWidth ) ) + 'px' ); 16 | height: expression( ( ( ignoreMe4 = document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight ) ) + 'px' ); 17 | } 18 | 19 | /* Thumbstrip PNG fix */ 20 | .highslide-scroll-down, .highslide-scroll-up { 21 | position: relative; 22 | overflow: hidden; 23 | } 24 | .highslide-scroll-down div, .highslide-scroll-up div { 25 | /* NOTE! This URL is relative to the HTML page, not the CSS */ 26 | filter:progid:DXImageTransform.Microsoft.AlphaImageLoader( 27 | src='/highslide/graphics/scrollarrows.png', sizingMethod='scale'); 28 | background: none !important; 29 | position: absolute; 30 | cursor: hand; 31 | width: 75px; 32 | height: 75px !important; 33 | } 34 | .highslide-thumbstrip-horizontal .highslide-scroll-down div { 35 | left: -50px; 36 | top: -15px; 37 | } 38 | .highslide-thumbstrip-horizontal .highslide-scroll-up div { 39 | top: -15px; 40 | } 41 | .highslide-thumbstrip-vertical .highslide-scroll-down div { 42 | top: -50px; 43 | } 44 | 45 | /* Thumbstrip marker arrow trasparent background fix */ 46 | .highslide-thumbstrip .highslide-marker { 47 | border-color: white; /* match the background */ 48 | } 49 | .dark .highslide-thumbstrip-horizontal .highslide-marker { 50 | border-color: #111; 51 | } 52 | .highslide-viewport .highslide-marker { 53 | border-color: #333; 54 | } 55 | .highslide-thumbstrip { 56 | float: left; 57 | } 58 | 59 | /* Positioning fixes for the control bar */ 60 | .text-controls .highslide-controls { 61 | width: 480px; 62 | } 63 | .text-controls a span { 64 | width: 4em; 65 | } 66 | .text-controls .highslide-full-expand a span { 67 | width: 0; 68 | } 69 | .text-controls .highslide-close a span { 70 | width: 0; 71 | } 72 | -------------------------------------------------------------------------------- /media/highslide/highslide-with-gallery.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/highslide/highslide-with-gallery.js -------------------------------------------------------------------------------- /media/highslide/highslide-with-gallery.packed.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/highslide/highslide-with-gallery.packed.js -------------------------------------------------------------------------------- /media/highslide/highslide-with-html.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/highslide/highslide-with-html.js -------------------------------------------------------------------------------- /media/highslide/highslide-with-html.packed.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/highslide/highslide-with-html.packed.js -------------------------------------------------------------------------------- /media/highslide/highslide.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/highslide/highslide.js -------------------------------------------------------------------------------- /media/highslide/highslide.packed.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/highslide/highslide.packed.js -------------------------------------------------------------------------------- /media/img/ajax-loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyl/Django-School/723d52db2cd3bc7665680a3adaf8687f97836d48/media/img/ajax-loader.gif -------------------------------------------------------------------------------- /media/js/admin-expand.js: -------------------------------------------------------------------------------- 1 | /* Selectively expands and collapses installed Django apps in the main Django 2 | * Admin page. If jquery.cookie.js [1] is available, it will remember which apps you 3 | * have expanded. 4 | * 5 | * .. [1] http://dev.jquery.com/browser/trunk/plugins/cookie/jquery.cookie.js 6 | */ 7 | 8 | $(document).ready(function() { 9 | var cookie_name = "admin_expanded"; 10 | var delim = "|"; 11 | var admin_expanded = []; 12 | var base_selector = $("body.dashboard #content-main .module caption"); 13 | 14 | // if the cookie plugin is available 15 | if ($.isFunction($.cookie)) { 16 | // put any expanded modules in the expanded list 17 | $.each(($.cookie(cookie_name) || "").split(delim), function(index, obj) { 18 | if (obj) { admin_expanded.push(base_selector.filter("caption:contains('"+obj+"')")[0]); } 19 | }); 20 | } 21 | 22 | // minor usability fix 23 | base_selector.css("width", "100%").css("cursor", "pointer"); 24 | 25 | // collapse all modules that aren't remembered in the cookie 26 | base_selector.not(admin_expanded).siblings('tbody').hide(); 27 | 28 | // toggle on click 29 | base_selector.click(function(){ 30 | $(this).siblings('tbody').animate({opacity: 'toggle'}, "fast", null, function(){ 31 | // if the cookie plugin is available 32 | if ($.isFunction($.cookie)) { 33 | // set or remove this module in the cookie 34 | t = $(this).siblings('caption').text(); 35 | j = ($.cookie(cookie_name) || "").split(delim); 36 | if (j.indexOf(t) != -1) { 37 | j.splice(j.indexOf(t), 1); 38 | } else { 39 | j.push(t); 40 | } 41 | $.cookie(cookie_name, j.join("|")); 42 | } 43 | }); 44 | }); 45 | }); 46 | 47 | -------------------------------------------------------------------------------- /media/js/jqDnR.js: -------------------------------------------------------------------------------- 1 | /* 2 | * jqDnR - Minimalistic Drag'n'Resize for jQuery. 3 | * 4 | * Copyright (c) 2007 Brice Burgessvideo goes here
14 | 15 | 22 | 23 | {% endblock %} 24 | -------------------------------------------------------------------------------- /media_logs/templates/media_logs/audio_list.html: -------------------------------------------------------------------------------- 1 | {% extends "media/base_audio.html" %} 2 | 3 | 4 | {% block title %}Audios{% endblock %} 5 | 6 | 7 | {% block content_title %} 8 |video goes here
15 | 16 | 23 | 24 | {{sql_queries}} 25 | {% endblock %} 26 | -------------------------------------------------------------------------------- /media_logs/templates/media_logs/video_list.html: -------------------------------------------------------------------------------- 1 | {% extends "media_logs/base_videos.html" %} 2 | 3 | 4 | {% block title %}Videos{% endblock %} 5 | 6 | 7 | {% block content_title %} 8 |Your payment has been received. Thank you.
8 | {% else %} 9 |{{ person.description }}
4 | 5 | -------------------------------------------------------------------------------- /templates/our_people/person_list.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block extrahead %} 4 | {% endblock %} 5 | 6 | {% block content %} 7 |To find out more about our people click on the picture
9 | 10 |Please use the following form to update student information.
6 | 7 | 16 | 17 | {% endblock %} 18 | -------------------------------------------------------------------------------- /templates/records/apply.html: -------------------------------------------------------------------------------- 1 | {% extends "records/base.html" %} 2 | 3 | {% block content %} 4 | 5 |This is the introduction section or explanatory paragraph.
7 | 8 | 30 | 31 | {% endblock %} 32 | 33 | -------------------------------------------------------------------------------- /templates/records/base.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {% block head %} 4 |Please use the following form to update student information.
6 | 7 | 16 | 17 | {% endblock %} 18 | -------------------------------------------------------------------------------- /templates/records/changeVol.html: -------------------------------------------------------------------------------- 1 | {% extends "records/base.html" %} 2 | 3 | {% block content %} 4 |Volunteer help is essential to controlling costs and providing many of the fine programs at our school. Parents have a 6 | special interest in seeing that their children are well served. Grandparents and other relatives are also encouraged to 7 | participate. Below is a list of areas where volunteer help is needed for effective school operation. Where can you help?
8 |
Comments
42 | {% for comment in comment_list %} 43 | {% if comment.is_public %} 44 |46 | {{ forloop.counter }} 47 | {% if comment.user_url %}{{ comment.user_name }}{% else %}{{ comment.user_name }}{% endif %} says... 48 |
49 | {{ comment.comment|urlizetrunc:"60"|markdown:"safe" }} 50 |Posted at {{ comment.submit_date|date:"P" }} on {{ comment.submit_date|date:"F j, Y" }}
51 |