├── apps ├── __init__.py └── volontulo │ ├── views │ ├── admin.py │ └── admin_panel.py │ ├── migrations │ ├── __init__.py │ ├── 0007_remove_page_slug.py │ ├── 0002_userprofile_phone_no.py │ ├── 0004_auto_20151118_1157.py │ ├── 0003_offer_weight.py │ ├── 0005_removing_badges.py │ └── 0006_page.py │ ├── tests │ ├── forms │ │ └── __init__.py │ ├── __init__.py │ ├── views │ │ ├── __init__.py │ │ ├── offers │ │ │ ├── __init__.py │ │ │ ├── test_offer_delete.py │ │ │ ├── test_offer_accept.py │ │ │ ├── test_offers_list.py │ │ │ ├── commons.py │ │ │ └── test_offers_archived.py │ │ ├── test_newsletter.py │ │ └── test_organizations.py │ └── models │ │ ├── __init__.py │ │ ├── test_organization.py │ │ └── test_userprofile.py │ ├── templates │ ├── emails │ │ ├── password_reset.subject │ │ ├── registration.txt │ │ ├── password_reset.txt │ │ ├── volunteer_to_organisation.txt │ │ ├── volunteer_to_admin.txt │ │ ├── offer_creation.txt │ │ ├── offer_application.txt │ │ ├── registration.html │ │ ├── base.txt │ │ ├── password_reset.html │ │ ├── offer_creation.html │ │ ├── site_owner_details.html │ │ ├── user_layout.html │ │ ├── base.html │ │ ├── volunteer_to_organisation.html │ │ ├── admin_layout.html │ │ ├── volunteer_to_admin.html │ │ └── offer_application.html │ ├── common │ │ ├── messages.html │ │ ├── col1.html │ │ ├── labeled_status.html │ │ ├── col2.html │ │ ├── sub-footer.html │ │ ├── base.html │ │ ├── footer.html │ │ └── header.html │ ├── 500.html │ ├── 404.html │ ├── contact.html │ ├── newsletter_signup.html │ ├── pages │ │ ├── page_detail.html │ │ ├── page_edit_form.html │ │ ├── regulations.html │ │ ├── office.html │ │ ├── page_list.html │ │ ├── faq-volunteers.html │ │ ├── faq-organizations.html │ │ └── about-us.html │ ├── users │ │ ├── gallery.html │ │ ├── user_profile.html │ │ └── my_offers.html │ ├── admin │ │ └── offers_nav.html │ ├── auth │ │ ├── password_reset_confirm.html │ │ ├── password_reset.html │ │ └── login.html │ ├── organizations │ │ ├── list.html │ │ ├── gallery.html │ │ ├── organization_view.html │ │ ├── organization_form.html │ │ └── organization_offers.html │ ├── offers │ │ ├── applied_volunteers.html │ │ ├── archived.html │ │ ├── gallery.html │ │ ├── reorder.html │ │ └── offers_list.html │ └── contact_form.html │ ├── __init__.py │ ├── lib │ ├── __init__.py │ └── email.py │ ├── templatetags │ ├── __init__.py │ ├── labeled_status.py │ ├── offer_utilities.py │ └── main_image.py │ ├── frontend │ ├── img │ │ ├── favicon.ico │ │ ├── doodle_help.png │ │ ├── volo_logo.png │ │ ├── doodle_create.png │ │ ├── logo │ │ │ ├── logo-wrk.png │ │ │ ├── logo-komitywa.png │ │ │ ├── logo-stx-next.png │ │ │ └── logo-koduj-dla-polski.png │ │ ├── doodle_contact.png │ │ ├── volo_mail_logo.png │ │ ├── volontulo_baner.png │ │ └── doodle_reg_confirm.png │ ├── scss │ │ ├── open-sans │ │ │ ├── _variables.scss │ │ │ ├── _Bold.scss │ │ │ ├── _Light.scss │ │ │ ├── _Italic.scss │ │ │ ├── _Regular.scss │ │ │ ├── _Semibold.scss │ │ │ ├── _ExtraBold.scss │ │ │ ├── _BoldItalic.scss │ │ │ ├── _LightItalic.scss │ │ │ ├── _SemiboldItalic.scss │ │ │ ├── _ExtraBoldItalic.scss │ │ │ └── _mixins.scss │ │ ├── bootstrap │ │ │ ├── mixins │ │ │ │ ├── _center-block.scss │ │ │ │ ├── _opacity.scss │ │ │ │ ├── _size.scss │ │ │ │ ├── _text-overflow.scss │ │ │ │ ├── _tab-focus.scss │ │ │ │ ├── _labels.scss │ │ │ │ ├── _resize.scss │ │ │ │ ├── _progress-bar.scss │ │ │ │ ├── _text-emphasis.scss │ │ │ │ ├── _reset-filter.scss │ │ │ │ ├── _nav-divider.scss │ │ │ │ ├── _background-variant.scss │ │ │ │ ├── _alerts.scss │ │ │ │ ├── _nav-vertical-align.scss │ │ │ │ ├── _reset-text.scss │ │ │ │ ├── _border-radius.scss │ │ │ │ ├── _pagination.scss │ │ │ │ ├── _responsive-visibility.scss │ │ │ │ ├── _panels.scss │ │ │ │ ├── _hide-text.scss │ │ │ │ ├── _clearfix.scss │ │ │ │ ├── _list-group.scss │ │ │ │ ├── _table-row.scss │ │ │ │ ├── _image.scss │ │ │ │ ├── _buttons.scss │ │ │ │ ├── _grid-framework.scss │ │ │ │ └── _forms.scss │ │ │ ├── _wells.scss │ │ │ ├── _responsive-embed.scss │ │ │ ├── _breadcrumbs.scss │ │ │ ├── _close.scss │ │ │ ├── _component-animations.scss │ │ │ ├── _utilities.scss │ │ │ ├── _thumbnails.scss │ │ │ ├── _pager.scss │ │ │ ├── _mixins.scss │ │ │ ├── _media.scss │ │ │ ├── _jumbotron.scss │ │ │ ├── _labels.scss │ │ │ ├── _code.scss │ │ │ ├── _grid.scss │ │ │ ├── _alerts.scss │ │ │ ├── _progress-bars.scss │ │ │ ├── _pagination.scss │ │ │ ├── _print.scss │ │ │ └── _tooltip.scss │ │ ├── iconify │ │ │ ├── icons.fallback.scss │ │ │ ├── icons.svg.scss │ │ │ └── icons.png.scss │ │ ├── customization │ │ │ ├── _extended-media.scss │ │ │ ├── _extended-thumbnail.scss │ │ │ ├── _auto-clear.scss │ │ │ └── _customization-variables.scss │ │ └── bootstrap.scss │ ├── fonts │ │ ├── open-sans │ │ │ ├── Bold │ │ │ │ ├── OpenSans-Bold.eot │ │ │ │ ├── OpenSans-Bold.ttf │ │ │ │ ├── OpenSans-Bold.woff │ │ │ │ └── OpenSans-Bold.woff2 │ │ │ ├── Light │ │ │ │ ├── OpenSans-Light.eot │ │ │ │ ├── OpenSans-Light.ttf │ │ │ │ ├── OpenSans-Light.woff │ │ │ │ └── OpenSans-Light.woff2 │ │ │ ├── Italic │ │ │ │ ├── OpenSans-Italic.eot │ │ │ │ ├── OpenSans-Italic.ttf │ │ │ │ ├── OpenSans-Italic.woff │ │ │ │ └── OpenSans-Italic.woff2 │ │ │ ├── Regular │ │ │ │ ├── OpenSans-Regular.eot │ │ │ │ ├── OpenSans-Regular.ttf │ │ │ │ ├── OpenSans-Regular.woff │ │ │ │ └── OpenSans-Regular.woff2 │ │ │ ├── Semibold │ │ │ │ ├── OpenSans-Semibold.eot │ │ │ │ ├── OpenSans-Semibold.ttf │ │ │ │ ├── OpenSans-Semibold.woff │ │ │ │ └── OpenSans-Semibold.woff2 │ │ │ ├── ExtraBold │ │ │ │ ├── OpenSans-ExtraBold.eot │ │ │ │ ├── OpenSans-ExtraBold.ttf │ │ │ │ ├── OpenSans-ExtraBold.woff │ │ │ │ └── OpenSans-ExtraBold.woff2 │ │ │ ├── BoldItalic │ │ │ │ ├── OpenSans-BoldItalic.eot │ │ │ │ ├── OpenSans-BoldItalic.ttf │ │ │ │ ├── OpenSans-BoldItalic.woff │ │ │ │ └── OpenSans-BoldItalic.woff2 │ │ │ ├── LightItalic │ │ │ │ ├── OpenSans-LightItalic.eot │ │ │ │ ├── OpenSans-LightItalic.ttf │ │ │ │ ├── OpenSans-LightItalic.woff │ │ │ │ └── OpenSans-LightItalic.woff2 │ │ │ ├── SemiboldItalic │ │ │ │ ├── OpenSans-SemiboldItalic.eot │ │ │ │ ├── OpenSans-SemiboldItalic.ttf │ │ │ │ ├── OpenSans-SemiboldItalic.woff │ │ │ │ └── OpenSans-SemiboldItalic.woff2 │ │ │ └── ExtraBoldItalic │ │ │ │ ├── OpenSans-ExtraBoldItalic.eot │ │ │ │ ├── OpenSans-ExtraBoldItalic.ttf │ │ │ │ ├── OpenSans-ExtraBoldItalic.woff │ │ │ │ └── OpenSans-ExtraBoldItalic.woff2 │ │ └── bootstrap │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ └── glyphicons-halflings-regular.woff2 │ ├── icons │ │ ├── template │ │ │ └── icon_gen.scss.mustache │ │ └── asterisk.svg │ └── javascripts │ │ ├── cookielaw │ │ └── js │ │ │ └── cookielaw.js │ │ └── bootstrap │ │ ├── transition.js │ │ └── alert.js │ ├── package.json │ ├── admin.py │ ├── gulpfile.js │ └── utils.py ├── volontulo_org ├── __init__.py ├── settings │ ├── __init__.py │ ├── production.py │ └── dev.py ├── wsgi.py └── urls.py ├── MANIFEST.in ├── requirements ├── production.txt ├── base.txt └── dev.txt ├── bin ├── install_dependencies └── setup ├── manage.py ├── etc ├── local_config.yaml.sample └── pre-commit ├── PULL_REQUEST_TEMPLATE ├── .travis.yml ├── initial └── data.json ├── LICENSE ├── .gitignore ├── fabfile.py ├── setup.py └── README.md /apps/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /volontulo_org/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/volontulo/views/admin.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/volontulo/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /volontulo_org/settings/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/volontulo/tests/forms/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | -------------------------------------------------------------------------------- /apps/volontulo/templates/emails/password_reset.subject: -------------------------------------------------------------------------------- 1 | Reset hasła na Volontulo 2 | -------------------------------------------------------------------------------- /apps/volontulo/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | """ 4 | .. module:: __init__ 5 | """ 6 | -------------------------------------------------------------------------------- /apps/volontulo/lib/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | u""" 4 | .. module:: __init__ 5 | """ 6 | -------------------------------------------------------------------------------- /apps/volontulo/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | u""" 4 | .. module:: __init__ 5 | """ 6 | -------------------------------------------------------------------------------- /apps/volontulo/tests/views/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | u""" 4 | .. module:: __init__ 5 | """ 6 | -------------------------------------------------------------------------------- /apps/volontulo/templatetags/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | u""" 4 | .. module:: __init__ 5 | """ 6 | -------------------------------------------------------------------------------- /apps/volontulo/tests/models/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | u""" 4 | .. module:: __init__ 5 | """ 6 | -------------------------------------------------------------------------------- /apps/volontulo/tests/views/offers/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | u""" 4 | .. module:: __init__ 5 | """ 6 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include LICENSE 2 | include README.md 3 | recursive-include volontulo/static * 4 | recursive-include volontulo/templates * 5 | -------------------------------------------------------------------------------- /apps/volontulo/frontend/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/img/favicon.ico -------------------------------------------------------------------------------- /apps/volontulo/frontend/img/doodle_help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/img/doodle_help.png -------------------------------------------------------------------------------- /apps/volontulo/frontend/img/volo_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/img/volo_logo.png -------------------------------------------------------------------------------- /requirements/production.txt: -------------------------------------------------------------------------------- 1 | -r base.txt # includes base.txt requirements file 2 | 3 | psycopg2==2.6 4 | 5 | # Extra content goes here: 6 | -------------------------------------------------------------------------------- /apps/volontulo/frontend/img/doodle_create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/img/doodle_create.png -------------------------------------------------------------------------------- /apps/volontulo/frontend/img/logo/logo-wrk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/img/logo/logo-wrk.png -------------------------------------------------------------------------------- /apps/volontulo/frontend/scss/open-sans/_variables.scss: -------------------------------------------------------------------------------- 1 | $OpenSansPath: "../fonts/open-sans" !default; 2 | $OpenSansVersion: "1.1.0" !default; 3 | -------------------------------------------------------------------------------- /apps/volontulo/frontend/img/doodle_contact.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/img/doodle_contact.png -------------------------------------------------------------------------------- /apps/volontulo/frontend/img/volo_mail_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/img/volo_mail_logo.png -------------------------------------------------------------------------------- /apps/volontulo/frontend/img/volontulo_baner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/img/volontulo_baner.png -------------------------------------------------------------------------------- /apps/volontulo/frontend/img/doodle_reg_confirm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/img/doodle_reg_confirm.png -------------------------------------------------------------------------------- /apps/volontulo/frontend/img/logo/logo-komitywa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/img/logo/logo-komitywa.png -------------------------------------------------------------------------------- /apps/volontulo/frontend/img/logo/logo-stx-next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/img/logo/logo-stx-next.png -------------------------------------------------------------------------------- /apps/volontulo/frontend/img/logo/logo-koduj-dla-polski.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/img/logo/logo-koduj-dla-polski.png -------------------------------------------------------------------------------- /volontulo_org/settings/production.py: -------------------------------------------------------------------------------- 1 | """ 2 | Production Settings File 3 | """ 4 | # pylint: skip=file 5 | 6 | from .base import * 7 | 8 | # Extra settings go here: 9 | -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/Bold/OpenSans-Bold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/Bold/OpenSans-Bold.eot -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/Bold/OpenSans-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/Bold/OpenSans-Bold.ttf -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/Bold/OpenSans-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/Bold/OpenSans-Bold.woff -------------------------------------------------------------------------------- /apps/volontulo/templates/common/messages.html: -------------------------------------------------------------------------------- 1 | {% load bootstrap3 %} 2 | {% if messages %} 3 |
6 | {% endif %} 7 | -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/Bold/OpenSans-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/Bold/OpenSans-Bold.woff2 -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/Light/OpenSans-Light.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/Light/OpenSans-Light.eot -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/Light/OpenSans-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/Light/OpenSans-Light.ttf -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/Light/OpenSans-Light.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/Light/OpenSans-Light.woff -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/Italic/OpenSans-Italic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/Italic/OpenSans-Italic.eot -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/Italic/OpenSans-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/Italic/OpenSans-Italic.ttf -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/Italic/OpenSans-Italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/Italic/OpenSans-Italic.woff -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/Italic/OpenSans-Italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/Italic/OpenSans-Italic.woff2 -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/Light/OpenSans-Light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/Light/OpenSans-Light.woff2 -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/Regular/OpenSans-Regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/Regular/OpenSans-Regular.eot -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/Regular/OpenSans-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/Regular/OpenSans-Regular.ttf -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/Regular/OpenSans-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/Regular/OpenSans-Regular.woff -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/Regular/OpenSans-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/Regular/OpenSans-Regular.woff2 -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/Semibold/OpenSans-Semibold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/Semibold/OpenSans-Semibold.eot -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/Semibold/OpenSans-Semibold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/Semibold/OpenSans-Semibold.ttf -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/bootstrap/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/bootstrap/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/bootstrap/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/bootstrap/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/bootstrap/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/bootstrap/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/ExtraBold/OpenSans-ExtraBold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/ExtraBold/OpenSans-ExtraBold.eot -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/ExtraBold/OpenSans-ExtraBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/ExtraBold/OpenSans-ExtraBold.ttf -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/ExtraBold/OpenSans-ExtraBold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/ExtraBold/OpenSans-ExtraBold.woff -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/Semibold/OpenSans-Semibold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/Semibold/OpenSans-Semibold.woff -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/Semibold/OpenSans-Semibold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/Semibold/OpenSans-Semibold.woff2 -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/bootstrap/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/bootstrap/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/BoldItalic/OpenSans-BoldItalic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/BoldItalic/OpenSans-BoldItalic.eot -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/BoldItalic/OpenSans-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/BoldItalic/OpenSans-BoldItalic.ttf -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/BoldItalic/OpenSans-BoldItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/BoldItalic/OpenSans-BoldItalic.woff -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/ExtraBold/OpenSans-ExtraBold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/ExtraBold/OpenSans-ExtraBold.woff2 -------------------------------------------------------------------------------- /bin/install_dependencies: -------------------------------------------------------------------------------- 1 | #!/bin/bash -e 2 | 3 | apt-get update 4 | apt-get build-dep -y python-imaging 5 | apt-get install -y python-virtualenv libjpeg8 libjpeg62-dev libfreetype6 libfreetype6-dev npm 6 | -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/BoldItalic/OpenSans-BoldItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/BoldItalic/OpenSans-BoldItalic.woff2 -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/LightItalic/OpenSans-LightItalic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/LightItalic/OpenSans-LightItalic.eot -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/LightItalic/OpenSans-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/LightItalic/OpenSans-LightItalic.ttf -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/LightItalic/OpenSans-LightItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/LightItalic/OpenSans-LightItalic.woff -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/LightItalic/OpenSans-LightItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/LightItalic/OpenSans-LightItalic.woff2 -------------------------------------------------------------------------------- /apps/volontulo/templates/500.html: -------------------------------------------------------------------------------- 1 | {% extends "common/col1.html" %} 2 | 3 | {% block title %}Błąd serwera{% endblock %} 4 | 5 | {% block content %} 6 |Wewnętrzny błąd serwera
7 | {% endblock %} 8 | -------------------------------------------------------------------------------- /apps/volontulo/frontend/scss/bootstrap/mixins/_center-block.scss: -------------------------------------------------------------------------------- 1 | // Center-align a block level element 2 | 3 | @mixin center-block() { 4 | display: block; 5 | margin-left: auto; 6 | margin-right: auto; 7 | } 8 | -------------------------------------------------------------------------------- /apps/volontulo/templates/404.html: -------------------------------------------------------------------------------- 1 | {% extends "common/col1.html" %} 2 | 3 | {% block title %}Strona nie znaleziona{% endblock %} 4 | 5 | {% block content %} 6 |Strona nie znaleziona
7 | {% endblock %} 8 | -------------------------------------------------------------------------------- /requirements/base.txt: -------------------------------------------------------------------------------- 1 | Django==1.8.4 2 | django-bootstrap3==6.2.2 3 | django-cookie-law==1.0.6 4 | logilab-common==1.0.2 5 | Pillow==3.0.0 6 | pyyaml==3.11 7 | six==1.9.0 8 | unipath==1.1 9 | wheel==0.24.0 10 | -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/SemiboldItalic/OpenSans-SemiboldItalic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/SemiboldItalic/OpenSans-SemiboldItalic.eot -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/SemiboldItalic/OpenSans-SemiboldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/SemiboldItalic/OpenSans-SemiboldItalic.ttf -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/SemiboldItalic/OpenSans-SemiboldItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/SemiboldItalic/OpenSans-SemiboldItalic.woff -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/ExtraBoldItalic/OpenSans-ExtraBoldItalic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/ExtraBoldItalic/OpenSans-ExtraBoldItalic.eot -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/ExtraBoldItalic/OpenSans-ExtraBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/ExtraBoldItalic/OpenSans-ExtraBoldItalic.ttf -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/ExtraBoldItalic/OpenSans-ExtraBoldItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/ExtraBoldItalic/OpenSans-ExtraBoldItalic.woff -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/SemiboldItalic/OpenSans-SemiboldItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/SemiboldItalic/OpenSans-SemiboldItalic.woff2 -------------------------------------------------------------------------------- /apps/volontulo/frontend/fonts/open-sans/ExtraBoldItalic/OpenSans-ExtraBoldItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stxnext-csr/volontulo/HEAD/apps/volontulo/frontend/fonts/open-sans/ExtraBoldItalic/OpenSans-ExtraBoldItalic.woff2 -------------------------------------------------------------------------------- /apps/volontulo/frontend/scss/bootstrap/mixins/_opacity.scss: -------------------------------------------------------------------------------- 1 | // Opacity 2 | 3 | @mixin opacity($opacity) { 4 | opacity: $opacity; 5 | // IE8 filter 6 | $opacity-ie: ($opacity * 100); 7 | filter: alpha(opacity=$opacity-ie); 8 | } 9 | -------------------------------------------------------------------------------- /apps/volontulo/frontend/scss/bootstrap/mixins/_size.scss: -------------------------------------------------------------------------------- 1 | // Sizing shortcuts 2 | 3 | @mixin size($width, $height) { 4 | width: $width; 5 | height: $height; 6 | } 7 | 8 | @mixin square($size) { 9 | @include size($size, $size); 10 | } 11 | -------------------------------------------------------------------------------- /apps/volontulo/frontend/scss/open-sans/_Bold.scss: -------------------------------------------------------------------------------- 1 | /* BEGIN Bold */ 2 | @font-face { 3 | font-family: 'Open Sans'; 4 | @include fontdef($OpenSansPath, $OpenSansVersion, "Bold"); 5 | font-weight: bold; 6 | font-style: normal; 7 | } 8 | /* END Bold */ 9 | -------------------------------------------------------------------------------- /apps/volontulo/frontend/scss/open-sans/_Light.scss: -------------------------------------------------------------------------------- 1 | /* BEGIN Light */ 2 | @font-face { 3 | font-family: 'Open Sans'; 4 | @include fontdef($OpenSansPath, $OpenSansVersion, "Light"); 5 | font-weight: 300; 6 | font-style: normal; 7 | } 8 | /* END Light */ 9 | -------------------------------------------------------------------------------- /apps/volontulo/templates/contact.html: -------------------------------------------------------------------------------- 1 | {% extends "common/col1.html" %} 2 | 3 | {% block title %}Kontakt z administratorem{% endblock %} 4 | 5 | {% block content %} 6 | {% include 'contact_form.html' with contact_form=contact_form %} 7 | {% endblock %} 8 | -------------------------------------------------------------------------------- /apps/volontulo/frontend/scss/bootstrap/mixins/_text-overflow.scss: -------------------------------------------------------------------------------- 1 | // Text overflow 2 | // Requires inline-block or block for proper styling 3 | 4 | @mixin text-overflow() { 5 | overflow: hidden; 6 | text-overflow: ellipsis; 7 | white-space: nowrap; 8 | } 9 | -------------------------------------------------------------------------------- /apps/volontulo/frontend/scss/bootstrap/mixins/_tab-focus.scss: -------------------------------------------------------------------------------- 1 | // WebKit-style focus 2 | 3 | @mixin tab-focus() { 4 | // Default 5 | outline: thin dotted; 6 | // WebKit 7 | outline: 5px auto -webkit-focus-ring-color; 8 | outline-offset: -2px; 9 | } 10 | -------------------------------------------------------------------------------- /apps/volontulo/frontend/scss/open-sans/_Italic.scss: -------------------------------------------------------------------------------- 1 | /* BEGIN Italic */ 2 | @font-face { 3 | font-family: 'Open Sans'; 4 | @include fontdef($OpenSansPath, $OpenSansVersion, "Italic"); 5 | font-weight: normal; 6 | font-style: italic; 7 | } 8 | /* END Italic */ 9 | -------------------------------------------------------------------------------- /apps/volontulo/frontend/scss/open-sans/_Regular.scss: -------------------------------------------------------------------------------- 1 | /* BEGIN Regular */ 2 | @font-face { 3 | font-family: 'Open Sans'; 4 | @include fontdef($OpenSansPath, $OpenSansVersion, "Regular"); 5 | font-weight: normal; 6 | font-style: normal; 7 | } 8 | /* END Regular */ 9 | -------------------------------------------------------------------------------- /apps/volontulo/frontend/scss/open-sans/_Semibold.scss: -------------------------------------------------------------------------------- 1 | /* BEGIN Semibold */ 2 | @font-face { 3 | font-family: 'Open Sans'; 4 | @include fontdef($OpenSansPath, $OpenSansVersion, "Semibold"); 5 | font-weight: 600; 6 | font-style: normal; 7 | } 8 | /* END Semibold */ 9 | -------------------------------------------------------------------------------- /apps/volontulo/frontend/scss/open-sans/_ExtraBold.scss: -------------------------------------------------------------------------------- 1 | /* BEGIN Extrabold */ 2 | @font-face { 3 | font-family: 'Open Sans'; 4 | @include fontdef($OpenSansPath, $OpenSansVersion, "ExtraBold"); 5 | font-weight: 800; 6 | font-style: normal; 7 | } 8 | /* END Extrabold */ 9 | -------------------------------------------------------------------------------- /apps/volontulo/templates/newsletter_signup.html: -------------------------------------------------------------------------------- 1 | {% extends "common/col1.html" %} 2 | {% load main_image %} 3 | 4 | {% block title %}Zapisz się do newslettera{% endblock %} 5 | 6 | {% block content %} 7 |§1
8 |Myj zęby
11 |Śniadanie najważniejszym posiłkiem dnia
14 |§2
17 |Miej ręcznik
20 |
| Nazwa | 11 |Adres | 12 |
|---|---|
| {{ o.name }} | 16 |{{ o.address }} | 17 |
Brak zdefiniowanych organizacji.
22 | {% endif %} 23 | 24 | {% endblock %} 25 | -------------------------------------------------------------------------------- /apps/volontulo/templates/emails/password_reset.html: -------------------------------------------------------------------------------- 1 | {% extends "emails/user_layout.html" %} 2 | 3 | {% load staticfiles %} 4 | 5 | {% block title %}Resetowanie hasła{% endblock %} 6 | 7 | {% block email_content %} 8 |
| ID | 6 |Imię i nazwisko | 7 |Kontakt | 9 ||
|---|---|---|---|
| {{ volunteer.id }} | 13 |{{ volunteer.first_name }} {{ volunteer.last_name }} | 14 |{{ volunteer.email }} | 15 |Formularz kontaktowy | 16 |
Dla tej oferty nie ma jeszcze zgłoszeń wolontariuszy.
21 | {% endif %} 22 | -------------------------------------------------------------------------------- /apps/volontulo/frontend/scss/bootstrap/_breadcrumbs.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Breadcrumbs 3 | // -------------------------------------------------- 4 | 5 | 6 | .breadcrumb { 7 | padding: $breadcrumb-padding-vertical $breadcrumb-padding-horizontal; 8 | margin-bottom: $line-height-computed; 9 | list-style: none; 10 | background-color: $breadcrumb-bg; 11 | border-radius: $border-radius-base; 12 | 13 | > li { 14 | display: inline-block; 15 | 16 | + li:before { 17 | // [converter] Workaround for https://github.com/sass/libsass/issues/1115 18 | $nbsp: "\00a0"; 19 | content: "#{$breadcrumb-separator}#{$nbsp}"; // Unicode space added since inline-block means non-collapsing white-space 20 | padding: 0 5px; 21 | color: $breadcrumb-color; 22 | } 23 | } 24 | 25 | > .active { 26 | color: $breadcrumb-active-color; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /apps/volontulo/frontend/scss/bootstrap/mixins/_list-group.scss: -------------------------------------------------------------------------------- 1 | // List Groups 2 | 3 | @mixin list-group-item-variant($state, $background, $color) { 4 | .list-group-item-#{$state} { 5 | color: $color; 6 | background-color: $background; 7 | 8 | // [converter] extracted a&, button& to a.list-group-item-#{$state}, button.list-group-item-#{$state} 9 | } 10 | 11 | a.list-group-item-#{$state}, 12 | button.list-group-item-#{$state} { 13 | color: $color; 14 | 15 | .list-group-item-heading { 16 | color: inherit; 17 | } 18 | 19 | &:hover, 20 | &:focus { 21 | color: $color; 22 | background-color: darken($background, 5%); 23 | } 24 | &.active, 25 | &.active:hover, 26 | &.active:focus { 27 | color: #fff; 28 | background-color: $color; 29 | border-color: $color; 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /apps/volontulo/migrations/0003_offer_weight.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from __future__ import unicode_literals 3 | 4 | from django.db import models, migrations 5 | 6 | 7 | def populate_null_weight_rows(apps, schema_editor): 8 | Offer = apps.get_model('volontulo', 'Offer') 9 | records = Offer.objects.filter(weight__isnull=True) 10 | for row in records: 11 | row.weight = 0 12 | Offer(**row).save() 13 | 14 | class Migration(migrations.Migration): 15 | 16 | dependencies = [ 17 | ('volontulo', '0002_userprofile_phone_no'), 18 | ] 19 | 20 | operations = [ 21 | migrations.AddField( 22 | model_name='offer', 23 | name='weight', 24 | field=models.IntegerField(blank=True, default=0, null=True), 25 | ), 26 | migrations.RunPython(populate_null_weight_rows), 27 | ] 28 | -------------------------------------------------------------------------------- /apps/volontulo/templates/emails/offer_creation.html: -------------------------------------------------------------------------------- 1 | {% extends "emails/user_layout.html" %} 2 | 3 | {% load staticfiles %} 4 | 5 | {% block title %}Zgłoszenie oferty{% endblock %} 6 | 7 | {% block email_content %} 8 |
| Tytuł | 11 |Dodał | 12 |Data modyfikacji | 13 |Data dodania | 14 |Akcje | 15 |
|---|---|---|---|---|
| {{ page.title }} | 19 |{{ page.author }} | 20 |{{ page.modified_at }} | 21 |{{ page.created_at }} | 22 |23 | Edytuj 24 | Usuń 25 | | 26 |
| 8 | {% block email_content %} 9 | {% endblock %} 10 | | 11 |
| 18 | | 19 |
| 22 | | 23 |
| 26 | | 27 |
| 34 | {% block email_info_details %} 35 | {% endblock %} 36 | | 37 |
Odpowiedź Tak, ale Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.
14 |Donec sed odio dui. Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
15 |Odpowiedź Tak, ale Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.
14 |Donec sed odio dui. Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
15 || Tytuł | 12 |Miejsce | 13 |Nazwa organizacji | 14 |Czas obowiązywania | 15 |Data rozpoczęcia akcji | 16 |Data zakończenia akcji | 17 |18 | |
|---|---|---|---|---|---|---|
| {{ o.title }} | 22 |{{ o.location }} | 23 |{{ o.organization.name }} | 24 |{{ o.time_period }} | 25 |{{ o.started_at }} | 26 |{{ o.finished_at }} | 27 |Podgląd | 28 |
Brak ofert spełniających podane kryteria
33 | {% endif %} 34 | {% endblock %} 35 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Configuration files 2 | local_config.yaml 3 | 4 | # Byte-compiled / optimized / DLL files 5 | __pycache__/ 6 | *.py[cod] 7 | *$py.class 8 | 9 | # C extensions 10 | *.so 11 | 12 | # Distribution / packaging 13 | .Python 14 | env/ 15 | build/ 16 | develop-eggs/ 17 | dist/ 18 | downloads/ 19 | eggs/ 20 | .eggs/ 21 | lib64/ 22 | parts/ 23 | sdist/ 24 | var/ 25 | *.egg-info/ 26 | .installed.cfg 27 | *.egg 28 | 29 | # PyInstaller 30 | # Usually these files are written by a python script from a template 31 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 32 | *.manifest 33 | *.spec 34 | 35 | # Installer logs 36 | pip-log.txt 37 | pip-delete-this-directory.txt 38 | 39 | # Unit test / coverage reports 40 | htmlcov/ 41 | .tox/ 42 | .coverage 43 | .coverage.* 44 | .cache 45 | nosetests.xml 46 | coverage.xml 47 | *,cover 48 | 49 | # Translations 50 | *.mo 51 | *.pot 52 | 53 | # Django stuff: 54 | *.log 55 | 56 | # Sphinx documentation 57 | docs/_build/ 58 | 59 | # PyBuilder 60 | target/ 61 | 62 | # PyCharm directory 63 | .idea/ 64 | 65 | # npm and gulp 66 | apps/volontulo/node_modules/ 67 | apps/volontulo/static/ 68 | media 69 | static 70 | 71 | # Development directories / files 72 | .ropeproject 73 | 74 | # SQLite database 75 | *.sqlite3 76 | *.sqlite 77 | -------------------------------------------------------------------------------- /apps/volontulo/frontend/scss/bootstrap/_jumbotron.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Jumbotron 3 | // -------------------------------------------------- 4 | 5 | 6 | .jumbotron { 7 | padding-top: $jumbotron-padding; 8 | padding-bottom: $jumbotron-padding; 9 | margin-bottom: $jumbotron-padding; 10 | color: $jumbotron-color; 11 | background-color: $jumbotron-bg; 12 | 13 | h1, 14 | .h1 { 15 | color: $jumbotron-heading-color; 16 | } 17 | 18 | p { 19 | margin-bottom: ($jumbotron-padding / 2); 20 | font-size: $jumbotron-font-size; 21 | font-weight: 200; 22 | } 23 | 24 | > hr { 25 | border-top-color: darken($jumbotron-bg, 10%); 26 | } 27 | 28 | .container &, 29 | .container-fluid & { 30 | border-radius: $border-radius-large; // Only round corners at higher resolutions if contained in a container 31 | } 32 | 33 | .container { 34 | max-width: 100%; 35 | } 36 | 37 | @media screen and (min-width: $screen-sm-min) { 38 | padding-top: ($jumbotron-padding * 1.6); 39 | padding-bottom: ($jumbotron-padding * 1.6); 40 | 41 | .container &, 42 | .container-fluid & { 43 | padding-left: ($jumbotron-padding * 2); 44 | padding-right: ($jumbotron-padding * 2); 45 | } 46 | 47 | h1, 48 | .h1 { 49 | font-size: $jumbotron-heading-font-size; 50 | } 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /apps/volontulo/frontend/scss/bootstrap/mixins/_image.scss: -------------------------------------------------------------------------------- 1 | // Image Mixins 2 | // - Responsive image 3 | // - Retina image 4 | 5 | 6 | // Responsive image 7 | // 8 | // Keep images from scaling beyond the width of their parents. 9 | @mixin img-responsive($display: block) { 10 | display: $display; 11 | max-width: 100%; // Part 1: Set a maximum relative to the parent 12 | height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching 13 | } 14 | 15 | 16 | // Retina image 17 | // 18 | // Short retina mixin for setting background-image and -size. Note that the 19 | // spelling of `min--moz-device-pixel-ratio` is intentional. 20 | @mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) { 21 | background-image: url(if($bootstrap-sass-asset-helper, twbs-image-path("#{$file-1x}"), "#{$file-1x}")); 22 | 23 | @media 24 | only screen and (-webkit-min-device-pixel-ratio: 2), 25 | only screen and ( min--moz-device-pixel-ratio: 2), 26 | only screen and ( -o-min-device-pixel-ratio: 2/1), 27 | only screen and ( min-device-pixel-ratio: 2), 28 | only screen and ( min-resolution: 192dpi), 29 | only screen and ( min-resolution: 2dppx) { 30 | background-image: url(if($bootstrap-sass-asset-helper, twbs-image-path("#{$file-2x}"), "#{$file-2x}")); 31 | background-size: $width-1x $height-1x; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /apps/volontulo/templates/common/sub-footer.html: -------------------------------------------------------------------------------- 1 | {% block subfooter %} 2 |Ten serwis powstał wspólnym wysiłkiem we współpracy pomiędzy
5 |
7 |
|
32 |
Proszę o uwzględnienie formatu zdjęcia: jpg, gif, png, bmp
14 |
| Imię i nazwisko: | 18 |{{ name }} | 19 |
| Email: | 22 |{{ email }} | 23 |
| Numer telefonu: | 26 |{{ phone_no }} | 27 |
| 34 | Wiadomość: 35 | | 36 |
| 39 | {{ message }} 40 | | 41 |
Żadna z organizacji do których należysz nie ma jeszcze dodanego zdjęcia.
28 | {% endif %} 29 | {% else %} 30 |Aby dodawać zdjęcia do instytucji czy organizacji należy być częścią przynajmniej jednej z nich.
31 | {% endif %} 32 | -------------------------------------------------------------------------------- /apps/volontulo/templates/emails/admin_layout.html: -------------------------------------------------------------------------------- 1 | {% extends "emails/base.html" %} 2 | 3 | {% block email_layout %} 4 ||
8 | |
12 |
| 14 | | 15 |
| 23 | {% block email_content %} 24 | {% endblock %} 25 | | 26 |
| 33 | | 34 |
| 37 | | 38 |
| 41 | | 42 |
| 49 | {% block email_info_details %} 50 | {% endblock %} 51 | | 52 |

