├── main
├── __init__.py
├── migrations
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-37.pyc
│ │ ├── 0001_initial.cpython-37.pyc
│ │ ├── 0002_auto_20190330_2041.cpython-37.pyc
│ │ ├── 0002_auto_20190331_1929.cpython-37.pyc
│ │ ├── 0002_auto_20190331_2118.cpython-37.pyc
│ │ ├── 0002_auto_20190402_2016.cpython-37.pyc
│ │ ├── 0003_auto_20190330_2043.cpython-37.pyc
│ │ ├── 0003_auto_20190401_1401.cpython-37.pyc
│ │ ├── 0003_auto_20190402_2017.cpython-37.pyc
│ │ ├── 0004_auto_20190330_2043.cpython-37.pyc
│ │ ├── 0004_auto_20190401_1401.cpython-37.pyc
│ │ ├── 0004_auto_20190402_2053.cpython-37.pyc
│ │ ├── 0005_auto_20190331_1645.cpython-37.pyc
│ │ ├── 0005_auto_20190401_2316.cpython-37.pyc
│ │ ├── 0005_auto_20190402_2058.cpython-37.pyc
│ │ ├── 0006_auto_20190331_1837.cpython-37.pyc
│ │ ├── 0006_auto_20190401_2348.cpython-37.pyc
│ │ ├── 0006_auto_20190402_2100.cpython-37.pyc
│ │ ├── 0007_auto_20190331_1926.cpython-37.pyc
│ │ ├── 0007_auto_20190402_1624.cpython-37.pyc
│ │ ├── 0007_auto_20190402_2120.cpython-37.pyc
│ │ ├── 0008_auto_20190402_1834.cpython-37.pyc
│ │ ├── 0009_auto_20190402_1840.cpython-37.pyc
│ │ ├── 0010_auto_20190402_1850.cpython-37.pyc
│ │ ├── 0011_auto_20190402_1857.cpython-37.pyc
│ │ ├── 0012_auto_20190402_1905.cpython-37.pyc
│ │ ├── 0013_auto_20190402_1923.cpython-37.pyc
│ │ ├── 0014_auto_20190402_1927.cpython-37.pyc
│ │ ├── 0015_auto_20190402_1928.cpython-37.pyc
│ │ └── 0016_auto_20190402_1933.cpython-37.pyc
│ ├── 0002_auto_20190402_2016.py
│ ├── 0010_auto_20200327_1018.py
│ ├── 0011_auto_20200619_1000.py
│ ├── 0006_auto_20190402_2100.py
│ ├── 0007_auto_20190402_2120.py
│ ├── 0004_auto_20190402_2053.py
│ ├── 0003_auto_20190402_2017.py
│ ├── 0005_auto_20190402_2058.py
│ ├── 0009_auto_20190531_1514.py
│ ├── 0008_auto_20190515_1633.py
│ └── 0001_initial.py
├── templates
│ └── main
│ │ ├── editPostDone.html
│ │ ├── editPost.html
│ │ ├── home.html
│ │ ├── login.html
│ │ ├── category.html
│ │ ├── includes
│ │ ├── messages.html
│ │ └── navbar.html
│ │ ├── header.html
│ │ ├── donate.html
│ │ ├── register.html
│ │ ├── categories.html
│ │ └── footer.html
├── tests.py
├── static
│ ├── fonts
│ │ └── vazir.ttf
│ └── main
│ │ ├── images
│ │ ├── kia.jpg
│ │ ├── uiux.png
│ │ ├── btn-up.png
│ │ ├── image01.png
│ │ ├── image02.png
│ │ ├── image03.png
│ │ ├── image05.png
│ │ ├── image06.png
│ │ ├── milad.jpg
│ │ ├── shahab.jpg
│ │ ├── uiux2.png
│ │ ├── uiux3.png
│ │ ├── btn-down.png
│ │ ├── mohammad.jpg
│ │ └── pattern
│ │ │ ├── line.png
│ │ │ ├── logo.png
│ │ │ ├── white1.png
│ │ │ ├── white2.png
│ │ │ ├── bg-text.png
│ │ │ ├── orange0.png
│ │ │ ├── orange1.png
│ │ │ ├── orange2.png
│ │ │ ├── orange3.png
│ │ │ ├── text-icon.png
│ │ │ ├── folder-icon.png
│ │ │ ├── github-logo.png
│ │ │ └── next-slide.png
│ │ ├── fonts
│ │ ├── FontAwesome.otf
│ │ ├── woff
│ │ │ ├── Vazir-Bold.woff
│ │ │ ├── Vazir-Light.woff
│ │ │ ├── Vazir-Medium.woff
│ │ │ └── Vazir-Thin.woff
│ │ ├── woff2
│ │ │ ├── Vazir-Bold.woff2
│ │ │ ├── Vazir-Thin.woff2
│ │ │ ├── Vazir-Light.woff2
│ │ │ └── Vazir-Medium.woff2
│ │ ├── fontawesome-webfont.eot
│ │ ├── fontawesome-webfont.ttf
│ │ ├── fontawesome-webfont.woff
│ │ └── fontawesome-webfont.woff2
│ │ ├── js
│ │ └── index.js
│ │ └── css
│ │ ├── owl.carousel.css
│ │ ├── media.css
│ │ └── owl.theme.css
├── __pycache__
│ ├── admin.cpython-37.pyc
│ ├── apps.cpython-37.pyc
│ ├── forms.cpython-37.pyc
│ ├── urls.cpython-37.pyc
│ ├── views.cpython-37.pyc
│ ├── __init__.cpython-37.pyc
│ └── models.cpython-37.pyc
├── locale
│ └── fa
│ │ └── LC_MESSAGES
│ │ ├── django.mo
│ │ └── django.po
├── apps.py
├── forms.py
├── urls.py
├── admin.py
└── models.py
├── mysite
├── __init__.py
├── __pycache__
│ ├── urls.cpython-37.pyc
│ ├── wsgi.cpython-37.pyc
│ ├── __init__.cpython-37.pyc
│ ├── routing.cpython-37.pyc
│ └── settings.cpython-37.pyc
├── wsgi.py
├── urls.py
└── settings.py.sample
├── front end
├── src
│ └── assets
│ │ ├── scss
│ │ ├── _global.scss
│ │ ├── helpers
│ │ │ ├── _mixins.scss
│ │ │ ├── _helpers.scss
│ │ │ └── _vars.scss
│ │ ├── modules
│ │ │ └── _modules.scss
│ │ ├── components
│ │ │ └── _components.scss
│ │ ├── partials
│ │ │ ├── _partials.scss
│ │ │ ├── _header.scss
│ │ │ ├── _footer.scss
│ │ │ └── responsive
│ │ │ │ ├── _footer.scss
│ │ │ │ └── _header.scss
│ │ ├── app.scss
│ │ ├── _includes.scss
│ │ └── base
│ │ │ └── _base.scss
│ │ ├── images
│ │ ├── menu.png
│ │ ├── GITHUB.png
│ │ ├── image-01.png
│ │ ├── image-02.png
│ │ ├── image-03.png
│ │ ├── image-04.png
│ │ ├── pattern-03.svg
│ │ ├── right-angle.svg
│ │ ├── icon-folder.svg
│ │ └── pattern-05.svg
│ │ ├── fonts
│ │ ├── woff
│ │ │ ├── Vazir-Bold.woff
│ │ │ ├── Vazir-Thin.woff
│ │ │ ├── Vazir-Light.woff
│ │ │ └── Vazir-Medium.woff
│ │ └── woff2
│ │ │ ├── Vazir-Bold.woff2
│ │ │ ├── Vazir-Light.woff2
│ │ │ ├── Vazir-Thin.woff2
│ │ │ └── Vazir-Medium.woff2
│ │ └── js
│ │ └── app.js
├── bootstrap
│ ├── images
│ │ ├── kia.jpg
│ │ ├── uiux.png
│ │ ├── btn-up.png
│ │ ├── milad.jpg
│ │ ├── shahab.jpg
│ │ ├── uiux2.png
│ │ ├── uiux3.png
│ │ ├── btn-down.png
│ │ ├── image01.png
│ │ ├── image02.png
│ │ ├── image03.png
│ │ ├── image05.png
│ │ ├── image06.png
│ │ ├── mohammad.jpg
│ │ └── pattern
│ │ │ ├── line.png
│ │ │ ├── logo.png
│ │ │ ├── white1.png
│ │ │ ├── white2.png
│ │ │ ├── bg-text.png
│ │ │ ├── orange0.png
│ │ │ ├── orange1.png
│ │ │ ├── orange2.png
│ │ │ ├── orange3.png
│ │ │ ├── folder-icon.png
│ │ │ ├── github-logo.png
│ │ │ ├── next-slide.png
│ │ │ └── text-icon.png
│ ├── fonts
│ │ ├── FontAwesome.otf
│ │ ├── woff
│ │ │ ├── Vazir-Bold.woff
│ │ │ ├── Vazir-Light.woff
│ │ │ ├── Vazir-Thin.woff
│ │ │ └── Vazir-Medium.woff
│ │ ├── fontawesome-webfont.eot
│ │ ├── fontawesome-webfont.ttf
│ │ ├── fontawesome-webfont.woff
│ │ ├── woff2
│ │ │ ├── Vazir-Bold.woff2
│ │ │ ├── Vazir-Light.woff2
│ │ │ ├── Vazir-Medium.woff2
│ │ │ └── Vazir-Thin.woff2
│ │ └── fontawesome-webfont.woff2
│ ├── js
│ │ └── index.js
│ ├── css
│ │ ├── owl.carousel.css
│ │ ├── media.css
│ │ └── owl.theme.css
│ ├── ready.html
│ └── login.html
├── dist
│ └── assets
│ │ ├── images
│ │ ├── menu.png
│ │ ├── GITHUB.png
│ │ ├── image-01.png
│ │ ├── image-02.png
│ │ ├── image-03.png
│ │ ├── image-04.png
│ │ ├── pattern-03.svg
│ │ ├── right-angle.svg
│ │ ├── icon-folder.svg
│ │ ├── pattern-05.svg
│ │ └── pattern-01.svg
│ │ ├── fonts
│ │ ├── woff
│ │ │ ├── Vazir-Bold.woff
│ │ │ ├── Vazir-Light.woff
│ │ │ ├── Vazir-Medium.woff
│ │ │ └── Vazir-Thin.woff
│ │ └── woff2
│ │ │ ├── Vazir-Bold.woff2
│ │ │ ├── Vazir-Thin.woff2
│ │ │ ├── Vazir-Light.woff2
│ │ │ └── Vazir-Medium.woff2
│ │ ├── js
│ │ ├── all.js
│ │ └── all.js.map
│ │ └── css
│ │ ├── base
│ │ └── Normalize.css
│ │ ├── slick.css
│ │ └── slick-theme.css
├── .editorconfig
├── LICENSE
├── package.json
├── bin
│ └── install.js
├── gulpfile.js
└── README.md
├── .gitattributes
├── db.sqlite3
├── screenshot.png
├── Psds
├── _medadfeshari.jpg
└── medadfeshari.psd
├── .gitignore
├── manage.py
├── requirements.txt
└── README.md
/main/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/mysite/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/main/migrations/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/front end/src/assets/scss/_global.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | * linguist-language=Python
2 |
--------------------------------------------------------------------------------
/front end/src/assets/scss/helpers/_mixins.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/front end/src/assets/scss/modules/_modules.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/front end/src/assets/scss/components/_components.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/front end/src/assets/scss/partials/_partials.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/front end/src/assets/scss/app.scss:
--------------------------------------------------------------------------------
1 | @import "./includes";
--------------------------------------------------------------------------------
/main/templates/main/editPostDone.html:
--------------------------------------------------------------------------------
1 | {{ status }}
2 |
--------------------------------------------------------------------------------
/db.sqlite3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/db.sqlite3
--------------------------------------------------------------------------------
/main/tests.py:
--------------------------------------------------------------------------------
1 | from django.test import TestCase
2 |
3 | # Create your tests here.
4 |
--------------------------------------------------------------------------------
/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/screenshot.png
--------------------------------------------------------------------------------
/front end/src/assets/scss/helpers/_helpers.scss:
--------------------------------------------------------------------------------
1 | @import '_vars';
2 | @import '_mixins';
3 |
--------------------------------------------------------------------------------
/Psds/_medadfeshari.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/Psds/_medadfeshari.jpg
--------------------------------------------------------------------------------
/Psds/medadfeshari.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/Psds/medadfeshari.psd
--------------------------------------------------------------------------------
/main/static/fonts/vazir.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/fonts/vazir.ttf
--------------------------------------------------------------------------------
/main/static/main/images/kia.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/images/kia.jpg
--------------------------------------------------------------------------------
/main/static/main/images/uiux.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/images/uiux.png
--------------------------------------------------------------------------------
/front end/bootstrap/images/kia.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/images/kia.jpg
--------------------------------------------------------------------------------
/front end/bootstrap/images/uiux.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/images/uiux.png
--------------------------------------------------------------------------------
/main/static/main/images/btn-up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/images/btn-up.png
--------------------------------------------------------------------------------
/main/static/main/images/image01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/images/image01.png
--------------------------------------------------------------------------------
/main/static/main/images/image02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/images/image02.png
--------------------------------------------------------------------------------
/main/static/main/images/image03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/images/image03.png
--------------------------------------------------------------------------------
/main/static/main/images/image05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/images/image05.png
--------------------------------------------------------------------------------
/main/static/main/images/image06.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/images/image06.png
--------------------------------------------------------------------------------
/main/static/main/images/milad.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/images/milad.jpg
--------------------------------------------------------------------------------
/main/static/main/images/shahab.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/images/shahab.jpg
--------------------------------------------------------------------------------
/main/static/main/images/uiux2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/images/uiux2.png
--------------------------------------------------------------------------------
/main/static/main/images/uiux3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/images/uiux3.png
--------------------------------------------------------------------------------
/front end/bootstrap/images/btn-up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/images/btn-up.png
--------------------------------------------------------------------------------
/front end/bootstrap/images/milad.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/images/milad.jpg
--------------------------------------------------------------------------------
/front end/bootstrap/images/shahab.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/images/shahab.jpg
--------------------------------------------------------------------------------
/front end/bootstrap/images/uiux2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/images/uiux2.png
--------------------------------------------------------------------------------
/front end/bootstrap/images/uiux3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/images/uiux3.png
--------------------------------------------------------------------------------
/front end/dist/assets/images/menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/dist/assets/images/menu.png
--------------------------------------------------------------------------------
/front end/src/assets/images/menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/src/assets/images/menu.png
--------------------------------------------------------------------------------
/main/__pycache__/admin.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/__pycache__/admin.cpython-37.pyc
--------------------------------------------------------------------------------
/main/__pycache__/apps.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/__pycache__/apps.cpython-37.pyc
--------------------------------------------------------------------------------
/main/__pycache__/forms.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/__pycache__/forms.cpython-37.pyc
--------------------------------------------------------------------------------
/main/__pycache__/urls.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/__pycache__/urls.cpython-37.pyc
--------------------------------------------------------------------------------
/main/__pycache__/views.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/__pycache__/views.cpython-37.pyc
--------------------------------------------------------------------------------
/main/locale/fa/LC_MESSAGES/django.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/locale/fa/LC_MESSAGES/django.mo
--------------------------------------------------------------------------------
/main/static/main/images/btn-down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/images/btn-down.png
--------------------------------------------------------------------------------
/main/static/main/images/mohammad.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/images/mohammad.jpg
--------------------------------------------------------------------------------
/front end/bootstrap/images/btn-down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/images/btn-down.png
--------------------------------------------------------------------------------
/front end/bootstrap/images/image01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/images/image01.png
--------------------------------------------------------------------------------
/front end/bootstrap/images/image02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/images/image02.png
--------------------------------------------------------------------------------
/front end/bootstrap/images/image03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/images/image03.png
--------------------------------------------------------------------------------
/front end/bootstrap/images/image05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/images/image05.png
--------------------------------------------------------------------------------
/front end/bootstrap/images/image06.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/images/image06.png
--------------------------------------------------------------------------------
/front end/bootstrap/images/mohammad.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/images/mohammad.jpg
--------------------------------------------------------------------------------
/front end/dist/assets/images/GITHUB.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/dist/assets/images/GITHUB.png
--------------------------------------------------------------------------------
/front end/src/assets/images/GITHUB.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/src/assets/images/GITHUB.png
--------------------------------------------------------------------------------
/front end/src/assets/images/image-01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/src/assets/images/image-01.png
--------------------------------------------------------------------------------
/front end/src/assets/images/image-02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/src/assets/images/image-02.png
--------------------------------------------------------------------------------
/front end/src/assets/images/image-03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/src/assets/images/image-03.png
--------------------------------------------------------------------------------
/front end/src/assets/images/image-04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/src/assets/images/image-04.png
--------------------------------------------------------------------------------
/main/__pycache__/__init__.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/__pycache__/__init__.cpython-37.pyc
--------------------------------------------------------------------------------
/main/__pycache__/models.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/__pycache__/models.cpython-37.pyc
--------------------------------------------------------------------------------
/main/static/main/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/main/static/main/images/pattern/line.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/images/pattern/line.png
--------------------------------------------------------------------------------
/main/static/main/images/pattern/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/images/pattern/logo.png
--------------------------------------------------------------------------------
/mysite/__pycache__/urls.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/mysite/__pycache__/urls.cpython-37.pyc
--------------------------------------------------------------------------------
/mysite/__pycache__/wsgi.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/mysite/__pycache__/wsgi.cpython-37.pyc
--------------------------------------------------------------------------------
/front end/bootstrap/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/front end/dist/assets/images/image-01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/dist/assets/images/image-01.png
--------------------------------------------------------------------------------
/front end/dist/assets/images/image-02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/dist/assets/images/image-02.png
--------------------------------------------------------------------------------
/front end/dist/assets/images/image-03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/dist/assets/images/image-03.png
--------------------------------------------------------------------------------
/front end/dist/assets/images/image-04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/dist/assets/images/image-04.png
--------------------------------------------------------------------------------
/main/static/main/images/pattern/white1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/images/pattern/white1.png
--------------------------------------------------------------------------------
/main/static/main/images/pattern/white2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/images/pattern/white2.png
--------------------------------------------------------------------------------
/mysite/__pycache__/__init__.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/mysite/__pycache__/__init__.cpython-37.pyc
--------------------------------------------------------------------------------
/mysite/__pycache__/routing.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/mysite/__pycache__/routing.cpython-37.pyc
--------------------------------------------------------------------------------
/mysite/__pycache__/settings.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/mysite/__pycache__/settings.cpython-37.pyc
--------------------------------------------------------------------------------
/front end/bootstrap/images/pattern/line.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/images/pattern/line.png
--------------------------------------------------------------------------------
/front end/bootstrap/images/pattern/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/images/pattern/logo.png
--------------------------------------------------------------------------------
/front end/bootstrap/images/pattern/white1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/images/pattern/white1.png
--------------------------------------------------------------------------------
/front end/bootstrap/images/pattern/white2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/images/pattern/white2.png
--------------------------------------------------------------------------------
/main/static/main/fonts/woff/Vazir-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/fonts/woff/Vazir-Bold.woff
--------------------------------------------------------------------------------
/main/static/main/fonts/woff/Vazir-Light.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/fonts/woff/Vazir-Light.woff
--------------------------------------------------------------------------------
/main/static/main/fonts/woff/Vazir-Medium.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/fonts/woff/Vazir-Medium.woff
--------------------------------------------------------------------------------
/main/static/main/fonts/woff/Vazir-Thin.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/fonts/woff/Vazir-Thin.woff
--------------------------------------------------------------------------------
/main/static/main/fonts/woff2/Vazir-Bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/fonts/woff2/Vazir-Bold.woff2
--------------------------------------------------------------------------------
/main/static/main/fonts/woff2/Vazir-Thin.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/fonts/woff2/Vazir-Thin.woff2
--------------------------------------------------------------------------------
/main/static/main/images/pattern/bg-text.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/images/pattern/bg-text.png
--------------------------------------------------------------------------------
/main/static/main/images/pattern/orange0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/images/pattern/orange0.png
--------------------------------------------------------------------------------
/main/static/main/images/pattern/orange1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/images/pattern/orange1.png
--------------------------------------------------------------------------------
/main/static/main/images/pattern/orange2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/images/pattern/orange2.png
--------------------------------------------------------------------------------
/main/static/main/images/pattern/orange3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/images/pattern/orange3.png
--------------------------------------------------------------------------------
/main/static/main/images/pattern/text-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/images/pattern/text-icon.png
--------------------------------------------------------------------------------
/front end/bootstrap/fonts/woff/Vazir-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/fonts/woff/Vazir-Bold.woff
--------------------------------------------------------------------------------
/front end/bootstrap/fonts/woff/Vazir-Light.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/fonts/woff/Vazir-Light.woff
--------------------------------------------------------------------------------
/front end/bootstrap/fonts/woff/Vazir-Thin.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/fonts/woff/Vazir-Thin.woff
--------------------------------------------------------------------------------
/front end/bootstrap/images/pattern/bg-text.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/images/pattern/bg-text.png
--------------------------------------------------------------------------------
/front end/bootstrap/images/pattern/orange0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/images/pattern/orange0.png
--------------------------------------------------------------------------------
/front end/bootstrap/images/pattern/orange1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/images/pattern/orange1.png
--------------------------------------------------------------------------------
/front end/bootstrap/images/pattern/orange2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/images/pattern/orange2.png
--------------------------------------------------------------------------------
/front end/bootstrap/images/pattern/orange3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/images/pattern/orange3.png
--------------------------------------------------------------------------------
/front end/src/assets/fonts/woff/Vazir-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/src/assets/fonts/woff/Vazir-Bold.woff
--------------------------------------------------------------------------------
/front end/src/assets/fonts/woff/Vazir-Thin.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/src/assets/fonts/woff/Vazir-Thin.woff
--------------------------------------------------------------------------------
/main/static/main/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/main/static/main/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/main/static/main/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/main/static/main/fonts/woff2/Vazir-Light.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/fonts/woff2/Vazir-Light.woff2
--------------------------------------------------------------------------------
/main/static/main/fonts/woff2/Vazir-Medium.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/fonts/woff2/Vazir-Medium.woff2
--------------------------------------------------------------------------------
/main/static/main/images/pattern/folder-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/images/pattern/folder-icon.png
--------------------------------------------------------------------------------
/main/static/main/images/pattern/github-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/images/pattern/github-logo.png
--------------------------------------------------------------------------------
/main/static/main/images/pattern/next-slide.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/images/pattern/next-slide.png
--------------------------------------------------------------------------------
/front end/bootstrap/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/front end/bootstrap/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/front end/bootstrap/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/front end/bootstrap/fonts/woff/Vazir-Medium.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/fonts/woff/Vazir-Medium.woff
--------------------------------------------------------------------------------
/front end/bootstrap/fonts/woff2/Vazir-Bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/fonts/woff2/Vazir-Bold.woff2
--------------------------------------------------------------------------------
/front end/bootstrap/fonts/woff2/Vazir-Light.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/fonts/woff2/Vazir-Light.woff2
--------------------------------------------------------------------------------
/front end/bootstrap/fonts/woff2/Vazir-Medium.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/fonts/woff2/Vazir-Medium.woff2
--------------------------------------------------------------------------------
/front end/bootstrap/fonts/woff2/Vazir-Thin.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/fonts/woff2/Vazir-Thin.woff2
--------------------------------------------------------------------------------
/front end/bootstrap/images/pattern/folder-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/images/pattern/folder-icon.png
--------------------------------------------------------------------------------
/front end/bootstrap/images/pattern/github-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/images/pattern/github-logo.png
--------------------------------------------------------------------------------
/front end/bootstrap/images/pattern/next-slide.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/images/pattern/next-slide.png
--------------------------------------------------------------------------------
/front end/bootstrap/images/pattern/text-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/images/pattern/text-icon.png
--------------------------------------------------------------------------------
/front end/dist/assets/fonts/woff/Vazir-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/dist/assets/fonts/woff/Vazir-Bold.woff
--------------------------------------------------------------------------------
/front end/dist/assets/fonts/woff/Vazir-Light.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/dist/assets/fonts/woff/Vazir-Light.woff
--------------------------------------------------------------------------------
/front end/dist/assets/fonts/woff/Vazir-Medium.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/dist/assets/fonts/woff/Vazir-Medium.woff
--------------------------------------------------------------------------------
/front end/dist/assets/fonts/woff/Vazir-Thin.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/dist/assets/fonts/woff/Vazir-Thin.woff
--------------------------------------------------------------------------------
/front end/dist/assets/fonts/woff2/Vazir-Bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/dist/assets/fonts/woff2/Vazir-Bold.woff2
--------------------------------------------------------------------------------
/front end/dist/assets/fonts/woff2/Vazir-Thin.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/dist/assets/fonts/woff2/Vazir-Thin.woff2
--------------------------------------------------------------------------------
/front end/src/assets/fonts/woff/Vazir-Light.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/src/assets/fonts/woff/Vazir-Light.woff
--------------------------------------------------------------------------------
/front end/src/assets/fonts/woff/Vazir-Medium.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/src/assets/fonts/woff/Vazir-Medium.woff
--------------------------------------------------------------------------------
/front end/src/assets/fonts/woff2/Vazir-Bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/src/assets/fonts/woff2/Vazir-Bold.woff2
--------------------------------------------------------------------------------
/front end/src/assets/fonts/woff2/Vazir-Light.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/src/assets/fonts/woff2/Vazir-Light.woff2
--------------------------------------------------------------------------------
/front end/src/assets/fonts/woff2/Vazir-Thin.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/src/assets/fonts/woff2/Vazir-Thin.woff2
--------------------------------------------------------------------------------
/main/apps.py:
--------------------------------------------------------------------------------
1 | from django.apps import AppConfig
2 |
3 |
4 | class MainConfig(AppConfig):
5 | name = 'main'
6 | verbose_name = "پنل کاربری من"
7 |
--------------------------------------------------------------------------------
/main/static/main/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/static/main/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/front end/bootstrap/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/bootstrap/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/front end/dist/assets/fonts/woff2/Vazir-Light.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/dist/assets/fonts/woff2/Vazir-Light.woff2
--------------------------------------------------------------------------------
/front end/dist/assets/fonts/woff2/Vazir-Medium.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/dist/assets/fonts/woff2/Vazir-Medium.woff2
--------------------------------------------------------------------------------
/front end/src/assets/fonts/woff2/Vazir-Medium.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/front end/src/assets/fonts/woff2/Vazir-Medium.woff2
--------------------------------------------------------------------------------
/main/migrations/__pycache__/__init__.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/migrations/__pycache__/__init__.cpython-37.pyc
--------------------------------------------------------------------------------
/main/migrations/__pycache__/0001_initial.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/migrations/__pycache__/0001_initial.cpython-37.pyc
--------------------------------------------------------------------------------
/main/migrations/__pycache__/0002_auto_20190330_2041.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/migrations/__pycache__/0002_auto_20190330_2041.cpython-37.pyc
--------------------------------------------------------------------------------
/main/migrations/__pycache__/0002_auto_20190331_1929.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/migrations/__pycache__/0002_auto_20190331_1929.cpython-37.pyc
--------------------------------------------------------------------------------
/main/migrations/__pycache__/0002_auto_20190331_2118.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/migrations/__pycache__/0002_auto_20190331_2118.cpython-37.pyc
--------------------------------------------------------------------------------
/main/migrations/__pycache__/0002_auto_20190402_2016.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/migrations/__pycache__/0002_auto_20190402_2016.cpython-37.pyc
--------------------------------------------------------------------------------
/main/migrations/__pycache__/0003_auto_20190330_2043.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/migrations/__pycache__/0003_auto_20190330_2043.cpython-37.pyc
--------------------------------------------------------------------------------
/main/migrations/__pycache__/0003_auto_20190401_1401.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/migrations/__pycache__/0003_auto_20190401_1401.cpython-37.pyc
--------------------------------------------------------------------------------
/main/migrations/__pycache__/0003_auto_20190402_2017.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/migrations/__pycache__/0003_auto_20190402_2017.cpython-37.pyc
--------------------------------------------------------------------------------
/main/migrations/__pycache__/0004_auto_20190330_2043.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/migrations/__pycache__/0004_auto_20190330_2043.cpython-37.pyc
--------------------------------------------------------------------------------
/main/migrations/__pycache__/0004_auto_20190401_1401.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/migrations/__pycache__/0004_auto_20190401_1401.cpython-37.pyc
--------------------------------------------------------------------------------
/main/migrations/__pycache__/0004_auto_20190402_2053.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/migrations/__pycache__/0004_auto_20190402_2053.cpython-37.pyc
--------------------------------------------------------------------------------
/main/migrations/__pycache__/0005_auto_20190331_1645.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/migrations/__pycache__/0005_auto_20190331_1645.cpython-37.pyc
--------------------------------------------------------------------------------
/main/migrations/__pycache__/0005_auto_20190401_2316.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/migrations/__pycache__/0005_auto_20190401_2316.cpython-37.pyc
--------------------------------------------------------------------------------
/main/migrations/__pycache__/0005_auto_20190402_2058.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/migrations/__pycache__/0005_auto_20190402_2058.cpython-37.pyc
--------------------------------------------------------------------------------
/main/migrations/__pycache__/0006_auto_20190331_1837.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/migrations/__pycache__/0006_auto_20190331_1837.cpython-37.pyc
--------------------------------------------------------------------------------
/main/migrations/__pycache__/0006_auto_20190401_2348.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/migrations/__pycache__/0006_auto_20190401_2348.cpython-37.pyc
--------------------------------------------------------------------------------
/main/migrations/__pycache__/0006_auto_20190402_2100.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/migrations/__pycache__/0006_auto_20190402_2100.cpython-37.pyc
--------------------------------------------------------------------------------
/main/migrations/__pycache__/0007_auto_20190331_1926.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/migrations/__pycache__/0007_auto_20190331_1926.cpython-37.pyc
--------------------------------------------------------------------------------
/main/migrations/__pycache__/0007_auto_20190402_1624.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/migrations/__pycache__/0007_auto_20190402_1624.cpython-37.pyc
--------------------------------------------------------------------------------
/main/migrations/__pycache__/0007_auto_20190402_2120.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/migrations/__pycache__/0007_auto_20190402_2120.cpython-37.pyc
--------------------------------------------------------------------------------
/main/migrations/__pycache__/0008_auto_20190402_1834.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/migrations/__pycache__/0008_auto_20190402_1834.cpython-37.pyc
--------------------------------------------------------------------------------
/main/migrations/__pycache__/0009_auto_20190402_1840.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/migrations/__pycache__/0009_auto_20190402_1840.cpython-37.pyc
--------------------------------------------------------------------------------
/main/migrations/__pycache__/0010_auto_20190402_1850.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/migrations/__pycache__/0010_auto_20190402_1850.cpython-37.pyc
--------------------------------------------------------------------------------
/main/migrations/__pycache__/0011_auto_20190402_1857.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/migrations/__pycache__/0011_auto_20190402_1857.cpython-37.pyc
--------------------------------------------------------------------------------
/main/migrations/__pycache__/0012_auto_20190402_1905.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/migrations/__pycache__/0012_auto_20190402_1905.cpython-37.pyc
--------------------------------------------------------------------------------
/main/migrations/__pycache__/0013_auto_20190402_1923.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/migrations/__pycache__/0013_auto_20190402_1923.cpython-37.pyc
--------------------------------------------------------------------------------
/main/migrations/__pycache__/0014_auto_20190402_1927.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/migrations/__pycache__/0014_auto_20190402_1927.cpython-37.pyc
--------------------------------------------------------------------------------
/main/migrations/__pycache__/0015_auto_20190402_1928.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/migrations/__pycache__/0015_auto_20190402_1928.cpython-37.pyc
--------------------------------------------------------------------------------
/main/migrations/__pycache__/0016_auto_20190402_1933.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiahamedi/medadfeshari/HEAD/main/migrations/__pycache__/0016_auto_20190402_1933.cpython-37.pyc
--------------------------------------------------------------------------------
/front end/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | indent_style = space
5 | indent_size = 2
6 | end_of_line = lf
7 | charset = utf-8
8 | trim_trailing_whitespace = true
9 | insert_final_newline = true
10 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | db.sqlite3
2 | *.egg-info
3 | *.pot
4 | *.py[co]
5 | .tox/
6 | __pycache__
7 | MANIFEST
8 | dist/
9 | docs/_build/
10 | docs/locale/
11 | node_modules/
12 | tests/coverage_html/
13 | tests/.coverage
14 | build/
15 | tests/report/
16 | settings.py
17 | node_modules
18 | .idea
19 |
--------------------------------------------------------------------------------
/front end/src/assets/scss/_includes.scss:
--------------------------------------------------------------------------------
1 | @import 'helpers/_helpers';
2 | @import '_global';
3 | @import 'base/_base';
4 | @import 'partials/_partials';
5 | @import 'partials/_footer';
6 | @import 'partials/_header';
7 | @import 'modules/_modules';
8 | @import 'components/_components';
9 |
10 |
--------------------------------------------------------------------------------
/front end/src/assets/scss/helpers/_vars.scss:
--------------------------------------------------------------------------------
1 | // Colors
2 | $macaroni-and-cheese: #fec02f;
3 | $macaroni-and-cheese2: #ffc108;
4 | $greyish-brown: #3f3f3f;
5 | $black: #000000;
6 | $white: #ffffff;
7 | $black-two: #383838;
8 | $off-white: #efeeec;
9 | $brown-grey: #898989;
10 | $very-light-pink: #d2d2d2;
--------------------------------------------------------------------------------
/mysite/wsgi.py:
--------------------------------------------------------------------------------
1 | """
2 | WSGI config for mysite project.
3 |
4 | It exposes the WSGI callable as a module-level variable named ``application``.
5 |
6 | For more information on this file, see
7 | https://docs.djangoproject.com/en/2.1/howto/deployment/wsgi/
8 | """
9 |
10 | import os
11 |
12 | from django.core.wsgi import get_wsgi_application
13 |
14 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')
15 |
16 | application = get_wsgi_application()
17 |
--------------------------------------------------------------------------------
/front end/dist/assets/images/pattern-03.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/main/migrations/0002_auto_20190402_2016.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.1.5 on 2019-04-02 20:16
2 |
3 | import datetime
4 | from django.db import migrations, models
5 |
6 |
7 | class Migration(migrations.Migration):
8 |
9 | dependencies = [
10 | ('main', '0001_initial'),
11 | ]
12 |
13 | operations = [
14 | migrations.AlterField(
15 | model_name='myidea',
16 | name='idea_published',
17 | field=models.DateTimeField(default=datetime.datetime(2019, 4, 2, 20, 16, 37, 698419), verbose_name='date published'),
18 | ),
19 | ]
20 |
--------------------------------------------------------------------------------
/front end/src/assets/js/app.js:
--------------------------------------------------------------------------------
1 | $(document).ready(function () {
2 | if ($('.diary-slider')) {
3 | $('.diary-slider').slick({
4 | dots: false,
5 | vertical: true,
6 | slidesToShow: 1,
7 | slidesToScroll: 1,
8 | verticalSwiping: true,
9 | infinite: true,
10 | arrows: true,
11 | focusOnSelect: true,
12 | autoplay: true,
13 | autoplaySpeed: 7000,
14 | });
15 | }
16 |
17 | $("header .menu-button").click(function () {
18 | $("html body").toggleClass("overflow-hidden");
19 | $("header .menu").toggleClass("open");
20 | });
21 | });
--------------------------------------------------------------------------------
/main/migrations/0010_auto_20200327_1018.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.2.10 on 2020-03-27 10:18
2 |
3 | import datetime
4 | from django.db import migrations, models
5 |
6 |
7 | class Migration(migrations.Migration):
8 |
9 | dependencies = [
10 | ('main', '0009_auto_20190531_1514'),
11 | ]
12 |
13 | operations = [
14 | migrations.AlterField(
15 | model_name='myidea',
16 | name='idea_published',
17 | field=models.DateTimeField(default=datetime.datetime(2020, 3, 27, 10, 18, 8, 155784), verbose_name='date published'),
18 | ),
19 | ]
20 |
--------------------------------------------------------------------------------
/main/migrations/0011_auto_20200619_1000.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.2.10 on 2020-06-19 10:00
2 |
3 | import datetime
4 | from django.db import migrations, models
5 |
6 |
7 | class Migration(migrations.Migration):
8 |
9 | dependencies = [
10 | ('main', '0010_auto_20200327_1018'),
11 | ]
12 |
13 | operations = [
14 | migrations.AlterField(
15 | model_name='myidea',
16 | name='idea_published',
17 | field=models.DateTimeField(default=datetime.datetime(2020, 6, 19, 10, 0, 49, 837833), verbose_name='date published'),
18 | ),
19 | ]
20 |
--------------------------------------------------------------------------------
/manage.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | #!/usr/bin/env python
3 | import os
4 | import sys
5 |
6 | if __name__ == '__main__':
7 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')
8 | try:
9 | from django.core.management import execute_from_command_line
10 | except ImportError as exc:
11 | raise ImportError(
12 | "Couldn't import Django. Are you sure it's installed and "
13 | "available on your PYTHONPATH environment variable? Did you "
14 | "forget to activate a virtual environment?"
15 | ) from exc
16 | execute_from_command_line(sys.argv)
17 |
--------------------------------------------------------------------------------
/main/templates/main/editPost.html:
--------------------------------------------------------------------------------
1 | {% extends "main/header.html" %}
2 |
3 | {% block content %}
4 |
5 | {% if user.is_authenticated %}
6 |
7 |
18 |
19 |
20 |
21 | {% endif %}
22 |
23 | {% endblock %}
24 |
--------------------------------------------------------------------------------
/main/templates/main/home.html:
--------------------------------------------------------------------------------
1 | {% extends "main/header.html" %}
2 |
3 | {% block content %}
4 |
5 | {% for idea in ideas %}
6 |
7 |
8 |
9 |
{{idea.idea_title}}
10 |
{{idea.idea_published}}
11 |
{{idea.idea_conttent|safe}}
12 |
13 |
16 |
17 |
18 | {% endfor %}
19 |
20 |
21 | {% endblock %}
22 |
--------------------------------------------------------------------------------
/main/migrations/0006_auto_20190402_2100.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.1.5 on 2019-04-02 21:00
2 |
3 | import datetime
4 | from django.db import migrations, models
5 |
6 |
7 | class Migration(migrations.Migration):
8 |
9 | dependencies = [
10 | ('main', '0005_auto_20190402_2058'),
11 | ]
12 |
13 | operations = [
14 | migrations.RemoveField(
15 | model_name='myidea',
16 | name='idea_publisher',
17 | ),
18 | migrations.AlterField(
19 | model_name='myidea',
20 | name='idea_published',
21 | field=models.DateTimeField(default=datetime.datetime(2019, 4, 2, 21, 0, 33, 65585), verbose_name='date published'),
22 | ),
23 | ]
24 |
--------------------------------------------------------------------------------
/front end/dist/assets/images/right-angle.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
1 | appdirs==1.4.3
2 | asgiref==2.3.2
3 | async-timeout==3.0.1
4 | attrs==19.1.0
5 | autobahn==19.3.3
6 | Automat==0.7.0
7 | cached-property==1.5.1
8 | certifi==2019.3.9
9 | chardet==3.0.4
10 | constantly==15.1.0
11 | daphne==2.2.5
12 | defusedxml==0.6.0
13 | Django==2.2.18
14 | django-allauth==0.41.0
15 | django-crispy-forms==1.7.2
16 | django-recaptcha2==1.4.1
17 | django-tinymce4-lite==1.7.4
18 | hyperlink==18.0.0
19 | idna==2.8
20 | incremental==17.5.0
21 | isodate==0.6.0
22 | jsmin==2.2.2
23 | lxml==4.3.3
24 | oauthlib==3.0.1
25 | PyHamcrest==1.9.0
26 | python3-openid==3.1.0
27 | pytz==2018.9
28 | requests==2.21.0
29 | requests-oauthlib==1.2.0
30 | requests-toolbelt==0.9.1
31 | six==1.12.0
32 | sqlparse==0.3.1
33 | Twisted==20.3.0
34 | txaio==18.8.1
35 | urllib3==1.24.1
36 | zeep==3.3.1
37 | zope.interface==4.6.0
38 |
--------------------------------------------------------------------------------
/main/migrations/0007_auto_20190402_2120.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.1.5 on 2019-04-02 21:20
2 |
3 | import datetime
4 | from django.db import migrations, models
5 |
6 |
7 | class Migration(migrations.Migration):
8 |
9 | dependencies = [
10 | ('main', '0006_auto_20190402_2100'),
11 | ]
12 |
13 | operations = [
14 | migrations.AddField(
15 | model_name='myidea',
16 | name='idea_publisher',
17 | field=models.CharField(default='هم مدادفشاری', max_length=200, verbose_name='Publisher'),
18 | ),
19 | migrations.AlterField(
20 | model_name='myidea',
21 | name='idea_published',
22 | field=models.DateTimeField(default=datetime.datetime(2019, 4, 2, 21, 20, 38, 344623), verbose_name='date published'),
23 | ),
24 | ]
25 |
--------------------------------------------------------------------------------
/main/migrations/0004_auto_20190402_2053.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.1.5 on 2019-04-02 20:53
2 |
3 | import datetime
4 | from django.db import migrations, models
5 | import main.models
6 |
7 |
8 | class Migration(migrations.Migration):
9 |
10 | dependencies = [
11 | ('main', '0003_auto_20190402_2017'),
12 | ]
13 |
14 | operations = [
15 | migrations.AlterField(
16 | model_name='myidea',
17 | name='idea_published',
18 | field=models.DateTimeField(default=datetime.datetime(2019, 4, 2, 20, 53, 42, 192362), verbose_name='date published'),
19 | ),
20 | migrations.AlterField(
21 | model_name='myidea',
22 | name='idea_publisher',
23 | field=models.CharField(default=main.models.u, max_length=200, verbose_name='Publisher'),
24 | ),
25 | ]
26 |
--------------------------------------------------------------------------------
/main/migrations/0003_auto_20190402_2017.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.1.5 on 2019-04-02 20:17
2 |
3 | import datetime
4 | from django.db import migrations, models
5 |
6 |
7 | class Migration(migrations.Migration):
8 |
9 | dependencies = [
10 | ('main', '0002_auto_20190402_2016'),
11 | ]
12 |
13 | operations = [
14 | migrations.AddField(
15 | model_name='myidea',
16 | name='idea_publisher',
17 | field=models.CharField(default='kia', max_length=200, verbose_name='Publisher'),
18 | preserve_default=False,
19 | ),
20 | migrations.AlterField(
21 | model_name='myidea',
22 | name='idea_published',
23 | field=models.DateTimeField(default=datetime.datetime(2019, 4, 2, 20, 17, 32, 258367), verbose_name='date published'),
24 | ),
25 | ]
26 |
--------------------------------------------------------------------------------
/main/forms.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | from django import forms
3 | from django.contrib.auth.forms import UserCreationForm
4 | from django.contrib.auth.models import User
5 |
6 | from snowpenguin.django.recaptcha2.fields import ReCaptchaField
7 | from snowpenguin.django.recaptcha2.widgets import ReCaptchaWidget
8 |
9 |
10 |
11 |
12 | class NewUserForm(UserCreationForm):
13 | email = forms.EmailField(required=True)
14 | captcha = ReCaptchaField(widget=ReCaptchaWidget())
15 |
16 | class Meta:
17 | model = User
18 | fields = ("username","email","password1","password2")
19 |
20 |
21 | def save(self,commit=True):
22 | user = super(NewUserForm,self).save(commit=False)
23 | user.email = self.cleaned_data['email']
24 | if commit:
25 | user.is_staff = True
26 | user.save()
27 | return user
28 |
29 | class PasswordResetRequestForm(forms.Form):
30 | email_or_username = forms.CharField(label=("Email Or Username"), max_length=254)
31 |
--------------------------------------------------------------------------------
/mysite/urls.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """mysite URL Configuration
3 |
4 | The `urlpatterns` list routes URLs to views. For more information please see:
5 | https://docs.djangoproject.com/en/2.1/topics/http/urls/
6 | Examples:
7 | Function views
8 | 1. Add an import: from my_app import views
9 | 2. Add a URL to urlpatterns: path('', views.home, name='home')
10 | Class-based views
11 | 1. Add an import: from other_app.views import Home
12 | 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
13 | Including another URLconf
14 | 1. Import the include() function: from django.urls import include, path
15 | 2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
16 | """
17 | from django.contrib import admin
18 | from django.urls import path , include
19 |
20 | urlpatterns = [
21 |
22 | path('admin/', admin.site.urls),
23 | path('tinymce/',include('tinymce.urls')),
24 | path('', include('main.urls')),
25 |
26 |
27 | ]
28 |
--------------------------------------------------------------------------------
/front end/dist/assets/images/icon-folder.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/main/migrations/0005_auto_20190402_2058.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.1.5 on 2019-04-02 20:58
2 |
3 | import datetime
4 | from django.conf import settings
5 | from django.db import migrations, models
6 | import django.db.models.deletion
7 |
8 |
9 | class Migration(migrations.Migration):
10 |
11 | dependencies = [
12 | migrations.swappable_dependency(settings.AUTH_USER_MODEL),
13 | ('main', '0004_auto_20190402_2053'),
14 | ]
15 |
16 | operations = [
17 | migrations.AddField(
18 | model_name='myidea',
19 | name='created_by',
20 | field=models.ForeignKey(default='1', on_delete=django.db.models.deletion.CASCADE, related_name='created_by', to=settings.AUTH_USER_MODEL),
21 | preserve_default=False,
22 | ),
23 | migrations.AlterField(
24 | model_name='myidea',
25 | name='idea_published',
26 | field=models.DateTimeField(default=datetime.datetime(2019, 4, 2, 20, 58, 35, 462491), verbose_name='date published'),
27 | ),
28 | ]
29 |
--------------------------------------------------------------------------------
/front end/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 JR Cologne
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/main/templates/main/login.html:
--------------------------------------------------------------------------------
1 | {% extends "main/header.html" %}
2 |
3 | {% block content %}
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | {% csrf_token %}
12 |
13 | نام کاربری
14 | {{form.username}}
15 |
16 |
17 | گذرواژه
18 | {{form.password}}
19 |
20 | ورود
21 | اگر حساب کاربری ندارید
22 | ثبت نام
23 | کنید
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | {% endblock %}
33 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # medadfeshari
2 | > A story writing site with the Django framework - work with python 3 and django 2.1.5
3 |
4 | [](https://GitHub.com/Naereen/StrapDown.js/graphs/commit-activity)
5 | [](https://www.gnu.org/licenses/gpl-3.0)
6 |
7 |
8 | 
9 |
10 | ## Downloading
11 | ```bash
12 | $ git clone https://github.com/kiahamedi/medadfeshari.git
13 | $ pip3 install requirements.txt
14 | $ cd medadfeshari/
15 | $ cd mysite/
16 | $ mv settings.py.sample settings.py
17 | $ cd ..
18 | $ python3 manage.py runserver
19 | ```
20 |
21 | # Online
22 | > This site is online on domain : http://medadfeshari.ir
23 |
24 | # Chatroom
25 | > If you need chatroom, see this repository : https://github.com/kiahamedi/node-chat-app
26 | 
27 |
28 | ## Are you a developer?
29 | > 1-Fork it!
30 | > 2-Create your feature branch: git checkout -b my-new-feature
31 | > 3-Commit your changes: git commit -am 'Add some feature'
32 | > 4-Push to the branch: git push origin my-new-feature
33 | > 5-Submit a pull request
34 |
--------------------------------------------------------------------------------
/front end/src/assets/scss/base/_base.scss:
--------------------------------------------------------------------------------
1 | @import "../global";
2 | @import "./Normalize";
3 |
4 | @font-face {
5 | font-family: Vazir;
6 | font-style: normal;
7 | font-weight: bold;
8 | src: url("./../../fonts/woff2/Vazir-Bold.woff2") format("woff2"),
9 | url("./../../fonts/woff/Vazir-Bold.woff") format("woff");
10 | }
11 | @font-face {
12 | font-family: Vazir;
13 | font-style: normal;
14 | font-weight: 300;
15 | src: url("./../../fonts/woff2/Vazir-Light.woff2") format("woff2"),
16 | url("./../../fonts/woff/Vazir-Light.woff") format("woff");
17 | }
18 | @font-face {
19 | font-family: Vazir;
20 | font-style: normal;
21 | font-weight: normal;
22 | src: url("./../../fonts/woff2/Vazir-Medium.woff2") format("woff2"),
23 | url("./../../fonts/woff/Vazir-Medium.woff") format("woff");
24 | }
25 |
26 | *,
27 | ::before,
28 | ::before {
29 | margin: 0;
30 | padding: 0;
31 | box-sizing: border-box;
32 | -webkit-font-smoothing: antialiased;
33 | -moz-osx-font-smoothing: grayscale;
34 | outline: none;
35 | }
36 |
37 | html,
38 | body {
39 | font: 16px/25px Vazir;
40 | background: $white;
41 | &.overflow-hidden {
42 | overflow: hidden;
43 | }
44 | a {
45 | text-decoration: none;
46 | &:hover {
47 | text-decoration: none;
48 | }
49 | &:visited {
50 | color: inherit;
51 | }
52 | }
53 | .container {
54 | display: block;
55 | margin: 0 auto;
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/main/migrations/0009_auto_20190531_1514.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.1.5 on 2019-05-31 15:14
2 |
3 | import datetime
4 | from django.db import migrations, models
5 |
6 |
7 | class Migration(migrations.Migration):
8 |
9 | dependencies = [
10 | ('main', '0008_auto_20190515_1633'),
11 | ]
12 |
13 | operations = [
14 | migrations.CreateModel(
15 | name='Comments',
16 | fields=[
17 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
18 | ('post_id', models.CharField(max_length=200)),
19 | ('post_title', models.CharField(max_length=200)),
20 | ('reply_id', models.CharField(max_length=200)),
21 | ('user_name', models.CharField(max_length=200)),
22 | ('comment', models.CharField(max_length=200)),
23 | ],
24 | options={
25 | 'verbose_name_plural': 'دیدگاه ها',
26 | },
27 | ),
28 | migrations.AlterModelOptions(
29 | name='donate',
30 | options={'verbose_name_plural': 'حمایت های مالی'},
31 | ),
32 | migrations.AlterField(
33 | model_name='myidea',
34 | name='idea_published',
35 | field=models.DateTimeField(default=datetime.datetime(2019, 5, 31, 15, 14, 13, 822439), verbose_name='date published'),
36 | ),
37 | ]
38 |
--------------------------------------------------------------------------------
/front end/bootstrap/js/index.js:
--------------------------------------------------------------------------------
1 | $(document).ready(function() {
2 |
3 | $("#owl-example").owlCarousel({
4 | 'items' : 1,
5 | 'itemsDesktop':1,
6 | 'itemsDesktopSmall':1,
7 | 'itemsTablet':1,
8 | 'itemsMobile':1,
9 | 'navigation':true,
10 | 'pagination':true,
11 | 'navigationText':["ﺩاﺳﺘﺎﻥ ﻗﺒﻞی","ﺩاﺳﺘﺎﻥ ﺑﻌﺪی"]
12 | });
13 |
14 | });
15 |
16 | // $('.step .one .arrow i').click(function(){
17 | // $(this).toggleClass('actives');
18 | // $(this).parents('.step').find('.author').slideToggle(150);
19 | // });
20 |
21 |
22 | // $(function(){
23 |
24 | // $('#submitinput').click(function(){
25 | // var nameContent = $('#nameinput').val();
26 | // var emailContent = $('#emailinput').val();
27 | // var priceContent = $('#priceinput').val();
28 | // if(nameContent == ''){
29 | // $('.messagebox').fadeIn('slow').delay(2000).fadeOut('.messagebox');
30 | // }else if(emailContent == ''){
31 | // $('.messagebox').fadeIn('slow').delay(2000).fadeOut('.messagebox');
32 | // }else if(priceContent == ''){
33 | // $('.messagebox').fadeIn('slow').delay(2000).fadeOut('.messagebox');
34 | // }
35 | // });
36 |
37 | // });
38 |
39 | $('.btn-support').click(function(){
40 | $('.support-table').slideToggle(500);
41 | });
42 |
43 |
--------------------------------------------------------------------------------
/main/templates/main/category.html:
--------------------------------------------------------------------------------
1 | {% extends "main/header.html" %}
2 | {% load staticfiles %}
3 | {% block content %}
4 |
5 |
6 |
7 |
8 |
9 |
10 |
دسته بندی ها
11 |
16 | {% for idea, partone in part_ones.items %}
17 |
29 | {% endfor %}
30 |
31 |
32 |
33 |
34 |
35 |
36 | {% endblock %}
--------------------------------------------------------------------------------
/front end/dist/assets/js/all.js:
--------------------------------------------------------------------------------
1 | "use strict";function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}!function(o){var n={};function r(e){if(n[e])return n[e].exports;var t=n[e]={i:e,l:!1,exports:{}};return o[e].call(t.exports,t,t.exports,r),t.l=!0,t.exports}r.m=o,r.c=n,r.d=function(e,t,o){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==_typeof(t)&&t&&t.__esModule)return t;var o=Object.create(null);if(r.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)r.d(o,n,function(e){return t[e]}.bind(null,n));return o},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=0)}([function(e,t){$(document).ready(function(){$(".diary-slider")&&$(".diary-slider").slick({dots:!1,vertical:!0,slidesToShow:1,slidesToScroll:1,verticalSwiping:!0,infinite:!0,arrows:!0,focusOnSelect:!0,autoplay:!0,autoplaySpeed:7e3}),$("header .menu-button").click(function(){$("html body").toggleClass("overflow-hidden"),$("header .menu").toggleClass("open")})})}]);
2 | //# sourceMappingURL=all.js.map
3 |
--------------------------------------------------------------------------------
/main/migrations/0008_auto_20190515_1633.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.1.5 on 2019-05-15 16:33
2 |
3 | import datetime
4 | from django.db import migrations, models
5 |
6 |
7 | class Migration(migrations.Migration):
8 |
9 | dependencies = [
10 | ('main', '0007_auto_20190402_2120'),
11 | ]
12 |
13 | operations = [
14 | migrations.CreateModel(
15 | name='Donate',
16 | fields=[
17 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
18 | ('name_donate', models.CharField(max_length=200)),
19 | ('email_donate', models.CharField(max_length=200)),
20 | ('amount_donate', models.CharField(max_length=200)),
21 | ('transaction_code_donate', models.CharField(max_length=200)),
22 | ('transaction_status_donate', models.CharField(max_length=200)),
23 | ],
24 | options={
25 | 'verbose_name_plural': 'Donate',
26 | },
27 | ),
28 | migrations.AlterField(
29 | model_name='myidea',
30 | name='idea_published',
31 | field=models.DateTimeField(default=datetime.datetime(2019, 5, 15, 16, 33, 51, 839854), verbose_name='date published'),
32 | ),
33 | migrations.AlterField(
34 | model_name='myidea',
35 | name='idea_publisher',
36 | field=models.CharField(default='هم مدادفشاری', help_text='میتوانید نوشته خود را با یک نام خاص انتشار دهید', max_length=200, verbose_name='نگارنده'),
37 | ),
38 | ]
39 |
--------------------------------------------------------------------------------
/front end/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@jr-cologne/create-gulp-starter-kit",
3 | "version": "0.5.0-alpha",
4 | "description": "A simple Gulp 4 Starter Kit for modern web development.",
5 | "keywords": [
6 | "gulp",
7 | "gulp-starter-kit",
8 | "sass",
9 | "scss",
10 | "babel",
11 | "browser-sync",
12 | "autoprefixer",
13 | "modern-web-dev",
14 | "imagemin",
15 | "sourcemaps",
16 | "webpack-stream",
17 | "es6-modules"
18 | ],
19 | "scripts": {
20 | "start": "gulp",
21 | "build": "gulp build"
22 | },
23 | "bin": {
24 | "create-gulp-starter-kit": "./bin/install.js"
25 | },
26 | "repository": {
27 | "type": "git",
28 | "url": "https://github.com/jr-cologne/gulp-starter-kit.git"
29 | },
30 | "author": "JR Cologne",
31 | "license": "MIT",
32 | "bugs": {
33 | "url": "https://github.com/jr-cologne/gulp-starter-kit/issues"
34 | },
35 | "homepage": "https://github.com/jr-cologne/gulp-starter-kit",
36 | "devDependencies": {
37 | "@babel/core": "^7.4.3",
38 | "@babel/preset-env": "^7.4.3",
39 | "browser-sync": "^2.26.3",
40 | "del": "^3.0.0",
41 | "gulp": "^4.0.0",
42 | "gulp-autoprefixer": "^6.0.0",
43 | "gulp-babel": "^8.0.0",
44 | "gulp-concat": "^2.6.1",
45 | "gulp-cssnano": "^2.1.3",
46 | "gulp-imagemin": "^5.0.3",
47 | "gulp-plumber": "^1.2.1",
48 | "gulp-sass": "^4.0.2",
49 | "gulp-sourcemaps": "^2.6.5",
50 | "gulp-uglify": "^3.0.2",
51 | "webpack-stream": "^5.2.1"
52 | },
53 | "dependencies": {
54 | "axios": "^0.18.0",
55 | "fs-extra": "^7.0.1"
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/main/static/main/js/index.js:
--------------------------------------------------------------------------------
1 | $(document).ready(function() {
2 |
3 | function removeAlert(){
4 | $('.fadeoutalertsuc').fadeOut(5000);
5 |
6 | $('.fadeoutalertinfo').fadeOut(5000);
7 |
8 | $('.fadeoutalertwarnin').fadeOut(5000);
9 |
10 | $('.fadeoutalerterror').fadeOut(5000);
11 | }
12 |
13 | removeAlert();
14 |
15 | $("#owl-example").owlCarousel({
16 | 'items' : 1,
17 | 'itemsDesktop':1,
18 | 'itemsDesktopSmall':1,
19 | 'itemsTablet':1,
20 | 'itemsMobile':1,
21 | 'navigation':true,
22 | 'pagination':true,
23 | 'navigationText':["ﺩاﺳﺘﺎﻥ ﻗﺒﻞی","ﺩاﺳﺘﺎﻥ ﺑﻌﺪی"]
24 | });
25 |
26 | });
27 |
28 | // $('.step .one .arrow i').click(function(){
29 | // $(this).toggleClass('actives');
30 | // $(this).parents('.step').find('.author').slideToggle(150);
31 | // });
32 |
33 |
34 | // $(function(){
35 |
36 | // $('#submitinput').click(function(){
37 | // var nameContent = $('#nameinput').val();
38 | // var emailContent = $('#emailinput').val();
39 | // var priceContent = $('#priceinput').val();
40 | // if(nameContent == ''){
41 | // $('.messagebox').fadeIn('slow').delay(2000).fadeOut('.messagebox');
42 | // }else if(emailContent == ''){
43 | // $('.messagebox').fadeIn('slow').delay(2000).fadeOut('.messagebox');
44 | // }else if(priceContent == ''){
45 | // $('.messagebox').fadeIn('slow').delay(2000).fadeOut('.messagebox');
46 | // }
47 | // });
48 |
49 | // });
50 |
51 | $('.btn-support').click(function(){
52 | $('.support-table').slideToggle(500);
53 | });
54 |
55 |
--------------------------------------------------------------------------------
/main/templates/main/includes/messages.html:
--------------------------------------------------------------------------------
1 | {% if messages %}
2 | {% for message in messages %}
3 | {% if message.tags == 'success' %}
4 |
5 |
6 |
7 |
8 |
×
9 |
{{message}}
10 |
11 |
12 |
13 | {% elif message.tags == 'info' %}
14 |
15 |
16 |
17 |
×
18 |
{{message}}
19 |
20 |
21 |
22 | {% elif message.tags == 'warning' %}
23 |
24 |
25 |
26 |
×
27 |
{{message}}
28 |
29 |
30 |
31 | {% elif message.tags == 'error' %}
32 |
33 |
34 |
35 |
×
36 |
{{message}}
37 |
38 |
39 |
40 |
41 | {% endif %}
42 | {% endfor %}
43 | {% endif %}
--------------------------------------------------------------------------------
/front end/bootstrap/css/owl.carousel.css:
--------------------------------------------------------------------------------
1 | /*
2 | * Core Owl Carousel CSS File
3 | * v1.3.3
4 | */
5 |
6 | /* clearfix */
7 | .owl-carousel .owl-wrapper:after {
8 | content: ".";
9 | display: block;
10 | clear: both;
11 | visibility: hidden;
12 | line-height: 0;
13 | height: 0;
14 | }
15 | /* display none until init */
16 | .owl-carousel{
17 | display: none;
18 | position: relative;
19 | width: 100%;
20 | -ms-touch-action: pan-y;
21 | }
22 | .owl-carousel .owl-wrapper{
23 | display: none;
24 | position: relative;
25 | -webkit-transform: translate3d(0px, 0px, 0px);
26 | }
27 | .owl-carousel .owl-wrapper-outer{
28 | overflow: hidden;
29 | position: relative;
30 | width: 100%;
31 | }
32 | .owl-carousel .owl-wrapper-outer.autoHeight{
33 | -webkit-transition: height 500ms ease-in-out;
34 | -moz-transition: height 500ms ease-in-out;
35 | -ms-transition: height 500ms ease-in-out;
36 | -o-transition: height 500ms ease-in-out;
37 | transition: height 500ms ease-in-out;
38 | }
39 |
40 | .owl-carousel .owl-item{
41 | float: left;
42 | }
43 | .owl-controls .owl-page,
44 | .owl-controls .owl-buttons div{
45 | cursor: pointer;
46 | }
47 | .owl-controls {
48 | -webkit-user-select: none;
49 | -khtml-user-select: none;
50 | -moz-user-select: none;
51 | -ms-user-select: none;
52 | user-select: none;
53 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
54 | }
55 |
56 | /* mouse grab icon */
57 | .grabbing {
58 | cursor:url(grabbing.png) 8 8, move;
59 | }
60 |
61 | /* fix */
62 | .owl-carousel .owl-wrapper,
63 | .owl-carousel .owl-item{
64 | -webkit-backface-visibility: hidden;
65 | -moz-backface-visibility: hidden;
66 | -ms-backface-visibility: hidden;
67 | -webkit-transform: translate3d(0,0,0);
68 | -moz-transform: translate3d(0,0,0);
69 | -ms-transform: translate3d(0,0,0);
70 | }
71 |
72 |
--------------------------------------------------------------------------------
/main/static/main/css/owl.carousel.css:
--------------------------------------------------------------------------------
1 | /*
2 | * Core Owl Carousel CSS File
3 | * v1.3.3
4 | */
5 |
6 | /* clearfix */
7 | .owl-carousel .owl-wrapper:after {
8 | content: ".";
9 | display: block;
10 | clear: both;
11 | visibility: hidden;
12 | line-height: 0;
13 | height: 0;
14 | }
15 | /* display none until init */
16 | .owl-carousel{
17 | display: none;
18 | position: relative;
19 | width: 100%;
20 | -ms-touch-action: pan-y;
21 | }
22 | .owl-carousel .owl-wrapper{
23 | display: none;
24 | position: relative;
25 | -webkit-transform: translate3d(0px, 0px, 0px);
26 | }
27 | .owl-carousel .owl-wrapper-outer{
28 | overflow: hidden;
29 | position: relative;
30 | width: 100%;
31 | }
32 | .owl-carousel .owl-wrapper-outer.autoHeight{
33 | -webkit-transition: height 500ms ease-in-out;
34 | -moz-transition: height 500ms ease-in-out;
35 | -ms-transition: height 500ms ease-in-out;
36 | -o-transition: height 500ms ease-in-out;
37 | transition: height 500ms ease-in-out;
38 | }
39 |
40 | .owl-carousel .owl-item{
41 | float: left;
42 | }
43 | .owl-controls .owl-page,
44 | .owl-controls .owl-buttons div{
45 | cursor: pointer;
46 | }
47 | .owl-controls {
48 | -webkit-user-select: none;
49 | -khtml-user-select: none;
50 | -moz-user-select: none;
51 | -ms-user-select: none;
52 | user-select: none;
53 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
54 | }
55 |
56 | /* mouse grab icon */
57 | .grabbing {
58 | cursor:url(grabbing.png) 8 8, move;
59 | }
60 |
61 | /* fix */
62 | .owl-carousel .owl-wrapper,
63 | .owl-carousel .owl-item{
64 | -webkit-backface-visibility: hidden;
65 | -moz-backface-visibility: hidden;
66 | -ms-backface-visibility: hidden;
67 | -webkit-transform: translate3d(0,0,0);
68 | -moz-transform: translate3d(0,0,0);
69 | -ms-transform: translate3d(0,0,0);
70 | }
71 |
72 |
--------------------------------------------------------------------------------
/main/urls.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """mysite URL Configuration
3 |
4 | The `urlpatterns` list routes URLs to views. For more information please see:
5 | https://docs.djangoproject.com/en/2.1/topics/http/urls/
6 | Examples:
7 | Function views
8 | 1. Add an import: from my_app import views
9 | 2. Add a URL to urlpatterns: path('', views.home, name='home')
10 | Class-based views
11 | 1. Add an import: from other_app.views import Home
12 | 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
13 | Including another URLconf
14 | 1. Import the include() function: from django.urls import include, path
15 | 2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
16 | """
17 | from django.urls import path , re_path
18 | from . import views
19 | from django.contrib.auth import views as auth_views
20 |
21 | app_name = "main"
22 |
23 | urlpatterns = [
24 | path("",views.homepage,name="homepage"),
25 | path("register/",views.register,name="register"),
26 | path("logout/",views.logout_request,name="logout"),
27 | path("login/",views.login_request,name="login"),
28 | path("chat/",views.index,name="index"),
29 | path("editPost/",views.editPost,name="editPost"),
30 | path("backstage/",views.backstage,name="backstage"),
31 | path("editPostDone/",views.editPostDone,name="editPostDone"),
32 | path("",views.single_slug,name="single_slug"),
33 | path('zarinpal/request/', views.send_request, name='request'),
34 | path('zarinpal/verify/', views.verify , name='verify'),
35 | path("donate/",views.donate,name="donate"),
36 | path("removeIdea/",views.removeIdea,name="removeIdea"),
37 | path("addcomments/",views.addcomments,name="addcomments"),
38 | path("replaycomments/",views.replaycomments,name="replaycomments"),
39 |
40 |
41 | ]
42 |
--------------------------------------------------------------------------------
/front end/dist/assets/css/base/Normalize.css:
--------------------------------------------------------------------------------
1 | /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}
2 | /*# sourceMappingURL=Normalize.css.map */
3 |
--------------------------------------------------------------------------------
/main/static/main/css/media.css:
--------------------------------------------------------------------------------
1 | @media screen and (max-width: 1200px) {
2 | header .header-top .navbar-nav li a {
3 | font-size: 20px;
4 | }
5 |
6 | header .header-top .navbar-header .navbar-brand {
7 | font-size: 35px;
8 | }
9 | }
10 |
11 | @media screen and (max-width: 1000px) {
12 | header .header-top .navbar-nav li a {
13 | font-size: 18px;
14 | }
15 |
16 | header .header-top .navbar-header .navbar-brand {
17 | font-size: 25px;
18 | margin-left: 10px;
19 | }
20 | }
21 |
22 | @media screen and (max-width: 768px) {
23 | header .header-top .navbar-nav li {
24 | text-align: center;
25 | display: block;
26 | margin: 5px 0;
27 | }
28 |
29 | header .header-top .navbar-nav li:after {
30 | content: "";
31 | }
32 |
33 | .footer-menu ul {
34 | display: none;
35 | }
36 |
37 | footer .footer-bottom h2 {
38 | font: bold 22px vazir !important;
39 |
40 | }
41 |
42 | .single-page .content .date-author ul li {
43 | font-size: 11px;
44 | }
45 | .start .start-text h3{
46 | font-size:20px;
47 | }
48 | .slider .post-text p{
49 | margin-bottom: 65px;
50 | font-size:17px;
51 | line-height: 40px;
52 | }
53 | .slider .post-text h4{
54 | font-size: 20px;
55 | }
56 | .backend .step .images img{
57 | margin: 0 auto ;
58 | }
59 | .donat .supporters table{
60 | font-size: 12px;
61 | margin: 15px 0;
62 | }
63 | }
64 | @media screen and (max-width: 360px){
65 | .start .start-text h3{
66 | font-size:20px;
67 | padding:10px 40px;
68 | }
69 | .slider .post-text p{
70 | margin-bottom: 110px;
71 | font-size:16px;
72 | }
73 | .donat .supporters table{
74 | font-size: 11px;
75 | margin: 15px 0;
76 | }
77 |
78 | }
79 |
--------------------------------------------------------------------------------
/front end/bootstrap/css/media.css:
--------------------------------------------------------------------------------
1 | @media screen and (max-width: 1200px) {
2 | header .header-top .navbar-nav li a {
3 | font-size: 20px;
4 | }
5 |
6 | header .header-top .navbar-header .navbar-brand {
7 | font-size: 35px;
8 | }
9 | }
10 |
11 | @media screen and (max-width: 1000px) {
12 | header .header-top .navbar-nav li a {
13 | font-size: 18px;
14 | }
15 |
16 | header .header-top .navbar-header .navbar-brand {
17 | font-size: 25px;
18 | margin-left: 10px;
19 | }
20 | }
21 |
22 | @media screen and (max-width: 768px) {
23 | header .header-top .navbar-nav li {
24 | text-align: center;
25 | display: block;
26 | margin: 5px 0;
27 | }
28 |
29 | header .header-top .navbar-nav li:after {
30 | content: "";
31 | }
32 |
33 | .footer-menu ul {
34 | display: none;
35 | }
36 |
37 | footer .footer-bottom h2 {
38 | font: bold 22px vazir !important;
39 |
40 | }
41 |
42 | .single-page .content .date-author ul li {
43 | font-size: 11px;
44 | }
45 | .start .start-text h3{
46 | font-size:20px;
47 | }
48 | .slider .post-text p{
49 | margin-bottom: 65px;
50 | font-size:17px;
51 | line-height: 40px;
52 | }
53 | .slider .post-text h4{
54 | font-size: 20px;
55 | }
56 | .backend .step .images img{
57 | margin: 0 auto ;
58 | }
59 | .donat .supporters table{
60 | font-size: 12px;
61 | margin: 15px 0;
62 | }
63 | }
64 | @media screen and (max-width: 360px){
65 | .start .start-text h3{
66 | font-size:20px;
67 | padding:10px 40px;
68 | }
69 | .slider .post-text p{
70 | margin-bottom: 110px;
71 | font-size:16px;
72 | }
73 | .donat .supporters table{
74 | font-size: 11px;
75 | margin: 15px 0;
76 | }
77 |
78 | }
79 |
--------------------------------------------------------------------------------
/main/locale/fa/LC_MESSAGES/django.po:
--------------------------------------------------------------------------------
1 | # SOME DESCRIPTIVE TITLE.
2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the PACKAGE package.
4 | # FIRST AUTHOR , YEAR.
5 | #
6 | #, fuzzy
7 | msgid ""
8 | msgstr ""
9 | "Project-Id-Version: PACKAGE VERSION\n"
10 | "Report-Msgid-Bugs-To: \n"
11 | "POT-Creation-Date: 2019-04-09 00:05+0430\n"
12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13 | "Last-Translator: FULL NAME \n"
14 | "Language-Team: LANGUAGE \n"
15 | "Language: \n"
16 | "MIME-Version: 1.0\n"
17 | "Content-Type: text/plain; charset=UTF-8\n"
18 | "Content-Transfer-Encoding: 8bit\n"
19 | "Plural-Forms: nplurals=2; plural=(n > 1);\n"
20 |
21 | #: main/models.py:24
22 | msgid "Categories"
23 | msgstr "دسته بندی ها"
24 |
25 | #: main/models.py:36 main/models.py:49
26 | msgid "Series"
27 | msgstr "زیر دسته ها"
28 |
29 | #: main/models.py:45
30 | msgid "Title"
31 | msgstr "عنوان"
32 |
33 | #: main/models.py:46
34 | msgid "Content"
35 | msgstr "محتوا"
36 |
37 | #: main/models.py:47
38 | msgid "date published"
39 | msgstr "زمان انتشار"
40 |
41 | #: main/models.py:50
42 | msgid "url"
43 | msgstr "آدرس اینترنتی"
44 |
45 | #: main/models.py:51
46 | msgid "نگارنده"
47 | msgstr ""
48 |
49 | #: main/models.py:54
50 | msgid "My idea"
51 | msgstr "نوشته های من"
52 |
53 | #: main/views.py:30
54 | msgid "New Account Created: "
55 | msgstr "حساب کاربری شما ساخته شد "
56 |
57 | #: main/views.py:35 main/views.py:65
58 | msgid "You are now logged in as "
59 | msgstr "شما وارد شدید "
60 |
61 | #: main/views.py:52
62 | msgid "Logged out successfully"
63 | msgstr "شما با موفقیت خارج شدید"
64 |
65 | #: main/views.py:69 main/views.py:72
66 | #, fuzzy
67 | #| msgid "Invalid ysername or password"
68 | msgid "Invalid ysername or password or recaptcha"
69 | msgstr "نام کاربری ، کلمه عبور با ریکپچا نامعتبر است"
70 |
71 | #, fuzzy
72 | #~| msgid "date published"
73 | #~ msgid "Publisher"
74 | #~ msgstr "نگارنده"
75 |
--------------------------------------------------------------------------------
/main/static/main/css/owl.theme.css:
--------------------------------------------------------------------------------
1 | /*
2 | * Owl Carousel Owl Demo Theme
3 | * v1.3.3
4 | */
5 |
6 | .owl-theme .owl-controls{
7 | margin-top: 10px;
8 | text-align: center;
9 | }
10 |
11 | /* Styling Next and Prev buttons */
12 |
13 | .owl-theme .owl-controls .owl-buttons div{
14 | color: #fff;
15 | display: inline-block;
16 | zoom: 1;
17 | *display: inline;/*IE7 life-saver */
18 | margin: 5px;
19 | padding: 3px 20px;
20 | font-size: 12px;
21 | -webkit-border-radius: 30px;
22 | -moz-border-radius: 30px;
23 | background: url(../images/pattern/orange1.png);
24 | background-size: 100% 100%;
25 | opacity: 1;
26 | }
27 | /* Clickable class fix problem with hover on touch devices */
28 | /* Use it for non-touch hover action */
29 | .owl-theme .owl-controls.clickable .owl-buttons div:hover{
30 | filter: Alpha(Opacity=100);/*IE7 fix*/
31 | opacity: 1;
32 | text-decoration: none;
33 | }
34 |
35 | /* Styling Pagination*/
36 |
37 | .owl-theme .owl-controls .owl-page{
38 | display: inline-block;
39 | zoom: 1;
40 | *display: inline;/*IE7 life-saver */
41 | }
42 | .owl-theme .owl-controls .owl-page span{
43 | display: block;
44 | width: 12px;
45 | height: 12px;
46 | margin: 5px 7px;
47 | filter: Alpha(Opacity=50);/*IE7 fix*/
48 | opacity: 0.5;
49 | -webkit-border-radius: 20px;
50 | -moz-border-radius: 20px;
51 | border-radius: 20px;
52 | background: #869791;
53 | }
54 |
55 | .owl-theme .owl-controls .owl-page.active span,
56 | .owl-theme .owl-controls.clickable .owl-page:hover span{
57 | filter: Alpha(Opacity=100);/*IE7 fix*/
58 | opacity: 1;
59 | }
60 |
61 | /* If PaginationNumbers is true */
62 |
63 | .owl-theme .owl-controls .owl-page span.owl-numbers{
64 | height: auto;
65 | width: auto;
66 | color: #FFF;
67 | padding: 2px 10px;
68 | font-size: 12px;
69 | -webkit-border-radius: 30px;
70 | -moz-border-radius: 30px;
71 | border-radius: 30px;
72 | }
73 |
74 | /* preloading images */
75 | .owl-item.loading{
76 | min-height: 150px;
77 | background: url(AjaxLoader.gif) no-repeat center center
78 | }
--------------------------------------------------------------------------------
/front end/bootstrap/css/owl.theme.css:
--------------------------------------------------------------------------------
1 | /*
2 | * Owl Carousel Owl Demo Theme
3 | * v1.3.3
4 | */
5 |
6 | .owl-theme .owl-controls{
7 | margin-top: 10px;
8 | text-align: center;
9 | }
10 |
11 | /* Styling Next and Prev buttons */
12 |
13 | .owl-theme .owl-controls .owl-buttons div{
14 | color: #fff;
15 | display: inline-block;
16 | zoom: 1;
17 | *display: inline;/*IE7 life-saver */
18 | margin: 5px;
19 | padding: 3px 20px;
20 | font-size: 12px;
21 | -webkit-border-radius: 30px;
22 | -moz-border-radius: 30px;
23 | background: url(../images/pattern/orange1.png);
24 | background-size: 100% 100%;
25 | opacity: 1;
26 | }
27 | /* Clickable class fix problem with hover on touch devices */
28 | /* Use it for non-touch hover action */
29 | .owl-theme .owl-controls.clickable .owl-buttons div:hover{
30 | filter: Alpha(Opacity=100);/*IE7 fix*/
31 | opacity: 1;
32 | text-decoration: none;
33 | }
34 |
35 | /* Styling Pagination*/
36 |
37 | .owl-theme .owl-controls .owl-page{
38 | display: inline-block;
39 | zoom: 1;
40 | *display: inline;/*IE7 life-saver */
41 | }
42 | .owl-theme .owl-controls .owl-page span{
43 | display: block;
44 | width: 12px;
45 | height: 12px;
46 | margin: 5px 7px;
47 | filter: Alpha(Opacity=50);/*IE7 fix*/
48 | opacity: 0.5;
49 | -webkit-border-radius: 20px;
50 | -moz-border-radius: 20px;
51 | border-radius: 20px;
52 | background: #869791;
53 | }
54 |
55 | .owl-theme .owl-controls .owl-page.active span,
56 | .owl-theme .owl-controls.clickable .owl-page:hover span{
57 | filter: Alpha(Opacity=100);/*IE7 fix*/
58 | opacity: 1;
59 | }
60 |
61 | /* If PaginationNumbers is true */
62 |
63 | .owl-theme .owl-controls .owl-page span.owl-numbers{
64 | height: auto;
65 | width: auto;
66 | color: #FFF;
67 | padding: 2px 10px;
68 | font-size: 12px;
69 | -webkit-border-radius: 30px;
70 | -moz-border-radius: 30px;
71 | border-radius: 30px;
72 | }
73 |
74 | /* preloading images */
75 | .owl-item.loading{
76 | min-height: 150px;
77 | background: url(AjaxLoader.gif) no-repeat center center
78 | }
--------------------------------------------------------------------------------
/front end/dist/assets/css/slick.css:
--------------------------------------------------------------------------------
1 | /* Slider */
2 | .slick-slider
3 | {
4 | position: relative;
5 |
6 | display: block;
7 | box-sizing: border-box;
8 |
9 | -webkit-user-select: none;
10 | -moz-user-select: none;
11 | -ms-user-select: none;
12 | user-select: none;
13 |
14 | -webkit-touch-callout: none;
15 | -khtml-user-select: none;
16 | -ms-touch-action: pan-y;
17 | touch-action: pan-y;
18 | -webkit-tap-highlight-color: transparent;
19 | }
20 |
21 | .slick-list
22 | {
23 | position: relative;
24 |
25 | display: block;
26 | overflow: hidden;
27 |
28 | margin: 0;
29 | padding: 0;
30 | }
31 | .slick-list:focus
32 | {
33 | outline: none;
34 | }
35 | .slick-list.dragging
36 | {
37 | cursor: pointer;
38 | cursor: hand;
39 | }
40 |
41 | .slick-slider .slick-track,
42 | .slick-slider .slick-list
43 | {
44 | -webkit-transform: translate3d(0, 0, 0);
45 | -moz-transform: translate3d(0, 0, 0);
46 | -ms-transform: translate3d(0, 0, 0);
47 | -o-transform: translate3d(0, 0, 0);
48 | transform: translate3d(0, 0, 0);
49 | }
50 |
51 | .slick-track
52 | {
53 | position: relative;
54 | top: 0;
55 | left: 0;
56 |
57 | display: block;
58 | margin-left: auto;
59 | margin-right: auto;
60 | }
61 | .slick-track:before,
62 | .slick-track:after
63 | {
64 | display: table;
65 |
66 | content: '';
67 | }
68 | .slick-track:after
69 | {
70 | clear: both;
71 | }
72 | .slick-loading .slick-track
73 | {
74 | visibility: hidden;
75 | }
76 |
77 | .slick-slide
78 | {
79 | display: none;
80 | float: left;
81 |
82 | height: 100%;
83 | min-height: 1px;
84 | }
85 | [dir='rtl'] .slick-slide
86 | {
87 | float: right;
88 | }
89 | .slick-slide img
90 | {
91 | display: block;
92 | }
93 | .slick-slide.slick-loading img
94 | {
95 | display: none;
96 | }
97 | .slick-slide.dragging img
98 | {
99 | pointer-events: none;
100 | }
101 | .slick-initialized .slick-slide
102 | {
103 | display: block;
104 | }
105 | .slick-loading .slick-slide
106 | {
107 | visibility: hidden;
108 | }
109 | .slick-vertical .slick-slide
110 | {
111 | display: block;
112 |
113 | height: auto;
114 |
115 | border: 1px solid transparent;
116 | }
117 | .slick-arrow.slick-hidden {
118 | display: none;
119 | }
120 |
--------------------------------------------------------------------------------
/main/migrations/0001_initial.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.1.5 on 2019-04-02 20:16
2 |
3 | import datetime
4 | from django.db import migrations, models
5 | import django.db.models.deletion
6 | import main.models
7 |
8 |
9 | class Migration(migrations.Migration):
10 |
11 | initial = True
12 |
13 | dependencies = [
14 | ]
15 |
16 | operations = [
17 | migrations.CreateModel(
18 | name='IdeaCategory',
19 | fields=[
20 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
21 | ('idea_category', models.CharField(max_length=200)),
22 | ('category_summery', models.CharField(max_length=200)),
23 | ('category_slug', models.CharField(max_length=200)),
24 | ],
25 | options={
26 | 'verbose_name_plural': 'Categories',
27 | },
28 | ),
29 | migrations.CreateModel(
30 | name='IdeaSeries',
31 | fields=[
32 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
33 | ('idea_series', models.CharField(max_length=200)),
34 | ('series_summary', models.CharField(max_length=200)),
35 | ('idea_category', models.ForeignKey(default=1, on_delete=django.db.models.deletion.SET_DEFAULT, to='main.IdeaCategory', verbose_name='Category')),
36 | ],
37 | options={
38 | 'verbose_name_plural': 'Series',
39 | },
40 | ),
41 | migrations.CreateModel(
42 | name='MyIdea',
43 | fields=[
44 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
45 | ('idea_title', models.CharField(max_length=200, verbose_name='Title')),
46 | ('idea_conttent', models.TextField(verbose_name='Content')),
47 | ('idea_published', models.DateTimeField(default=datetime.datetime(2019, 4, 2, 20, 16, 19, 503477), verbose_name='date published')),
48 | ('idea_slug', models.CharField(default=main.models.f, max_length=200, verbose_name='url')),
49 | ('idea_series', models.ForeignKey(default=1, on_delete=django.db.models.deletion.SET_DEFAULT, to='main.IdeaSeries', verbose_name='Series')),
50 | ],
51 | options={
52 | 'verbose_name_plural': 'My idea',
53 | },
54 | ),
55 | ]
56 |
--------------------------------------------------------------------------------
/main/templates/main/header.html:
--------------------------------------------------------------------------------
1 |
2 | {% load static %}
3 |
4 |
5 |
6 |
7 | {% block css %}
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
18 |
19 |
20 |
21 |
22 |
23 | {% endblock css %}
24 |
25 |
26 |
27 |
28 |
29 | مداد فشاری
30 |
31 |
32 |
33 |
34 |
35 | {% include "main/includes/navbar.html" %}
36 |
37 | {% include "main/includes/messages.html" %}
38 |
39 |
40 |
41 |
42 |
43 | {% block content %}
44 | {% endblock %}
45 |
46 |
47 |
48 |
49 | {% include "main/footer.html" %}
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
71 |
72 |
73 |
74 |
75 |
76 |
--------------------------------------------------------------------------------
/main/admin.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | from django.contrib import admin
3 | from .models import MyIdea , IdeaSeries , IdeaCategory, Donate, Comments
4 | from tinymce.widgets import TinyMCE
5 | from django.db import models
6 |
7 |
8 | # Register your models here.
9 |
10 | # Costum Idea Panel
11 | class MyIdeaAdmin(admin.ModelAdmin):
12 | list_display = ("idea_title","idea_series","idea_slug","idea_publisher","idea_published")
13 | list_filter = ("idea_series","idea_publisher")
14 | search_fields = ("idea_title","idea_slug","idea_publisher")
15 | fieldsets = [
16 | ("Title/date",{"fields":["idea_title","idea_published"]}),
17 | ("URL",{"fields":["idea_slug","idea_publisher"]}),
18 | ("Series",{"fields":["idea_series"]}),
19 | ("Content",{"fields":["idea_conttent"]})
20 | ]
21 | readonly_fields=('idea_slug', )
22 | formfield_overrides = {
23 | models.TextField: {'widget': TinyMCE()}
24 | }
25 | def save_model(self, request, obj, form, change):
26 | instance = form.save(commit=False)
27 | if not hasattr(instance,'created_by'):
28 | instance.created_by = request.user
29 | instance.edited_by = request.user
30 | instance.save()
31 | form.save_m2m()
32 | return instance
33 |
34 | def save_formset(self, request, form, formset, change):
35 |
36 | def set_user(instance):
37 | if not instance.created_by:
38 | instance.created_by = request.user
39 | instance.edited_by = request.user
40 | instance.save()
41 |
42 | if formset.model == Article:
43 | instances = formset.save(commit=False)
44 | map(set_user, instances)
45 | formset.save_m2m()
46 | return instances
47 | else:
48 | return formset.save()
49 | admin.site.register(MyIdea,MyIdeaAdmin)
50 |
51 | # Costum Idea Series Panel
52 | class CustomIdeaSeriesPanel(admin.ModelAdmin):
53 | list_display = ("idea_series","idea_category","series_summary")
54 | list_filter = ("idea_series","idea_category")
55 | admin.site.register(IdeaSeries,CustomIdeaSeriesPanel)
56 |
57 | # Costum Idea Cat Panel
58 | class CustomIdeaCategoryPanel(admin.ModelAdmin):
59 | list_display = ("idea_category","category_summery","category_slug")
60 | list_filter = ("idea_category","category_summery")
61 | admin.site.register(IdeaCategory,CustomIdeaCategoryPanel)
62 |
63 | # Costum Donate Panel
64 | class CustomDonatePanel(admin.ModelAdmin):
65 | list_display = ("name_donate","email_donate","amount_donate","transaction_code_donate","transaction_status_donate")
66 | search_fields = ("name_donate","email_donate","amount_donate")
67 | admin.site.register(Donate,CustomDonatePanel)
68 |
69 | # Costum Comments Panel
70 | class CustomCommentsPanel(admin.ModelAdmin):
71 | list_display = ("user_name","post_title","post_id","reply_id","comment")
72 | search_fields = ("user_name","post_title","post_id","reply_id")
73 | admin.site.register(Comments,CustomCommentsPanel)
74 |
--------------------------------------------------------------------------------
/main/models.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | from django.db import models
3 | from datetime import datetime
4 | import time
5 | from django.utils.translation import ugettext_lazy as _
6 | import random
7 | import re
8 |
9 | from django.contrib.auth.models import User
10 |
11 | def f():
12 | return int(time.time())
13 |
14 | def u():
15 | return User.objects.all()
16 |
17 |
18 | class IdeaCategory(models.Model):
19 | idea_category = models.CharField(max_length=200)
20 | category_summery = models.CharField(max_length=200)
21 | category_slug = models.CharField(max_length=200)
22 |
23 | class Meta:
24 | verbose_name_plural = _("Categories")
25 |
26 | def __str__(self):
27 | return self.idea_category
28 |
29 |
30 | class IdeaSeries(models.Model):
31 | idea_series = models.CharField(max_length=200)
32 | idea_category = models.ForeignKey(IdeaCategory, default=1, verbose_name="Category" ,on_delete=models.SET_DEFAULT)
33 | series_summary = models.CharField(max_length=200)
34 |
35 | class Meta:
36 | verbose_name_plural = _("Series")
37 |
38 | def __str__(self):
39 | return self.idea_series
40 |
41 |
42 |
43 | class MyIdea(models.Model):
44 | created_by = models.ForeignKey(User, related_name='created_by',on_delete=models.CASCADE)
45 | idea_title = models.CharField(max_length=200,verbose_name=_("Title"))
46 | idea_conttent = models.TextField(verbose_name=_("Content"))
47 | idea_published = models.DateTimeField(_("date published"),default=datetime.now())
48 |
49 | idea_series = models.ForeignKey(IdeaSeries, default=1 ,verbose_name=_("Series") , on_delete=models.SET_DEFAULT)
50 | idea_slug = models.CharField(max_length=200,default=f,verbose_name=_("url"))
51 | idea_publisher = models.CharField(max_length=200,default="هم مدادفشاری",verbose_name=_("نگارنده"),help_text="میتوانید نوشته خود را با یک نام خاص انتشار دهید")
52 |
53 | class Meta:
54 | verbose_name_plural = _("My idea")
55 |
56 | def __str__(self):
57 | return self.idea_title
58 |
59 |
60 |
61 |
62 | class Donate(models.Model):
63 | name_donate = models.CharField(max_length=200)
64 | email_donate = models.CharField(max_length=200)
65 | amount_donate = models.CharField(max_length=200)
66 | transaction_code_donate = models.CharField(max_length=200)
67 | transaction_status_donate = models.CharField(max_length=200)
68 |
69 | class Meta:
70 | verbose_name_plural = _("حمایت های مالی")
71 |
72 | def __str__(self):
73 | return self.name_donate+" | "+self.amount_donate
74 |
75 |
76 |
77 | class Comments(models.Model):
78 | post_id = models.CharField(max_length=200)
79 | post_title = models.CharField(max_length=200)
80 | reply_id = models.CharField(max_length=200)
81 | user_name = models.CharField(max_length=200)
82 | comment = models.CharField(max_length=200)
83 |
84 | class Meta:
85 | verbose_name_plural = _("دیدگاه ها")
86 |
87 | def __str__(self):
88 | return self.user_name+" | "+self.post_title
--------------------------------------------------------------------------------
/main/templates/main/includes/navbar.html:
--------------------------------------------------------------------------------
1 |
2 |
53 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/front end/src/assets/images/pattern-03.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/front end/src/assets/scss/partials/_header.scss:
--------------------------------------------------------------------------------
1 | @import "../_global";
2 |
3 | header {
4 | margin-bottom: 167px;
5 | .container {
6 | width: 1172px;
7 | padding-top: 66px;
8 | display: flex;
9 | justify-content: space-between;
10 | align-items: flex-end;
11 | .logo {
12 | max-width: 234px;
13 | font-size: 53px;
14 | font-weight: bold;
15 | font-style: normal;
16 | font-stretch: normal;
17 | letter-spacing: normal;
18 | text-align: left;
19 | color: $greyish-brown;
20 | margin-left: 97px;
21 | line-height: 70px;
22 | }
23 | .menu-button {
24 | display: none;
25 | cursor: pointer;
26 | }
27 | .menu {
28 | display: flex;
29 | align-items: flex-start;
30 | justify-content: flex-start;
31 | li {
32 | list-style: none;
33 | position: relative;
34 | padding-left: 45px;
35 | &::before {
36 | background: $greyish-brown;
37 | border-radius: 50%;
38 | width: 6px;
39 | height: 6px;
40 | content: "";
41 | left: 16px;
42 | position: absolute;
43 | bottom: 10px;
44 | }
45 | a {
46 | padding: 0 20px;
47 | font-size: 33px;
48 | font-weight: bold;
49 | font-style: normal;
50 | font-stretch: normal;
51 | letter-spacing: normal;
52 | text-align: left;
53 | color: $greyish-brown;
54 | line-height: 42px;
55 | position: relative;
56 | display: block;
57 | .text {
58 | display: block;
59 | width: 100%;
60 | height: 100%;
61 | z-index: 1;
62 | position: relative;
63 | }
64 | &::before {
65 | position: absolute;
66 | content: "";
67 | width: 100%;
68 | height: 100%;
69 | top: 0px;
70 | left: 0;
71 | right: 0;
72 | background-image: url("../../images/pattern-01.svg");
73 | background-repeat: no-repeat;
74 | background-size: calc(100% - 4px) 42px;
75 | background-position: bottom center;
76 | opacity: 0;
77 | // filter: grayscale(100%);
78 | transition: all ease 0.3s;
79 | }
80 | &:hover {
81 | &::before {
82 | opacity: 1;
83 | }
84 | }
85 | &.active {
86 | &::before {
87 | opacity: 1;
88 | // filter: grayscale(0%);
89 | }
90 | }
91 | }
92 | &:last-child {
93 | padding-left: 0px;
94 | &::before {
95 | display: none;
96 | }
97 | }
98 | }
99 | &.open {
100 | transform: translateX(0%) !important;
101 | opacity: 1;
102 | }
103 | }
104 | }
105 | }
106 | @import "./responsive/_header";
107 |
--------------------------------------------------------------------------------
/front end/dist/assets/js/all.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["1b433eeaf061d0575da0.js"],"names":["e","t","n","r","exports","o","i","l","call","m","c","d","Object","defineProperty","enumerable","get","Symbol","toStringTag","value","_typeof","__esModule","create","bind","prototype","hasOwnProperty","p","s","$","document","ready","slick","dots","vertical","slidesToShow","slidesToScroll","verticalSwiping","infinite","arrows","focusOnSelect","autoplay","autoplaySpeed","click","toggleClass"],"mappings":"+PAAC,SAASA,GAAG,IAAIC,EAAE,GAAG,SAASC,EAAEC,GAAG,GAAGF,EAAEE,GAAG,OAAOF,EAAEE,GAAGC,QAAQ,IAAIC,EAAEJ,EAAEE,GAAG,CAACG,EAAEH,EAAEI,GAAE,EAAGH,QAAQ,IAAI,OAAOJ,EAAEG,GAAGK,KAAKH,EAAED,QAAQC,EAAEA,EAAED,QAAQF,GAAGG,EAAEE,GAAE,EAAGF,EAAED,QAAQF,EAAEO,EAAET,EAAEE,EAAEQ,EAAET,EAAEC,EAAES,EAAE,SAASX,EAAEC,EAAEE,GAAGD,EAAEG,EAAEL,EAAEC,IAAIW,OAAOC,eAAeb,EAAEC,EAAE,CAACa,YAAW,EAAGC,IAAIZ,KAAKD,EAAEC,EAAE,SAASH,GAAG,oBAAoBgB,QAAQA,OAAOC,aAAaL,OAAOC,eAAeb,EAAEgB,OAAOC,YAAY,CAACC,MAAM,WAAWN,OAAOC,eAAeb,EAAE,aAAa,CAACkB,OAAM,KAAMhB,EAAED,EAAE,SAASD,EAAEC,GAAG,GAAG,EAAEA,IAAID,EAAEE,EAAEF,IAAI,EAAEC,EAAE,OAAOD,EAAE,GAAG,EAAEC,GAAG,UAAAkB,QAAiBnB,IAAGA,GAAGA,EAAEoB,WAAW,OAAOpB,EAAE,IAAIG,EAAES,OAAOS,OAAO,MAAM,GAAGnB,EAAEC,EAAEA,GAAGS,OAAOC,eAAeV,EAAE,UAAU,CAACW,YAAW,EAAGI,MAAMlB,IAAI,EAAEC,GAAG,iBAAiBD,EAAE,IAAI,IAAIK,KAAKL,EAAEE,EAAES,EAAER,EAAEE,EAAE,SAASJ,GAAG,OAAOD,EAAEC,IAAIqB,KAAK,KAAKjB,IAAI,OAAOF,GAAGD,EAAEA,EAAE,SAASF,GAAG,IAAIC,EAAED,GAAGA,EAAEoB,WAAW,WAAW,OAAOpB,EAAC,SAAU,WAAW,OAAOA,GAAG,OAAOE,EAAES,EAAEV,EAAE,IAAIA,GAAGA,GAAGC,EAAEG,EAAE,SAASL,EAAEC,GAAG,OAAOW,OAAOW,UAAUC,eAAehB,KAAKR,EAAEC,IAAIC,EAAEuB,EAAE,GAAGvB,EAAEA,EAAEwB,EAAE,GAA14B,CAA84B,CAAC,SAAS1B,EAAEC,GAAG0B,EAAEC,UAAUC,MAAM,WAAWF,EAAE,kBAAkBA,EAAE,iBAAiBG,MAAM,CAACC,MAAK,EAAGC,UAAS,EAAGC,aAAa,EAAEC,eAAe,EAAEC,iBAAgB,EAAGC,UAAS,EAAGC,QAAO,EAAGC,eAAc,EAAGC,UAAS,EAAGC,cAAc,MAAMb,EAAE,uBAAuBc,MAAM,WAAWd,EAAE,aAAae,YAAY,mBAAmBf,EAAE,gBAAgBe,YAAY","file":"all.js","sourcesContent":["!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\"a\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\"\",n(n.s=0)}([function(e,t){$(document).ready(function(){$(\".diary-slider\")&&$(\".diary-slider\").slick({dots:!1,vertical:!0,slidesToShow:1,slidesToScroll:1,verticalSwiping:!0,infinite:!0,arrows:!0,focusOnSelect:!0,autoplay:!0,autoplaySpeed:7e3}),$(\"header .menu-button\").click(function(){$(\"html body\").toggleClass(\"overflow-hidden\"),$(\"header .menu\").toggleClass(\"open\")})})}]);"]}
--------------------------------------------------------------------------------
/front end/src/assets/images/right-angle.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/front end/src/assets/images/icon-folder.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/front end/src/assets/scss/partials/_footer.scss:
--------------------------------------------------------------------------------
1 | @import "../_global";
2 | footer {
3 | display: flex;
4 | flex-direction: column;
5 | justify-content: flex-start;
6 | align-items: center;
7 | width: 100%;
8 | .menu {
9 | width: 100%;
10 | margin-bottom: 31px;
11 | display: flex;
12 | align-items: flex-start;
13 | justify-content: center;
14 | li {
15 | list-style: none;
16 | position: relative;
17 | padding-left: 45px;
18 | &::before {
19 | background: $greyish-brown;
20 | border-radius: 50%;
21 | width: 6px;
22 | height: 6px;
23 | content: "";
24 | left: 16px;
25 | position: absolute;
26 | bottom: 10px;
27 | }
28 | a {
29 | padding: 0 20px;
30 | font-size: 33px;
31 | font-weight: 300;
32 | font-style: normal;
33 | font-stretch: normal;
34 | letter-spacing: normal;
35 | text-align: left;
36 | color: $greyish-brown;
37 | line-height: 42px;
38 | position: relative;
39 | display: block;
40 | .text {
41 | display: block;
42 | width: 100%;
43 | height: 100%;
44 | z-index: 1;
45 | position: relative;
46 | }
47 | &::before {
48 | position: absolute;
49 | content: "";
50 | width: 100%;
51 | height: 100%;
52 | top: 0px;
53 | left: 0;
54 | right: 0;
55 | background-image: url("../../images/pattern-01.svg");
56 | background-repeat: no-repeat;
57 | background-size: calc(100% - 4px) 42px;
58 | background-position: bottom center;
59 | opacity: 0;
60 | filter: grayscale(100%);
61 | transition: all ease 0.3s;
62 | }
63 | &:hover {
64 | &::before {
65 | opacity: 0.3;
66 | }
67 | }
68 | &.active {
69 | &::before {
70 | opacity: .5;
71 | filter: grayscale(100%);
72 | }
73 | }
74 | }
75 | &:last-child {
76 | padding-left: 0px;
77 | &::before {
78 | display: none;
79 | }
80 | }
81 | }
82 | }
83 | .git-description {
84 | width: 100%;
85 | background: $macaroni-and-cheese2;
86 | padding: 165px 0 140px;
87 | .container {
88 | width: 1296px;
89 | display: flex;
90 | align-items: flex-start;
91 | justify-content: space-between;
92 | .thumbnail {
93 | width: 500px;
94 | height: 520;
95 | overflow: hidden;
96 | img {
97 | width: 100%;
98 | height: 100%;
99 | object-fit: contain;
100 | }
101 | }
102 | .description-box {
103 | width: 666px;
104 | .title {
105 | font-size: 39px;
106 | font-weight: bold;
107 | font-style: normal;
108 | font-stretch: normal;
109 | line-height: 1.03;
110 | letter-spacing: normal;
111 | color: $black;
112 | margin-bottom: 46px;
113 | }
114 | .description {
115 | font-size: 29px;
116 | font-weight: 300;
117 | font-style: normal;
118 | font-stretch: normal;
119 | font-weight: lighter;
120 | letter-spacing: normal;
121 | text-align: justify;
122 | color: $black;
123 | line-height: 50px;
124 | margin-bottom: 58px;
125 | }
126 | }
127 | }
128 | }
129 | }
130 | @import "./responsive/_footer";
131 |
--------------------------------------------------------------------------------
/front end/src/assets/scss/partials/responsive/_footer.scss:
--------------------------------------------------------------------------------
1 | // 0 up to 575px
2 | @media (max-width: 575px) {
3 | footer {
4 | .menu {
5 | display: none;
6 | }
7 | .git-description {
8 | padding: 85px 0;
9 | .container {
10 | width: 315px;
11 | display: flex;
12 | flex-direction: column;
13 | justify-content: flex-start;
14 | align-items: center;
15 | .thumbnail {
16 | margin-bottom: 30px;
17 | width: 100%;
18 | }
19 | .description-box {
20 | width: 100%;
21 | text-align: center;
22 | .title {
23 | font-size: 24px;
24 | line-height: 40px;
25 | text-align: center;
26 | }
27 | .description {
28 | font-size: 20px;
29 | text-align: center;
30 | }
31 | }
32 | }
33 | }
34 | }
35 | }
36 |
37 | // 576px up to 767px
38 | @media (min-width: 576px) and (max-width: 767px) {
39 | footer {
40 | .menu {
41 | display: none;
42 | }
43 | .git-description {
44 | padding: 85px 0;
45 | .container {
46 | width: 556px;
47 | display: flex;
48 | flex-direction: column;
49 | justify-content: flex-start;
50 | align-items: center;
51 | .thumbnail {
52 | margin-bottom: 30px;
53 | }
54 | .description-box {
55 | width: 100%;
56 | text-align: center;
57 | .title {
58 | text-align: center;
59 | }
60 | .description {
61 | text-align: center;
62 | }
63 | }
64 | }
65 | }
66 | }
67 | }
68 |
69 | // 768px up to 991px
70 | @media (min-width: 768px) and (max-width: 991px) {
71 | footer {
72 | .menu {
73 | li {
74 | a {
75 | font-size: 23px;
76 | }
77 | }
78 | }
79 | .git-description {
80 | padding: 85px 0;
81 | .container {
82 | width: 748px;
83 | display: flex;
84 | flex-direction: column;
85 | justify-content: flex-start;
86 | align-items: center;
87 | .thumbnail {
88 | margin-bottom: 30px;
89 | }
90 | .description-box {
91 | text-align: center;
92 | .title {
93 | text-align: center;
94 | }
95 | .description {
96 | text-align: center;
97 | }
98 | }
99 | }
100 | }
101 | }
102 | }
103 |
104 | // 992px up to 1199px
105 | @media (min-width: 992px) and (max-width: 1199px) {
106 | footer {
107 | .git-description {
108 | padding: 85px 0;
109 | .container {
110 | width: 970px;
111 | display: flex;
112 | flex-direction: column;
113 | justify-content: flex-start;
114 | align-items: center;
115 | .thumbnail {
116 | margin-bottom: 30px;
117 | }
118 | .description-box {
119 | text-align: center;
120 | .title {
121 | text-align: center;
122 | }
123 | .description {
124 | text-align: center;
125 | }
126 | }
127 | }
128 | }
129 | }
130 | }
131 |
132 | // 1200px up to 1370px
133 | @media (min-width: 1200px) and (max-width: 1370px) {
134 | footer {
135 | .git-description {
136 | .container {
137 | width: 1180px;
138 | }
139 | }
140 | }
141 | }
142 |
143 | // 1371px up to 1500px
144 | @media (min-width: 1371px) and (max-width: 1500px) {
145 | footer {
146 | .git-description {
147 | .container {
148 | width: 1240px;
149 | }
150 | }
151 | }
152 | }
153 |
--------------------------------------------------------------------------------
/main/templates/main/donate.html:
--------------------------------------------------------------------------------
1 | {% extends "main/header.html" %}
2 | {% load staticfiles %}
3 | {% block content %}
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
اگر در مدادفشاری لحظات شاد و خاطره انگیزی داشتید و تمایل دارید به نیازمندی کمک و جزوی از فرشته ها باشید خوشحال میشویم از ما حمایت کنید تا بتوانیم این مسیر را ادامه و قسمتی از حمایت های شما را برای سرور و دامین مابقی را برای کمک به نیازمندان هزینه کنیم. همچنین رسید حمایت های شما عزیزان از مردم نیازمند را نیز در این مکان قرار میدهیم.
13 |
14 | با تشکر تیم توسعه دهندگان مدادفشاری
15 |
16 |
33 |
34 |
لطفا تمامی موارد را تکمیل کنید
35 |
36 |
37 |
نمایش حامیان
38 |
39 |
40 |
41 |
42 | ID
43 | نام و نام خانوادگی
44 | میزان پرداخت
45 | شماره تراکنش
46 |
47 |
48 |
49 | {% for item in alldonate %}
50 | {% if item.transaction_code_donate != "str(result.RefID)" %}
51 |
52 | {{ item.id }}
53 | {{ item.name_donate }}
54 | {{ item.amount_donate }} تومان
55 | {{ item.transaction_code_donate }}
56 |
57 | {% endif %}
58 | {% endfor %}
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 | {% endblock %}
73 |
--------------------------------------------------------------------------------
/main/templates/main/register.html:
--------------------------------------------------------------------------------
1 | {% extends "main/header.html" %}
2 | {% block content %}
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | {% csrf_token %}
11 |
12 |
13 | نام کاربری
14 | {{ form.username }}
15 |
16 |
17 |
18 |
×
19 |
20 | الزامی. 150 کاراکتر یا کمتر. فقط شامل حروف، اعداد، و علامات @/./+/-/_
21 |
22 |
23 |
24 |
25 |
26 | ایمیل
27 | {{ form.email }}
28 |
29 |
30 |
×
31 |
32 | حتما با فرمت صحیح ایمیلتان را وارد کنید
33 |
34 |
35 |
36 |
37 |
38 | گذرواژه
39 | {{ form.password1 }}
40 |
41 |
42 |
×
43 |
44 | رمز عبور شما نمیتواند شبیه سایر اطلاعات شخصی شما باشد.
45 | رمز عبور شما میبایست حداقل از 8 حرف تشکیل شده باشد.
46 | رمز شما نمی تواند از عبارات معروف باشد.
47 | رمز شما نمی تواند کلا عدد باشد
48 |
49 |
50 |
51 |
52 |
53 |
54 | تایید گذرواژه
55 | {{ form.password2 }}
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 | تایید ریکپچا
64 | {{ form.captcha }}
65 |
66 |
67 |
68 |
69 |
70 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 | {% endblock %}
89 |
--------------------------------------------------------------------------------
/front end/dist/assets/css/slick-theme.css:
--------------------------------------------------------------------------------
1 | @charset 'UTF-8';
2 | /* Slider */
3 | .slick-loading .slick-list
4 | {
5 | background: #fff url('./ajax-loader.gif') center center no-repeat;
6 | }
7 |
8 | /* Icons */
9 | @font-face
10 | {
11 | font-family: 'slick';
12 | font-weight: normal;
13 | font-style: normal;
14 |
15 | src: url('./fonts/slick.eot');
16 | src: url('./fonts/slick.eot?#iefix') format('embedded-opentype'), url('./fonts/slick.woff') format('woff'), url('./fonts/slick.ttf') format('truetype'), url('./fonts/slick.svg#slick') format('svg');
17 | }
18 | /* Arrows */
19 | .slick-prev,
20 | .slick-next
21 | {
22 | font-size: 0;
23 | line-height: 0;
24 |
25 | position: absolute;
26 | top: 50%;
27 |
28 | display: block;
29 |
30 | width: 20px;
31 | height: 20px;
32 | padding: 0;
33 | -webkit-transform: translate(0, -50%);
34 | -ms-transform: translate(0, -50%);
35 | transform: translate(0, -50%);
36 |
37 | cursor: pointer;
38 |
39 | color: transparent;
40 | border: none;
41 | outline: none;
42 | background: transparent;
43 | }
44 | .slick-prev:hover,
45 | .slick-prev:focus,
46 | .slick-next:hover,
47 | .slick-next:focus
48 | {
49 | color: transparent;
50 | outline: none;
51 | background: transparent;
52 | }
53 | .slick-prev:hover:before,
54 | .slick-prev:focus:before,
55 | .slick-next:hover:before,
56 | .slick-next:focus:before
57 | {
58 | opacity: 1;
59 | }
60 | .slick-prev.slick-disabled:before,
61 | .slick-next.slick-disabled:before
62 | {
63 | opacity: .25;
64 | }
65 |
66 | .slick-prev:before,
67 | .slick-next:before
68 | {
69 | font-family: 'slick';
70 | font-size: 20px;
71 | line-height: 1;
72 |
73 | opacity: .75;
74 | color: white;
75 |
76 | -webkit-font-smoothing: antialiased;
77 | -moz-osx-font-smoothing: grayscale;
78 | }
79 |
80 | .slick-prev
81 | {
82 | left: -25px;
83 | }
84 | [dir='rtl'] .slick-prev
85 | {
86 | right: -25px;
87 | left: auto;
88 | }
89 | .slick-prev:before
90 | {
91 | content: '←';
92 | }
93 | [dir='rtl'] .slick-prev:before
94 | {
95 | content: '→';
96 | }
97 |
98 | .slick-next
99 | {
100 | right: -25px;
101 | }
102 | [dir='rtl'] .slick-next
103 | {
104 | right: auto;
105 | left: -25px;
106 | }
107 | .slick-next:before
108 | {
109 | content: '→';
110 | }
111 | [dir='rtl'] .slick-next:before
112 | {
113 | content: '←';
114 | }
115 |
116 | /* Dots */
117 | .slick-dotted.slick-slider
118 | {
119 | margin-bottom: 30px;
120 | }
121 |
122 | .slick-dots
123 | {
124 | position: absolute;
125 | bottom: -25px;
126 |
127 | display: block;
128 |
129 | width: 100%;
130 | padding: 0;
131 | margin: 0;
132 |
133 | list-style: none;
134 |
135 | text-align: center;
136 | }
137 | .slick-dots li
138 | {
139 | position: relative;
140 |
141 | display: inline-block;
142 |
143 | width: 20px;
144 | height: 20px;
145 | margin: 0 5px;
146 | padding: 0;
147 |
148 | cursor: pointer;
149 | }
150 | .slick-dots li button
151 | {
152 | font-size: 0;
153 | line-height: 0;
154 |
155 | display: block;
156 |
157 | width: 20px;
158 | height: 20px;
159 | padding: 5px;
160 |
161 | cursor: pointer;
162 |
163 | color: transparent;
164 | border: 0;
165 | outline: none;
166 | background: transparent;
167 | }
168 | .slick-dots li button:hover,
169 | .slick-dots li button:focus
170 | {
171 | outline: none;
172 | }
173 | .slick-dots li button:hover:before,
174 | .slick-dots li button:focus:before
175 | {
176 | opacity: 1;
177 | }
178 | .slick-dots li button:before
179 | {
180 | font-family: 'slick';
181 | font-size: 6px;
182 | line-height: 20px;
183 |
184 | position: absolute;
185 | top: 0;
186 | left: 0;
187 |
188 | width: 20px;
189 | height: 20px;
190 |
191 | content: '•';
192 | text-align: center;
193 |
194 | opacity: .25;
195 | color: black;
196 |
197 | -webkit-font-smoothing: antialiased;
198 | -moz-osx-font-smoothing: grayscale;
199 | }
200 | .slick-dots li.slick-active button:before
201 | {
202 | opacity: .75;
203 | color: black;
204 | }
205 |
--------------------------------------------------------------------------------
/front end/dist/assets/images/pattern-05.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/front end/bin/install.js:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | const fs = require('fs-extra');
4 | const path = require('path');
5 | const { exec } = require('child_process');
6 |
7 | const dependencies = require('../package.json').devDependencies;
8 |
9 | const scripts = `"start": "gulp",\n\t\t"build": "gulp build"`;
10 | const gitignore = `node_modules\ndist`;
11 |
12 | const projectFolder = process.argv[2];
13 |
14 | /**
15 | * Check whether project folder is valid
16 | *
17 | * @param {string} name
18 | * @return {boolean}
19 | */
20 | const checkProjectFolder = (name) => name.length > 0;
21 |
22 | /**
23 | * Initialize project
24 | *
25 | * @param {string} projectFolder
26 | * @return {Promise}
27 | */
28 | const init = projectFolder => {
29 | return new Promise((resolve, reject) => {
30 | exec(
31 | `mkdir ${ projectFolder } && cd ${ projectFolder } && npm init -f`,
32 | (err, stdout, stderr) => {
33 | if (err) {
34 | console.error(
35 | `Oops, something went wrong initializing your project:
36 | ${ err }`
37 | );
38 | reject(false);
39 | }
40 |
41 | const packageJson = `${ projectFolder }/package.json`;
42 |
43 | fs.readFile(packageJson, (readErr, file) => {
44 | if (readErr) throw readErr;
45 |
46 | const data = file
47 | .toString()
48 | .replace('"test": "echo \\"Error: no test specified\\" && exit 1"', scripts);
49 |
50 | fs.writeFile(packageJson, data, writeErr => writeErr || true);
51 | });
52 |
53 | const filesToCopy = [ 'gulpfile.js', '.editorconfig' ];
54 |
55 | for (let i = 0; i < filesToCopy.length; i++) {
56 | fs
57 | .createReadStream(path.join(__dirname, `../${ filesToCopy[i] }`))
58 | .pipe(fs.createWriteStream(`${ projectFolder }/${ filesToCopy[i] }`));
59 | }
60 |
61 | fs.writeFile(`${ projectFolder }/.gitignore`, gitignore, writeErr => writeErr || true);
62 |
63 | resolve(true);
64 | }
65 | );
66 | });
67 | };
68 |
69 | /**
70 | * Get a formatted string of all dependencies to install
71 | *
72 | * @param {object} dependencies
73 | * @return {string}
74 | */
75 | const getFormattedDependencies = dependencies =>
76 | Object.entries(dependencies)
77 | .map(dependency => `${ dependency[0] }@${ dependency[1] }`)
78 | .toString()
79 | .replace(/,/g, ' ')
80 | .replace(/^/g, '');
81 |
82 | /**
83 | * Install dependencies
84 | *
85 | * @param {object} dependencies
86 | * @return {Promise}
87 | */
88 | const installDependencies = dependencies => {
89 | return new Promise((resolve, reject) => {
90 | dependencies = getFormattedDependencies(dependencies);
91 |
92 | exec(
93 | `cd ${ projectFolder } && npm i --save-dev ${ dependencies }`,
94 | (npmErr, npmStdout) => {
95 | if (npmErr) {
96 | console.error(
97 | `Oops, something went wrong installing the dependencies:
98 | ${ npmErr }`
99 | );
100 | reject(false);
101 | }
102 |
103 | console.log(npmStdout);
104 |
105 | resolve(true);
106 | }
107 | );
108 | });
109 | };
110 |
111 | /**
112 | * Copy additional files
113 | *
114 | * @return {boolean}
115 | */
116 | const copyAdditionalFiles = async () => {
117 | try {
118 | await fs
119 | .copy(path.join(__dirname, '../src'), `${projectFolder}/src`);
120 | return true;
121 | } catch (err) {
122 | console.error(err);
123 | return false;
124 | }
125 | };
126 |
127 | /**
128 | * Install gulp-starter-kit into project folder
129 | *
130 | * @param {string} projectFolder
131 | * @param {object} dependencies
132 | * @return {Promise}
133 | */
134 | const install = async (projectFolder, dependencies) => {
135 | console.log('npm init - Initializing your project...');
136 |
137 | if (! await init(projectFolder)) return false;
138 |
139 | console.log('npm init successful - Your npm package has been initialized');
140 |
141 | console.log('Installing dependencies - This might take a few minutes...');
142 |
143 | if (! await installDependencies(dependencies)) return false;
144 |
145 | console.log('Dependency installation successful - All dependencies have been installed');
146 |
147 | console.log('Copying additional files...');
148 |
149 | if (!copyAdditionalFiles()) return false;
150 |
151 | console.log('Copying additional files successful');
152 |
153 | return true;
154 | };
155 |
156 | if (!checkProjectFolder(projectFolder)) {
157 | console.error('Oops, looks like you have not specified any project name. Please make sure to do that.');
158 | return;
159 | }
160 |
161 | install(projectFolder, dependencies).then(() => {
162 | console.log(`\nAll done!\nYour project has been set up to the ${ projectFolder } folder.\nHappy Coding!`);
163 | });
164 |
--------------------------------------------------------------------------------
/front end/gulpfile.js:
--------------------------------------------------------------------------------
1 | /**
2 | * A simple Gulp 4 Starter Kit for modern web development.
3 | *
4 | * @package @jr-cologne/create-gulp-starter-kit
5 | * @author JR Cologne
6 | * @copyright 2018 JR Cologne
7 | * @license https://github.com/jr-cologne/gulp-starter-kit/blob/master/LICENSE MIT
8 | * @version v0.4.0-alpha
9 | * @link https://github.com/jr-cologne/gulp-starter-kit GitHub Repository
10 | * @link https://www.npmjs.com/package/@jr-cologne/create-gulp-starter-kit npm package site
11 | *
12 | * ________________________________________________________________________________
13 | *
14 | * gulpfile.js
15 | *
16 | * The gulp configuration file.
17 | *
18 | */
19 |
20 | const gulp = require('gulp'),
21 | del = require('del'),
22 | sourcemaps = require('gulp-sourcemaps'),
23 | plumber = require('gulp-plumber'),
24 | sass = require('gulp-sass'),
25 | autoprefixer = require('gulp-autoprefixer'),
26 | cssnano = require('gulp-cssnano'),
27 | babel = require('gulp-babel'),
28 | webpack = require('webpack-stream'),
29 | uglify = require('gulp-uglify'),
30 | concat = require('gulp-concat'),
31 | imagemin = require('gulp-imagemin'),
32 | browserSync = require('browser-sync').create(),
33 |
34 | src_folder = './src/',
35 | src_assets_folder = src_folder + 'assets/',
36 | dist_folder = './dist/',
37 | dist_assets_folder = dist_folder + 'assets/',
38 | node_modules_folder = './node_modules/',
39 | dist_node_modules_folder = dist_folder + 'node_modules/',
40 |
41 | node_dependencies = Object.keys(require('./package.json').dependencies || {});
42 |
43 | gulp.task('clear', () => del([ dist_folder ]));
44 |
45 | gulp.task('html', () => {
46 | return gulp.src([ src_folder + '**/*.html' ], { base: src_folder })
47 | .pipe(gulp.dest(dist_folder))
48 | .pipe(browserSync.stream());
49 | });
50 |
51 | gulp.task('sass', () => {
52 | return gulp.src([ src_assets_folder + 'scss/**/*.scss' ])
53 | .pipe(sourcemaps.init())
54 | .pipe(plumber())
55 | .pipe(sass())
56 | .pipe(autoprefixer({
57 | browsers: [ 'last 3 versions', '> 0.5%' ]
58 | }))
59 | .pipe(cssnano())
60 | .pipe(sourcemaps.write('.'))
61 | .pipe(gulp.dest(dist_assets_folder + 'css'))
62 | .pipe(browserSync.stream());
63 | });
64 |
65 | gulp.task('js', () => {
66 | return gulp.src([ src_assets_folder + 'js/**/*.js' ])
67 | .pipe(plumber())
68 | .pipe(webpack({
69 | mode: 'production'
70 | }))
71 | .pipe(sourcemaps.init())
72 | .pipe(babel({
73 | presets: [ '@babel/env' ]
74 | }))
75 | .pipe(concat('all.js'))
76 | .pipe(uglify())
77 | .pipe(sourcemaps.write('.'))
78 | .pipe(gulp.dest(dist_assets_folder + 'js'))
79 | .pipe(browserSync.stream());
80 | });
81 |
82 | gulp.task('images', () => {
83 | return gulp.src([ src_assets_folder + 'images/**/*.+(png|jpg|jpeg|gif|svg|ico)' ])
84 | .pipe(plumber())
85 | .pipe(imagemin())
86 | .pipe(gulp.dest(dist_assets_folder + 'images'))
87 | .pipe(browserSync.stream());
88 | });
89 |
90 | gulp.task('vendor', () => {
91 | if (node_dependencies.length === 0) {
92 | return new Promise((resolve) => {
93 | console.log("No dependencies specified");
94 | resolve();
95 | });
96 | }
97 |
98 | return gulp.src(node_dependencies.map(dependency => node_modules_folder + dependency + '/**/*.*'), { base: node_modules_folder })
99 | .pipe(gulp.dest(dist_node_modules_folder))
100 | .pipe(browserSync.stream());
101 | });
102 |
103 | gulp.task('build', gulp.series('clear', 'html', 'sass', 'js', 'images', 'vendor'));
104 |
105 | gulp.task('dev', gulp.series('html', 'sass', 'js'));
106 |
107 | gulp.task('serve', () => {
108 | return browserSync.init({
109 | server: {
110 | baseDir: [ 'dist' ],
111 | port: 3000
112 | },
113 | open: false
114 | });
115 | });
116 |
117 | gulp.task('watch', () => {
118 | const watchImages = [
119 | src_assets_folder + 'images/**/*.+(png|jpg|jpeg|gif|svg|ico)'
120 | ];
121 |
122 | const watchVendor = [];
123 |
124 | node_dependencies.forEach(dependency => {
125 | watchVendor.push(node_modules_folder + dependency + '/**/*.*');
126 | });
127 |
128 | const watch = [
129 | src_folder + '**/*.html',
130 | src_assets_folder + 'sass/**/*.sass',
131 | src_assets_folder + 'js/**/*.js'
132 | ];
133 |
134 | gulp.watch(watch, gulp.series('dev')).on('change', browserSync.reload);
135 | gulp.watch(watchImages, gulp.series('images')).on('change', browserSync.reload);
136 | gulp.watch(watchVendor, gulp.series('vendor')).on('change', browserSync.reload);
137 | });
138 |
139 | gulp.task('default', gulp.series('build', gulp.parallel('serve', 'watch')));
140 |
--------------------------------------------------------------------------------
/front end/dist/assets/images/pattern-01.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/mysite/settings.py.sample:
--------------------------------------------------------------------------------
1 | """
2 | Django settings for mysite project.
3 |
4 | Generated by 'django-admin startproject' using Django 2.1.5.
5 |
6 | For more information on this file, see
7 | https://docs.djangoproject.com/en/2.1/topics/settings/
8 |
9 | For the full list of settings and their values, see
10 | https://docs.djangoproject.com/en/2.1/ref/settings/
11 | """
12 |
13 | import os
14 |
15 | # Build paths inside the project like this: os.path.join(BASE_DIR, ...)
16 | BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
17 |
18 |
19 | # Quick-start development settings - unsuitable for production
20 | # See https://docs.djangoproject.com/en/2.1/howto/deployment/checklist/
21 |
22 | # SECURITY WARNING: keep the secret key used in production secret!
23 | SECRET_KEY = 'ov)_eav#$#$a5a&c2jr==g%dbwk!zasdcfsaclqd7#jns7f$kad'
24 |
25 |
26 |
27 | RECAPTCHA_PRIVATE_KEY = 'your private key'
28 | RECAPTCHA_PUBLIC_KEY = 'your public key'
29 | # If you require reCaptcha to be loaded from somewhere other than https://google.com
30 | # (e.g. to bypass firewall restrictions), you can specify what proxy to use.
31 | # RECAPTCHA_PROXY_HOST = 'https://recaptcha.net'
32 |
33 | # SECURITY WARNING: don't run with debug turned on in production!
34 | DEBUG = True
35 |
36 | ALLOWED_HOSTS = []
37 |
38 | TINYMCE_DEFAULT_CONFIG = {
39 | 'height' : 360,
40 | 'width' : 1000,
41 | 'cleanup_on_startup' : True,
42 | 'custom_undo_redo_levels' : 20,
43 | 'selector' : 'textarea',
44 | 'theme' : 'modern',
45 | 'plugins' : '''
46 | textcolor save link image media preview codesample contextmenu
47 | table code lists fullscreen insertdatetime nonbreaking
48 | contextmenu directionality searchreplace wordcount visualblocks
49 | visualchars code fullscreen autolink lists charmap print hr
50 | anchor pagebreak
51 | ''',
52 | 'toolbar1':'''
53 | fullscreen preview bold italic underline | fonttselect,
54 | fontsizeselect | forecolor backcolor | alignleftt alignright |
55 | aligncenter alignjustify | indent outdent | bullist numlist table |
56 | | link image media | codesample |
57 | ''',
58 | 'toolbar2':'''
59 | visualblocks visualchars |
60 | charmap hr pagebreak nonbreaking anchor | code |
61 | ''',
62 | 'contextmenu': 'formats | link image',
63 | 'menubar' : True,
64 | 'statusbar' : True,
65 | }
66 |
67 | # Application definition
68 |
69 | INSTALLED_APPS = [
70 | 'django.contrib.admin',
71 | 'django.contrib.auth',
72 | 'django.contrib.contenttypes',
73 | 'django.contrib.sessions',
74 | 'django.contrib.messages',
75 | 'django.contrib.staticfiles',
76 | 'django.contrib.sites',
77 | 'allauth',
78 | 'allauth.account',
79 | 'allauth.socialaccount',
80 | 'allauth.socialaccount.providers.github',
81 | 'main.apps.MainConfig',
82 | 'tinymce',
83 | 'snowpenguin.django.recaptcha2',
84 | 'crispy_forms',
85 |
86 | ]
87 |
88 | MIDDLEWARE = [
89 | 'django.middleware.security.SecurityMiddleware',
90 | 'django.contrib.sessions.middleware.SessionMiddleware',
91 | 'django.middleware.common.CommonMiddleware',
92 | 'django.middleware.csrf.CsrfViewMiddleware',
93 | 'django.contrib.auth.middleware.AuthenticationMiddleware',
94 | 'django.contrib.messages.middleware.MessageMiddleware',
95 | 'django.middleware.clickjacking.XFrameOptionsMiddleware',
96 |
97 | ]
98 |
99 | ROOT_URLCONF = 'mysite.urls'
100 |
101 | TEMPLATES = [
102 | {
103 | 'BACKEND': 'django.template.backends.django.DjangoTemplates',
104 | 'DIRS': [],
105 | 'APP_DIRS': True,
106 | 'OPTIONS': {
107 | 'context_processors': [
108 | 'django.template.context_processors.debug',
109 | 'django.template.context_processors.request',
110 | 'django.contrib.auth.context_processors.auth',
111 | 'django.contrib.messages.context_processors.messages',
112 | ],
113 | },
114 | },
115 | ]
116 |
117 | WSGI_APPLICATION = 'mysite.wsgi.application'
118 |
119 | # Database
120 | # https://docs.djangoproject.com/en/2.1/ref/settings/#databases
121 |
122 | DATABASES = {
123 | 'default': {
124 | 'ENGINE': 'django.db.backends.sqlite3',
125 | 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
126 | }
127 | }
128 |
129 |
130 | # Password validation
131 | # https://docs.djangoproject.com/en/2.1/ref/settings/#auth-password-validators
132 |
133 | AUTH_PASSWORD_VALIDATORS = [
134 | {
135 | 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
136 | },
137 | {
138 | 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
139 | },
140 | {
141 | 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
142 | },
143 | {
144 | 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
145 | },
146 | ]
147 |
148 |
149 | # Internationalization
150 | # https://docs.djangoproject.com/en/2.1/topics/i18n/
151 |
152 | LANGUAGE_CODE = 'fa'
153 |
154 | TIME_ZONE = 'UTC'
155 |
156 | USE_I18N = True
157 |
158 | USE_L10N = True
159 |
160 | USE_TZ = True
161 |
162 |
163 | # Static files (CSS, JavaScript, Images)
164 | # https://docs.djangoproject.com/en/2.1/howto/static-files/
165 |
166 | STATIC_URL = '/static/'
167 |
168 | AUTHENTICATION_BACKENDS = (
169 | "django.contrib.auth.backends.ModelBackend",
170 | "allauth.account.auth_backends.AuthenticationBackend",
171 |
172 | )
173 |
174 |
175 | SITE_ID = 1
--------------------------------------------------------------------------------
/main/templates/main/categories.html:
--------------------------------------------------------------------------------
1 | {% extends "main/header.html" %}
2 | {% load staticfiles %}
3 | {% block content %}
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 | خاطره نویسی کن , یادداشت های بامزه ای که داری رو بنویس و ما خیلی امن براتون نگهشون میداریم و اگه دوست
22 | داشتی توی سایت بین دسته بندی هایی که داریم نشونش میدیم
23 |
24 | {% if user.is_authenticated %}
25 |
26 | {% else %}
27 |
28 | {% endif %}
29 |
30 |
31 |
32 |
33 |
34 |
35 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
51 |
52 | {% for idea in Ideas %}
53 | {% if forloop.counter <= 12 %}
54 |
67 | {% endif %}
68 | {% endfor %}
69 |
70 |
71 |
72 |
73 |
74 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
چی کجاست ؟
87 |
88 |
89 |
90 |
91 |
92 |
96 | {% for cat in categories %}
97 |
109 | {% endfor %}
110 |
111 |
112 |
113 |
114 |
115 | بیشتر از این ها میخوای، در
116 | {% if user.is_authenticated %}
117 | اینجا
118 | {% else %}
119 | اینجا
120 | {% endif %}
121 | بنویس
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
139 |
140 |
141 | {% endblock %}
142 |
--------------------------------------------------------------------------------
/front end/README.md:
--------------------------------------------------------------------------------
1 | # Gulp Starter Kit
2 | A simple Gulp 4 Starter Kit for modern web development.
3 |
4 | ## Use Cases
5 | This Gulp Starter Kit provides a simple way of setting up a modern web development environment.
6 | Here is a list of the current features:
7 |
8 | - Copy HTML files from `src` to `dist` directory
9 | - Compile Sass/SCSS to CSS, autoprefix, minify CSS and put it inside `dist` directory
10 | - Compile ES6+ to ES5, concatenate JS files and minify code
11 | - Compress and copy images into `dist` directory
12 | - Copy dependencies specified in `package.json` from `src/node_modules` directory into `node_modules` folder inside `dist` directory
13 | - Import dependencies into your application with ES6 modules
14 | - Spin up local dev server at `http://localhost:3000` including auto-reloading
15 |
16 | ## Requirements
17 | This should be installed on your computer in order to get up and running:
18 |
19 | - [Node.js](https://nodejs.org/en/)
20 | - [Gulp 4](https://gulpjs.com/)
21 |
22 | ## Dependencies
23 | These [npm](https://www.npmjs.com/) packages are used in the Gulp Starter Kit:
24 |
25 | - [@babel/core](https://www.npmjs.com/package/@babel/core)
26 | - [@babel/preset-env](https://www.npmjs.com/package/@babel/preset-env)
27 | - [browser-sync](https://www.npmjs.com/package/browser-sync)
28 | - [del](https://www.npmjs.com/package/del)
29 | - [gulp](https://www.npmjs.com/package/gulp)
30 | - [gulp-autoprefixer](https://www.npmjs.com/package/gulp-autoprefixer)
31 | - [gulp-babel](https://www.npmjs.com/package/gulp-babel)
32 | - [gulp-concat](https://www.npmjs.com/package/gulp-concat)
33 | - [gulp-cssnano](https://www.npmjs.com/package/gulp-cssnano)
34 | - [gulp-plumber](https://www.npmjs.com/package/gulp-plumber)
35 | - [gulp-sass](https://www.npmjs.com/package/gulp-sass)
36 | - [gulp-sourcemaps](https://www.npmjs.com/package/gulp-sourcemaps)
37 | - [gulp-uglify](https://www.npmjs.com/package/gulp-uglify)
38 | - [gulp-imagemin](https://www.npmjs.com/package/gulp-imagemin)
39 | - [webpack-stream](https://www.npmjs.com/package/webpack-stream)
40 |
41 | For more information, take a look at the [package.json]((https://github.com/jr-cologne/gulp-starter-kit/blob/master/package.json)) file or visit the linked npm package sites.
42 |
43 | ## Getting Started
44 | In order to get started, make sure you are meeting all requirements listed above.
45 | Then, just go ahead and download the Gulp Starter Kit. For this, you can choose between the following options:
46 |
47 | ### `npm init`
48 | The recommended way of downloading the Gulp Starter Kit uses the command `npm init` and the [`create-gulp-starter-kit` npm package](https://www.npmjs.com/package/@jr-cologne/create-gulp-starter-kit) as the initializer.
49 |
50 | For this, just follow these steps:
51 |
52 | 1. Execute `npm init @jr-cologne/gulp-starter-kit your-project-name`. This creates a folder called `your-project-name` (change that to your project name) at the current location where your terminal / command prompt is pointing to. Moreover, this initializes your project and installs all dependencies.
53 | 2. Change your working directory to your project folder by executing `cd your-project-name`.
54 | 3. Spin up your web development environment with the command `npm start`.
55 | 4. Start coding!
56 |
57 | In case you are lazy, just use this command:
58 |
59 | ```
60 | npm init @jr-cologne/gulp-starter-kit your-project-name && cd your-project-name && npm start
61 | ```
62 |
63 | ### `git clone`
64 | The other way of downloading the Gulp Starter Kit is by cloning this Git repository. Before executing any commands, make sure you have [Git](https://git-scm.com/) installed on your computer.
65 |
66 | Then, follow these instructions:
67 |
68 | 1. Execute `git clone https://github.com/jr-cologne/gulp-starter-kit.git your-project-name`. This creates a folder called `your-project-name` (change that to your project name) at the current location where your terminal / command prompt is pointing to.
69 | 2. Change your working directory to your project folder by executing `cd your-project-name`.
70 | 3. Install all dependencies by executing `npm install`.
71 | 4. Spin up your web development environment with the command `npm start`.
72 | 5. Start coding!
73 |
74 | If you are lazy, just do everything at once:
75 |
76 | ```
77 | git clone https://github.com/jr-cologne/gulp-starter-kit.git your-project-name && cd your-project-name && npm install && npm start
78 | ```
79 |
80 | ## Usage / FAQ
81 | ### What kinds of build scripts does the Gulp Starter Kit offer?
82 | The Gulp Starter Kit offers two different build scripts:
83 |
84 | 1. `npm run build`: This is used to build all files and run all tasks without serving a development server and watching for changes.
85 | 2. `npm start`: This is the normal development script used to build all files and run all tasks, but also to serve a development server and watch for changes.
86 |
87 | ### How can I use SCSS instead of Sass?
88 | In case you prefer to use SCSS over Sass, you can simply create a new directory `src/assets/scss` which is where all your SCSS files have to be placed. After you have moved all your code to the new folder, just make sure to delete the `sass` directory and everything should work as expected.
89 |
90 | ### What types of images are supported?
91 | The following types of images are currently supported:
92 |
93 | - PNG
94 | - JPG / JPEG
95 | - GIF
96 | - SVG
97 | - ICO (not compressed)
98 |
99 | ### How can I specify dependencies which are then copied to the `dist` folder?
100 | You don't need to specify your dependencies anywhere else than in your `package.json` file.
101 | Just install your dependencies via npm and all your dependencies get automatically loaded and copied into the `dist` folder.
102 |
103 | ### How can I load dependencies inside my application?
104 | ES6 modules are supported by this Gulp Starter Kit.
105 | Just install your dependencies and import them like so:
106 |
107 | ```js
108 | import axios from 'axios';
109 | ```
110 |
111 | ## Contributing
112 | Feel free to contribute to this project!
113 | Any kinds of contributions are highly appreciated!
114 |
115 | ## Versioning
116 | This project uses the rules of semantic versioning. For more information, visit [semver.org](https://semver.org/).
117 |
118 | ## License
119 | This project is licensed under the [MIT License](https://github.com/jr-cologne/gulp-starter-kit/blob/master/LICENSE).
120 |
--------------------------------------------------------------------------------
/front end/bootstrap/ready.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | مداد فشاری
8 |
9 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
75 |
76 |
77 | در حال آماده سازی
78 |
79 |
80 |
81 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
101 |
102 |
103 |
104 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
--------------------------------------------------------------------------------
/front end/bootstrap/login.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | مداد فشاری
8 |
9 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
104 |
105 |
106 |
107 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
--------------------------------------------------------------------------------
/front end/src/assets/scss/partials/responsive/_header.scss:
--------------------------------------------------------------------------------
1 | // 0 up to 575px
2 | @media (max-width: 575px) {
3 | header {
4 | margin-bottom: 90px;
5 | .container {
6 | padding: 20px 20px 0;
7 | width: 315px;
8 | .logo {
9 | position: relative;
10 | z-index: 101;
11 | font-size: 28px;
12 | line-height: 40px;
13 | }
14 | .menu-button {
15 | position: relative;
16 | z-index: 101;
17 | background: none;
18 | border: none;
19 | width: 40px;
20 | display: block;
21 | height: 40px;
22 | img {
23 | display: block;
24 | width: 100%;
25 | height: 100%;
26 | object-fit: contain;
27 | }
28 | }
29 | .menu {
30 | transform: translateX(100%);
31 | opacity: 0;
32 | transition: all ease 0.3s;
33 | position: absolute;
34 | right: 0;
35 | min-height: 100vh;
36 | top: 0;
37 | background: #a19a9ae6;
38 | z-index: 100;
39 | display: flex;
40 | flex-direction: column;
41 | width: 100%;
42 | padding-top: 90px;
43 | padding-right: 0px;
44 | li {
45 | padding: 0;
46 | &::before {
47 | display: none;
48 | }
49 | a {
50 | font-size: 20px;
51 | line-height: 45px;
52 | &::before {
53 | background-size: calc(100% - 4px) 45px;
54 | background-position: center;
55 | }
56 | &:hover {
57 | &::before {
58 | opacity: 0.2;
59 | filter: none;
60 | }
61 | }
62 | }
63 | }
64 | }
65 | }
66 | }
67 | }
68 |
69 | // 576px up to 767px
70 | @media (min-width: 576px) and (max-width: 767px) {
71 | header {
72 | margin-bottom: 90px;
73 | .container {
74 | padding: 35px 40px 0;
75 | width: 556px;
76 | .logo {
77 | position: relative;
78 | z-index: 101;
79 | }
80 | .menu-button {
81 | background: none;
82 | border: none;
83 | display: block;
84 | }
85 | .menu {
86 | transform: translateX(100%);
87 | opacity: 0;
88 | transition: all ease 0.3s;
89 | position: absolute;
90 | right: 0;
91 | min-height: 100vh;
92 | top: 0;
93 | background: #a19a9ae6;
94 | z-index: 100;
95 | display: flex;
96 | flex-direction: column;
97 | min-width: 420px;
98 | padding-top: 130px;
99 | padding-right: 40px;
100 | li {
101 | padding: 0;
102 | &::before {
103 | display: none;
104 | }
105 | a {
106 | line-height: 74px;
107 | &::before {
108 | background-size: calc(100% - 4px) 72px;
109 | background-position: center;
110 | }
111 | &:hover {
112 | &::before {
113 | opacity: 0.2;
114 | filter: none;
115 | }
116 | }
117 | }
118 | }
119 | }
120 | }
121 | }
122 | }
123 |
124 | // 768px up to 991px
125 | @media (min-width: 768px) and (max-width: 991px) {
126 | header {
127 | margin-bottom: 90px;
128 | .container {
129 | padding: 35px 40px 0;
130 | width: 748px;
131 | .logo {
132 | position: relative;
133 | z-index: 101;
134 | }
135 | .menu-button {
136 | background: none;
137 | border: none;
138 | display: block;
139 | }
140 | .menu {
141 | transform: translateX(100%);
142 | opacity: 0;
143 | transition: all ease 0.3s;
144 | position: absolute;
145 | right: 0;
146 | min-height: 100vh;
147 | top: 0;
148 | background: #a19a9ae6;
149 | z-index: 100;
150 | display: flex;
151 | flex-direction: column;
152 | min-width: 320px;
153 | padding-top: 130px;
154 | padding-right: 40px;
155 | li {
156 | padding: 0;
157 | &::before {
158 | display: none;
159 | }
160 | a {
161 | line-height: 74px;
162 | &::before {
163 | background-size: calc(100% - 4px) 72px;
164 | background-position: center;
165 | }
166 | &:hover {
167 | &::before {
168 | opacity: 0.2;
169 | filter: none;
170 | }
171 | }
172 | }
173 | }
174 | }
175 | }
176 | }
177 | }
178 |
179 | // 992px up to 1199px
180 | @media (min-width: 992px) and (max-width: 1199px) {
181 | header {
182 | .container {
183 | padding: 35px 40px 0;
184 | width: 970px;
185 | .logo {
186 | position: relative;
187 | z-index: 101;
188 | }
189 | .menu-button {
190 | background: none;
191 | border: none;
192 | display: block;
193 | }
194 | .menu {
195 | transform: translateX(100%);
196 | opacity: 0;
197 | transition: all ease 0.3s;
198 | position: absolute;
199 | right: 0;
200 | min-height: 100vh;
201 | top: 0;
202 | background: #a19a9ae6;
203 | z-index: 100;
204 | display: flex;
205 | flex-direction: column;
206 | min-width: 320px;
207 | padding-top: 130px;
208 | padding-right: 40px;
209 | li {
210 | padding: 0;
211 | &::before {
212 | display: none;
213 | }
214 | a {
215 | line-height: 74px;
216 | &::before {
217 | background-size: calc(100% - 4px) 72px;
218 | background-position: center;
219 | }
220 | &:hover {
221 | &::before {
222 | opacity: 0.2;
223 | filter: none;
224 | }
225 | }
226 | }
227 | }
228 | }
229 | }
230 | }
231 | }
232 |
233 | // 1200px up to 1370px
234 | @media (min-width: 1200px) and (max-width: 1370px) {
235 | header {
236 | margin-bottom: 120px;
237 | }
238 | }
239 |
240 | // 1371px up to 1500px
241 | @media (min-width: 1371px) and (max-width: 1500px) {
242 | header {
243 | margin-bottom: 120px;
244 | }
245 | }
246 |
--------------------------------------------------------------------------------
/front end/src/assets/images/pattern-05.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/main/templates/main/footer.html:
--------------------------------------------------------------------------------
1 | {% load staticfiles %}
2 |
3 |
4 |
5 |
30 |
31 |
32 |
33 |
34 |
35 |
52 |
53 |
54 |
73 |
74 |
75 |
76 |
103 |
104 |
105 |
106 |
135 |
--------------------------------------------------------------------------------