├── 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 |
8 | {% csrf_token %} 9 | 10 | 11 | 12 | 13 |
16 | 17 |
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 |
14 | Visit 15 |
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 | [![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://GitHub.com/Naereen/StrapDown.js/graphs/commit-activity) 5 | [![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) 6 | 7 | 8 | ![alt text](https://raw.githubusercontent.com/kiahamedi/medadfeshari/master/screenshot.png) 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 | ![alt text](https://raw.githubusercontent.com/kiahamedi/node-chat-app/master/Screenshot_2019-04-05_21-48-57.png) 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 |
3 | 4 |
5 |
6 | 50 |
51 |
52 |
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 |
17 |
18 | {% csrf_token %} 19 |
20 | 21 |
22 |
23 | 24 |
25 |
26 | 27 |
28 |
29 | 30 |
31 |
32 |
33 |
34 |
لطفا تمامی موارد را تکمیل کنید
35 |
36 |
37 | نمایش حامیان 38 |
39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | {% for item in alldonate %} 50 | {% if item.transaction_code_donate != "str(result.RefID)" %} 51 | 52 | 53 | 54 | 55 | 56 | 57 | {% endif %} 58 | {% endfor %} 59 | 60 | 61 |
IDنام و نام خانوادگیمیزان پرداختشماره تراکنش
{{ item.id }}{{ item.name_donate }}{{ item.amount_donate }} تومان{{ item.transaction_code_donate }}
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 |
71 |
72 | 73 | 74 |
75 | اگر شما قبلا یک حساب کاربری دارید 76 | وارد شوید 77 |
78 |
79 |
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 | 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 |
135 | 136 | 137 | 138 |
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 |
21 |
22 |
23 | 59 |
60 |
61 | 62 |
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 |
105 |
106 | 119 |
120 |
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 |
21 |
22 |
23 | 59 |
60 |
61 | 62 |
63 | 64 |
65 | 66 | 67 | 68 | 69 | 70 | 89 | 90 |
91 | 92 | 93 | 94 | 95 | 96 | 104 | 105 |
106 | 107 |
108 |
109 | 122 |
123 |
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 |
36 |
37 | 50 |
51 |
52 | 53 | 54 | 73 | 74 | 75 | 76 | 103 | 104 | 105 | 106 | 135 | --------------------------------------------------------------------------------