| Imię i nazwisko: | 21 |{{ name }} | 22 |
| Email: | 25 |{{ email }} | 26 |
| Numer telefonu: | 29 |{{ phone_no }} | 30 |
| Aplikant: | 33 |{{ applicant }} | 34 |
| 41 | Wiadomość: 42 | | 43 |
| 46 | {{ message }} 47 | | 48 |

| Imię i nazwisko: | 22 |{{ fullname }} | 23 |
| Email: | 26 |{{ email }} | 27 |
| Numer telefonu: | 30 |{{ phone_no }} | 31 |
| 38 | Uwagi wolontariusza: 39 | | 40 |
| 43 | {{ comments }} 44 | | 45 |
| 8 | | Tytuł | 9 |Miejsce | 10 |Czas obowiązywania | 11 |Status | 12 |13 | |
|---|---|---|---|---|---|
|
17 |
18 | |
21 | 22 | {{ o.title }} 23 | | 24 |
25 |
26 | {{ o.location }}
27 |
28 | |
29 |
30 |
31 | {{ o.started_at|date:'j E Y, G:m'|default:' teraz' }} -
32 | {{ o.finished_at|date:'j E Y, G:m'|default:' do ustalenia' }}
33 |
34 | |
35 |
36 |
37 | {# {{ Offer.OFFER_STATUS[o.offer_status].value | default:' unavailable'}} #}
38 | {% include 'common/labeled_status.html' with status=o.offer_status %}
39 |
40 | |
41 | 42 | {% if o.status_old == 'STAGED' %} 43 | Włącz się 44 | {% endif %} 45 | {# Only the user that can edit the organization can edit its offers #} 46 | {% if allow_edit %} 47 | Edytuj 48 | {% endif %} 49 | | 50 |
Ta organizacja nie utworzyła jeszcze żadnych ofert.
55 | {% endif %} 56 | -------------------------------------------------------------------------------- /apps/volontulo/frontend/scss/bootstrap/_pagination.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Pagination (multiple pages) 3 | // -------------------------------------------------- 4 | .pagination { 5 | display: inline-block; 6 | padding-left: 0; 7 | margin: $line-height-computed 0; 8 | border-radius: $border-radius-base; 9 | 10 | > li { 11 | display: inline; // Remove list-style and block-level defaults 12 | > a, 13 | > span { 14 | position: relative; 15 | float: left; // Collapse white-space 16 | padding: $padding-base-vertical $padding-base-horizontal; 17 | line-height: $line-height-base; 18 | text-decoration: none; 19 | color: $pagination-color; 20 | background-color: $pagination-bg; 21 | border: 1px solid $pagination-border; 22 | margin-left: -1px; 23 | } 24 | &:first-child { 25 | > a, 26 | > span { 27 | margin-left: 0; 28 | @include border-left-radius($border-radius-base); 29 | } 30 | } 31 | &:last-child { 32 | > a, 33 | > span { 34 | @include border-right-radius($border-radius-base); 35 | } 36 | } 37 | } 38 | 39 | > li > a, 40 | > li > span { 41 | &:hover, 42 | &:focus { 43 | z-index: 3; 44 | color: $pagination-hover-color; 45 | background-color: $pagination-hover-bg; 46 | border-color: $pagination-hover-border; 47 | } 48 | } 49 | 50 | > .active > a, 51 | > .active > span { 52 | &, 53 | &:hover, 54 | &:focus { 55 | z-index: 2; 56 | color: $pagination-active-color; 57 | background-color: $pagination-active-bg; 58 | border-color: $pagination-active-border; 59 | cursor: default; 60 | } 61 | } 62 | 63 | > .disabled { 64 | > span, 65 | > span:hover, 66 | > span:focus, 67 | > a, 68 | > a:hover, 69 | > a:focus { 70 | color: $pagination-disabled-color; 71 | background-color: $pagination-disabled-bg; 72 | border-color: $pagination-disabled-border; 73 | cursor: $cursor-disabled; 74 | } 75 | } 76 | } 77 | 78 | // Sizing 79 | // -------------------------------------------------- 80 | 81 | // Large 82 | .pagination-lg { 83 | @include pagination-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $border-radius-large); 84 | } 85 | 86 | // Small 87 | .pagination-sm { 88 | @include pagination-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $border-radius-small); 89 | } 90 | -------------------------------------------------------------------------------- /apps/volontulo/frontend/scss/bootstrap/_print.scss: -------------------------------------------------------------------------------- 1 | /*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ 2 | 3 | // ========================================================================== 4 | // Print styles. 5 | // Inlined to avoid the additional HTTP request: h5bp.com/r 6 | // ========================================================================== 7 | 8 | @media print { 9 | *, 10 | *:before, 11 | *:after { 12 | background: transparent !important; 13 | color: #000 !important; // Black prints faster: h5bp.com/s 14 | box-shadow: none !important; 15 | text-shadow: none !important; 16 | } 17 | 18 | a, 19 | a:visited { 20 | text-decoration: underline; 21 | } 22 | 23 | a[href]:after { 24 | content: " (" attr(href) ")"; 25 | } 26 | 27 | abbr[title]:after { 28 | content: " (" attr(title) ")"; 29 | } 30 | 31 | // Don't show links that are fragment identifiers, 32 | // or use the `javascript:` pseudo protocol 33 | a[href^="#"]:after, 34 | a[href^="javascript:"]:after { 35 | content: ""; 36 | } 37 | 38 | pre, 39 | blockquote { 40 | border: 1px solid #999; 41 | page-break-inside: avoid; 42 | } 43 | 44 | thead { 45 | display: table-header-group; // h5bp.com/t 46 | } 47 | 48 | tr, 49 | img { 50 | page-break-inside: avoid; 51 | } 52 | 53 | img { 54 | max-width: 100% !important; 55 | } 56 | 57 | p, 58 | h2, 59 | h3 { 60 | orphans: 3; 61 | widows: 3; 62 | } 63 | 64 | h2, 65 | h3 { 66 | page-break-after: avoid; 67 | } 68 | 69 | // Bootstrap specific changes start 70 | 71 | // Bootstrap components 72 | .navbar { 73 | display: none; 74 | } 75 | .btn, 76 | .dropup > .btn { 77 | > .caret { 78 | border-top-color: #000 !important; 79 | } 80 | } 81 | .label { 82 | border: 1px solid #000; 83 | } 84 | 85 | .table { 86 | border-collapse: collapse !important; 87 | 88 | td, 89 | th { 90 | background-color: #fff !important; 91 | } 92 | } 93 | .table-bordered { 94 | th, 95 | td { 96 | border: 1px solid #ddd !important; 97 | } 98 | } 99 | 100 | // Bootstrap specific changes end 101 | } 102 | -------------------------------------------------------------------------------- /apps/volontulo/tests/views/test_organizations.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | u""" 4 | .. module:: test_organizations 5 | """ 6 | from django.test import Client 7 | from django.test import TestCase 8 | 9 | from apps.volontulo.models import Organization 10 | from apps.volontulo.tests import common 11 | 12 | 13 | class TestOrganizations(TestCase): 14 | u"""Class responsible for testing organization specific views.""" 15 | 16 | @classmethod 17 | def setUpTestData(cls): 18 | u"""Data fixtures for all tests.""" 19 | # volunteer user - totally useless 20 | cls.volunteer = common.initialize_empty_volunteer() 21 | # organization user - no offers 22 | cls.organization = common.initialize_empty_organization() 23 | # volunteer user - offers, organizations 24 | cls.volunteer2, cls.organization2 = \ 25 | common.initialize_filled_volunteer_and_organization() 26 | 27 | def setUp(self): 28 | u"""Set up each test.""" 29 | self.client = Client() 30 | 31 | def test__organization_list(self): 32 | u"""Test getting organization list as anonymous.""" 33 | response = self.client.get('/organizations', follow=True) 34 | 35 | self.assertEqual(response.status_code, 200) 36 | self.assertTemplateUsed(response, 'organizations/list.html') 37 | self.assertIn('organizations', response.context) 38 | self.assertEqual(Organization.objects.all().count(), 2) 39 | 40 | def test__ensure_status_is_displayed_in_profile_view(self): 41 | """Test if offer status is displayed in a profile view.""" 42 | self.client.login( 43 | username=u'volunteer2@example.com', 44 | password=u'volunteer2' 45 | ) 46 | response = self.client.get('/me', follow=True) 47 | self.assertTemplateUsed(response, 'users/my_offers.html') 48 | self.assertIn('offers', response.context) 49 | self.assertEqual( 50 | 'published', response.context['offers'][0].offer_status) 51 | 52 | def test__ensure_status_is_displayed_in_organisations_view(self): 53 | """Test if offer status is displayed in an organisation view.""" 54 | self.client.login( 55 | username=u'volunteer2@example.com', 56 | password=u'volunteer2' 57 | ) 58 | response = self.client.get('/me', follow=True) 59 | self.assertIn('offers', response.context) 60 | self.assertEqual( 61 | 'published', response.context['offers'][0].offer_status) 62 | -------------------------------------------------------------------------------- /apps/volontulo/frontend/scss/bootstrap.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v3.3.5 (http://getbootstrap.com) 3 | * Copyright 2011-2015 Twitter, Inc. 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 5 | */ 6 | 7 | // Core variables and mixins 8 | @import "bootstrap/variables"; 9 | @import "bootstrap/mixins"; 10 | 11 | // Reset and dependencies 12 | @import "bootstrap/normalize"; 13 | @import "bootstrap/print"; 14 | @import "bootstrap/glyphicons"; 15 | 16 | // Core CSS 17 | @import "bootstrap/scaffolding"; 18 | @import "bootstrap/type"; 19 | @import "bootstrap/code"; 20 | @import "bootstrap/grid"; 21 | @import "bootstrap/tables"; 22 | @import "bootstrap/forms"; 23 | @import "bootstrap/buttons"; 24 | 25 | // Components 26 | @import "bootstrap/component-animations"; 27 | @import "bootstrap/dropdowns"; 28 | @import "bootstrap/button-groups"; 29 | @import "bootstrap/input-groups"; 30 | @import "bootstrap/navs"; 31 | @import "bootstrap/navbar"; 32 | @import "bootstrap/breadcrumbs"; 33 | @import "bootstrap/pagination"; 34 | @import "bootstrap/pager"; 35 | @import "bootstrap/labels"; 36 | @import "bootstrap/jumbotron"; 37 | @import "bootstrap/thumbnails"; 38 | @import "bootstrap/alerts"; 39 | @import "bootstrap/progress-bars"; 40 | @import "bootstrap/media"; 41 | @import "bootstrap/list-group"; 42 | @import "bootstrap/panels"; 43 | @import "bootstrap/responsive-embed"; 44 | @import "bootstrap/wells"; 45 | @import "bootstrap/close"; 46 | 47 | // Components w/ JavaScript 48 | @import "bootstrap/modals"; 49 | @import "bootstrap/tooltip"; 50 | @import "bootstrap/popovers"; 51 | @import "bootstrap/carousel"; 52 | 53 | // Utility classes 54 | @import "bootstrap/utilities"; 55 | @import "bootstrap/responsive-utilities"; 56 | 57 | // Icons 58 | @import "iconify/icons.svg.scss"; 59 | 60 | // Volontulo customization overwrites 61 | @import "customization/customization-variables"; 62 | @import "customization/auto-clear"; 63 | @import "customization/extended-media"; 64 | @import "customization/extended-thumbnail"; 65 | @import "customization/bootflat-panel"; 66 | @import "customization/customization"; 67 | 68 | // Open Sans webfont 69 | @import "open-sans/variables"; 70 | @import "open-sans/mixins"; 71 | @import "open-sans/Light"; 72 | //@import "open-sans/LightItalic"; 73 | @import "open-sans/Regular"; 74 | @import "open-sans/Italic"; 75 | @import "open-sans/Semibold"; 76 | //@import "open-sans/SemiboldItalic"; 77 | @import "open-sans/Bold"; 78 | @import "open-sans/BoldItalic"; 79 | //@import "open-sans/ExtraBold"; 80 | //@import "open-sans/ExtraBoldItalic"; 81 | -------------------------------------------------------------------------------- /apps/volontulo/tests/models/test_userprofile.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | u""" 4 | .. module:: test_userprofile 5 | """ 6 | from __future__ import unicode_literals 7 | from django.test import TestCase 8 | 9 | from apps.volontulo.models import Organization 10 | from apps.volontulo.models import User 11 | from apps.volontulo.models import UserProfile 12 | 13 | 14 | class TestUserProfile(TestCase): 15 | u"""Class responsible for testing UserProfile model.""" 16 | 17 | def setUp(self): 18 | u"""Set up each test.""" 19 | 20 | # volunteer user 21 | self.volunteer_user = UserProfile.objects.create( 22 | user=User.objects.create_user( 23 | username='volunteer@example.com', 24 | email='volunteer@example.com', 25 | password='volunteer', 26 | ), 27 | is_administrator=False, 28 | ) 29 | 30 | # organization user 31 | self.organization_user = UserProfile.objects.create( 32 | user=User.objects.create_user( 33 | username='organization@example.com', 34 | email='organization@example.com', 35 | password='organization', 36 | ), 37 | is_administrator=False, 38 | ) 39 | self.organization_user.organizations.add( 40 | Organization.objects.create(name=u'Organization') 41 | ) 42 | 43 | # administrator user 44 | self.administrator_user = UserProfile.objects.create( 45 | user=User.objects.create_user( 46 | username='administrator@example.com', 47 | email='administrator@example.com', 48 | password='administrator', 49 | ), 50 | is_administrator=True 51 | ) 52 | 53 | def test__string_reprezentation(self): 54 | u"""String reprezentation of an userprofile object.""" 55 | self.assertEqual( 56 | str(self.volunteer_user), 57 | u'volunteer@example.com', 58 | ) 59 | self.assertEqual( 60 | str(self.organization_user), 61 | u'organization@example.com' 62 | ) 63 | self.assertEqual( 64 | str(self.administrator_user), 65 | u'administrator@example.com' 66 | ) 67 | 68 | def test__is_admin_or_volunteer(self): 69 | """Check if specified user has enabled/disabled administrator flag.""" 70 | 71 | self.assertTrue(self.administrator_user.is_administrator) 72 | self.assertFalse(self.volunteer_user.is_administrator) 73 | self.assertFalse(self.organization_user.is_administrator) 74 | -------------------------------------------------------------------------------- /apps/volontulo/frontend/javascripts/bootstrap/alert.js: -------------------------------------------------------------------------------- 1 | /* ======================================================================== 2 | * Bootstrap: alert.js v3.3.5 3 | * http://getbootstrap.com/javascript/#alerts 4 | * ======================================================================== 5 | * Copyright 2011-2015 Twitter, Inc. 6 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 7 | * ======================================================================== */ 8 | 9 | 10 | +function ($) { 11 | 'use strict'; 12 | 13 | // ALERT CLASS DEFINITION 14 | // ====================== 15 | 16 | var dismiss = '[data-dismiss="alert"]' 17 | var Alert = function (el) { 18 | $(el).on('click', dismiss, this.close) 19 | } 20 | 21 | Alert.VERSION = '3.3.5' 22 | 23 | Alert.TRANSITION_DURATION = 150 24 | 25 | Alert.prototype.close = function (e) { 26 | var $this = $(this) 27 | var selector = $this.attr('data-target') 28 | 29 | if (!selector) { 30 | selector = $this.attr('href') 31 | selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 32 | } 33 | 34 | var $parent = $(selector) 35 | 36 | if (e) e.preventDefault() 37 | 38 | if (!$parent.length) { 39 | $parent = $this.closest('.alert') 40 | } 41 | 42 | $parent.trigger(e = $.Event('close.bs.alert')) 43 | 44 | if (e.isDefaultPrevented()) return 45 | 46 | $parent.removeClass('in') 47 | 48 | function removeElement() { 49 | // detach from parent, fire event then clean up data 50 | $parent.detach().trigger('closed.bs.alert').remove() 51 | } 52 | 53 | $.support.transition && $parent.hasClass('fade') ? 54 | $parent 55 | .one('bsTransitionEnd', removeElement) 56 | .emulateTransitionEnd(Alert.TRANSITION_DURATION) : 57 | removeElement() 58 | } 59 | 60 | 61 | // ALERT PLUGIN DEFINITION 62 | // ======================= 63 | 64 | function Plugin(option) { 65 | return this.each(function () { 66 | var $this = $(this) 67 | var data = $this.data('bs.alert') 68 | 69 | if (!data) $this.data('bs.alert', (data = new Alert(this))) 70 | if (typeof option == 'string') data[option].call($this) 71 | }) 72 | } 73 | 74 | var old = $.fn.alert 75 | 76 | $.fn.alert = Plugin 77 | $.fn.alert.Constructor = Alert 78 | 79 | 80 | // ALERT NO CONFLICT 81 | // ================= 82 | 83 | $.fn.alert.noConflict = function () { 84 | $.fn.alert = old 85 | return this 86 | } 87 | 88 | 89 | // ALERT DATA-API 90 | // ============== 91 | 92 | $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close) 93 | 94 | }(jQuery); 95 | -------------------------------------------------------------------------------- /apps/volontulo/templates/offers/reorder.html: -------------------------------------------------------------------------------- 1 | {% extends "common/col1.html" %} 2 | {% load main_image %} 3 | 4 | {% block title %}Kolejność ofert{% endblock %} 5 | 6 | {% block content %} 7 | {% include 'admin/offers_nav.html' %} 8 | {% if offers %} 9 |Brak ofert spełniających podane kryteria
56 | {% endif %} 57 | {% endblock %} 58 | -------------------------------------------------------------------------------- /apps/volontulo/frontend/scss/bootstrap/mixins/_grid-framework.scss: -------------------------------------------------------------------------------- 1 | // Framework grid generation 2 | // 3 | // Used only by Bootstrap to generate the correct number of grid classes given 4 | // any value of `$grid-columns`. 5 | 6 | // [converter] This is defined recursively in LESS, but Sass supports real loops 7 | @mixin make-grid-columns($i: 1, $list: ".col-xs-#{$i}, .col-sm-#{$i}, .col-md-#{$i}, .col-lg-#{$i}") { 8 | @for $i from (1 + 1) through $grid-columns { 9 | $list: "#{$list}, .col-xs-#{$i}, .col-sm-#{$i}, .col-md-#{$i}, .col-lg-#{$i}"; 10 | } 11 | #{$list} { 12 | position: relative; 13 | // Prevent columns from collapsing when empty 14 | min-height: 1px; 15 | // Inner gutter via padding 16 | padding-left: ceil(($grid-gutter-width / 2)); 17 | padding-right: floor(($grid-gutter-width / 2)); 18 | } 19 | } 20 | 21 | 22 | // [converter] This is defined recursively in LESS, but Sass supports real loops 23 | @mixin float-grid-columns($class, $i: 1, $list: ".col-#{$class}-#{$i}") { 24 | @for $i from (1 + 1) through $grid-columns { 25 | $list: "#{$list}, .col-#{$class}-#{$i}"; 26 | } 27 | #{$list} { 28 | float: left; 29 | } 30 | } 31 | 32 | 33 | @mixin calc-grid-column($index, $class, $type) { 34 | @if ($type == width) and ($index > 0) { 35 | .col-#{$class}-#{$index} { 36 | width: percentage(($index / $grid-columns)); 37 | } 38 | } 39 | @if ($type == push) and ($index > 0) { 40 | .col-#{$class}-push-#{$index} { 41 | left: percentage(($index / $grid-columns)); 42 | } 43 | } 44 | @if ($type == push) and ($index == 0) { 45 | .col-#{$class}-push-0 { 46 | left: auto; 47 | } 48 | } 49 | @if ($type == pull) and ($index > 0) { 50 | .col-#{$class}-pull-#{$index} { 51 | right: percentage(($index / $grid-columns)); 52 | } 53 | } 54 | @if ($type == pull) and ($index == 0) { 55 | .col-#{$class}-pull-0 { 56 | right: auto; 57 | } 58 | } 59 | @if ($type == offset) { 60 | .col-#{$class}-offset-#{$index} { 61 | margin-left: percentage(($index / $grid-columns)); 62 | } 63 | } 64 | } 65 | 66 | // [converter] This is defined recursively in LESS, but Sass supports real loops 67 | @mixin loop-grid-columns($columns, $class, $type) { 68 | @for $i from 0 through $columns { 69 | @include calc-grid-column($i, $class, $type); 70 | } 71 | } 72 | 73 | 74 | // Create grid for specific class 75 | @mixin make-grid($class) { 76 | @include float-grid-columns($class); 77 | @include loop-grid-columns($grid-columns, $class, width); 78 | @include loop-grid-columns($grid-columns, $class, pull); 79 | @include loop-grid-columns($grid-columns, $class, push); 80 | @include loop-grid-columns($grid-columns, $class, offset); 81 | } 82 | -------------------------------------------------------------------------------- /apps/volontulo/tests/views/offers/commons.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | """ 4 | .. module:: commons 5 | """ 6 | 7 | from django.contrib.auth.models import User 8 | 9 | from apps.volontulo.models import Offer 10 | from apps.volontulo.models import Organization 11 | from apps.volontulo.models import UserProfile 12 | 13 | 14 | class TestOffersCommons(object): 15 | """Commons setups for offers' testcases.""" 16 | 17 | @classmethod 18 | def setUpTestData(cls): 19 | """Set up data for all tests.""" 20 | cls.organization = Organization.objects.create( 21 | name='Organization Name', 22 | address='', 23 | description='', 24 | ) 25 | cls.organization.save() 26 | 27 | cls.common_offer_data = { 28 | 'organization': cls.organization, 29 | 'description': '', 30 | 'requirements': '', 31 | 'time_commitment': '', 32 | 'benefits': '', 33 | 'location': '', 34 | 'title': 'volontulo offer', 35 | 'time_period': '', 36 | 'started_at': '2105-10-24 09:10:11', 37 | 'finished_at': '2105-11-28 12:13:14', 38 | 'offer_status': 'unpublished', 39 | 'recruitment_status': 'closed', 40 | 'action_status': 'ongoing', 41 | } 42 | 43 | cls.inactive_offer = Offer.objects.create( 44 | status_old='NEW', 45 | **cls.common_offer_data 46 | ) 47 | cls.inactive_offer.save() 48 | cls.active_offer = Offer.objects.create( 49 | status_old='ACTIVE', 50 | **cls.common_offer_data 51 | ) 52 | cls.active_offer.save() 53 | 54 | volunteer_user = User.objects.create_user( 55 | 'volunteer@example.com', 56 | 'volunteer@example.com', 57 | '123volunteer' 58 | ) 59 | 60 | cls.volunteer = UserProfile(user=volunteer_user) 61 | cls.volunteer.save() 62 | 63 | organization_user = User.objects.create_user( 64 | 'cls.organization@example.com', 65 | 'cls.organization@example.com', 66 | '123org' 67 | ) 68 | 69 | cls.organization_profile = UserProfile( 70 | user=organization_user, 71 | ) 72 | cls.organization_profile.save() 73 | cls.organization_profile.organizations.add(cls.organization) 74 | 75 | admin_user = User.objects.create_user( 76 | 'admin@example.com', 77 | 'admin@example.com', 78 | '123admin' 79 | ) 80 | 81 | cls.admin = UserProfile( 82 | user=admin_user, 83 | is_administrator=True, 84 | ) 85 | cls.admin.save() 86 | -------------------------------------------------------------------------------- /apps/volontulo/utils.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | u""" 4 | .. module:: utils 5 | """ 6 | from django.contrib.admin.models import LogEntry 7 | from django.contrib.auth.models import User 8 | from django.contrib.contenttypes.models import ContentType 9 | from django.shortcuts import get_object_or_404 10 | from django.shortcuts import redirect 11 | from django.utils.text import slugify 12 | 13 | from apps.volontulo.models import UserProfile 14 | 15 | 16 | # Offers statuses dictionary with meaningful names. 17 | # todo: remove dependency 18 | OFFERS_STATUSES = { 19 | 'NEW': 'Nowa', 20 | 'ACTIVE': 'Aktywna', 21 | 'FINISHED': 'Zakończona', 22 | 'SUSPENDED': 'Zawieszona', 23 | 'CLOSED': 'Zamknięta', 24 | } 25 | 26 | 27 | def get_administrators_emails(): 28 | """Get all administrators emails or superuser email 29 | 30 | Format returned: 31 | emails = { 32 | 1: 'admin1@example.com', 33 | 2: 'admin2@example.com', 34 | } 35 | """ 36 | administrators = UserProfile.objects.filter(is_administrator=True) 37 | emails = {} 38 | for admin in administrators: 39 | emails[str(admin.user.id)] = admin.user.email 40 | 41 | if not emails: 42 | administrators = User.objects.filter(is_superuser=True) 43 | for admin in administrators: 44 | emails[str(admin.id)] = admin.email 45 | 46 | return emails 47 | 48 | 49 | def save_history(req, obj, action): 50 | """Save model changes history.""" 51 | LogEntry.objects.log_action( 52 | user_id=req.user.pk, 53 | content_type_id=ContentType.objects.get_for_model(obj).pk, 54 | object_id=obj.pk, 55 | object_repr=str(obj), 56 | action_flag=action 57 | ) 58 | 59 | 60 | def correct_slug(model_class, view_name, slug_field): 61 | """Decorator that is reposponsible for redirect to url with correct slug. 62 | 63 | It is used by url for offers, organizations and users. 64 | """ 65 | def decorator(wrapped_func): 66 | """Decorator function for correcting slugs.""" 67 | 68 | def wrapping_func(request, slug, id_): 69 | """Wrapping function for correcting slugs.""" 70 | obj = get_object_or_404(model_class, id=id_) 71 | if slug != slugify(getattr(obj, slug_field)): 72 | return redirect( 73 | view_name, 74 | slug=slugify(getattr(obj, slug_field)), 75 | id_=id_ 76 | ) 77 | return wrapped_func(request, slug, id_) 78 | 79 | return wrapping_func 80 | 81 | return decorator 82 | 83 | 84 | def is_admin_test(user): 85 | """Check if passed user is administrator 86 | 87 | :param user: An instance of AUTH_USER_MODEL representing 88 | the currently logged-in user. 89 | """ 90 | return user.is_authenticated() and user.userprofile.is_administrator 91 | -------------------------------------------------------------------------------- /apps/volontulo/templates/auth/login.html: -------------------------------------------------------------------------------- 1 | {% extends "common/col1.html" %} 2 | 3 | {% block title %}Logowanie do Volontulo{% endblock %} 4 | 5 | {% block content %} 6 || 13 | | Tytuł | 14 |Miejsce | 15 |Czas obowiązywania | 16 |Nazwa organizacji | 17 |18 | |
|---|---|---|---|---|---|
|
22 |
23 | |
26 | 27 | {{ offer.title }} 28 | | 29 |
30 | {{ offer.location }}
31 | |
32 |
33 |
34 | {{ offer.started_at|date:'j E Y, G:m'|default:' teraz' }} -
35 | {{ offer.finished_at|date:'j E Y, G:m'|default:' do ustalenia' }}
36 |
37 | |
38 | 39 | 40 | | 41 |42 | {% if user.userprofile.is_administrator %} 43 | {% if offer.offer_status == 'unpublished' %} 44 | 50 | {% endif %} 51 | {% elif offer.offer_status == 'published' %} 52 | Włącz się 53 | {% endif %} 54 | | 55 |
Brak ofert spełniających podane kryteria
60 | {% endif %} 61 | 62 | {% endblock %} 63 | -------------------------------------------------------------------------------- /apps/volontulo/templates/users/user_profile.html: -------------------------------------------------------------------------------- 1 | {% extends "common/col1.html" %} 2 | {% load bootstrap3 %} 3 | 4 | {% block title %}Strona użytkownika {{ user.email }}{% endblock %} 5 | 6 | {% block name %}user-profile{% endblock %} 7 | 8 | {% block content %} 9 | 10 |