├── .env_example ├── .gitignore ├── Procfile ├── README.md ├── api ├── __init__.py ├── serializers.py ├── urls.py └── views.py ├── devsearch ├── __init__.py ├── asgi.py ├── settings.py ├── urls.py └── wsgi.py ├── fixture └── whole.json ├── frontend ├── login.html ├── login.js ├── main.css ├── main.js └── projects-list.html ├── manage.py ├── media ├── 27-stdy8.jpg ├── 3_28NU4Dd.png ├── Screenshot_from_2022-07-23_14-30-46.png ├── dash.png ├── default.jpg ├── imag.png ├── p4_copy.jpg ├── profiles │ ├── Screenshot_from_2022-07-05_10-39-47.png │ ├── Screenshot_from_2022-10-16_20-35-30.png │ ├── photo_2020-09-20_17-31-45.jpg │ ├── photo_2021-06-27_08-43-56.jpg │ ├── photo_2021-06-27_08-43-56_Fb2mMBW.jpg │ ├── photo_2022-08-12_17-53-31.jpg │ ├── simmi.jpg │ ├── user-default.png │ └── uzu.png ├── serializer_rX1Bwwr_hEPLO8Z.png ├── shopping.png ├── shopping_iLxX08I.png ├── sop_bNrWKxb.webp ├── study.jpg ├── study_chats-removebg-preview.png ├── study_rLbu235.jpg └── Дизайн_без_названия.png ├── projects ├── __init__.py ├── admin.py ├── apps.py ├── forms.py ├── migrations │ ├── 0001_initial.py │ ├── 0002_auto_20210615_1139.py │ ├── 0003_project_featured_image.py │ ├── 0004_project_owner.py │ ├── 0005_auto_20210622_0911.py │ ├── 0006_alter_project_options.py │ ├── 0007_alter_project_owner.py │ └── __init__.py ├── models.py ├── templates │ └── projects │ │ ├── project_form.html │ │ ├── projects.html │ │ └── single-project.html ├── tests.py ├── urls.py ├── utils.py └── views.py ├── requirements.txt ├── resources ├── DevSearch-Theme │ ├── README.md │ ├── account.html │ ├── delete.html │ ├── forgetpassword.html │ ├── form-template.html │ ├── images │ │ ├── DevSearch Projects.jpg │ │ ├── Devsearch Home.jpg │ │ ├── Devsearch Inbox.jpg │ │ ├── Devsearch Profile.jpg │ │ ├── favicon.ico │ │ ├── icon.svg │ │ ├── logo.svg │ │ ├── pattern.jpg │ │ ├── project-a.png │ │ ├── project-b.png │ │ └── project-c.png │ ├── inbox.html │ ├── index.html │ ├── login.html │ ├── message.html │ ├── profile.html │ ├── projects.html │ ├── signup.html │ ├── single-project.html │ ├── styles │ │ └── app.css │ └── uikit │ │ ├── app.css │ │ ├── app.js │ │ ├── index.html │ │ └── styles │ │ ├── modules │ │ ├── _alert.css │ │ ├── _animation.css │ │ ├── _author-box.css │ │ ├── _avatar.css │ │ ├── _base.css │ │ ├── _button.css │ │ ├── _card.css │ │ ├── _form.css │ │ ├── _grid.css │ │ ├── _layout.css │ │ ├── _loading.css │ │ ├── _tag-input.css │ │ ├── _tag.css │ │ ├── _typography.css │ │ ├── _utilities.css │ │ └── _variables.css │ │ └── uikit.css ├── Explainer Images used in videos │ ├── API's.jpg │ ├── Authentication Vs Authorization.png │ ├── Django Apps.jpg │ ├── MVT.jpg │ ├── ManyToMany.jpg │ ├── Models.jpg │ ├── One to Many.jpg │ ├── Querysets List.png │ ├── Querysets.png │ ├── Relactionships.jpg │ ├── Signals.jpg │ └── URLs and Views.jpg ├── bucket-policy.txt ├── images │ ├── DevSearch Projects.jpg │ ├── Devsearch Home.jpg │ ├── Devsearch Profile.jpg │ ├── codesniper.png │ ├── default.jpg │ ├── django-react-course.jpg │ ├── icon.svg │ ├── logo.svg │ ├── mumble.PNG │ ├── portfolio.PNG │ ├── profile-pics │ │ ├── cody.jpg │ │ ├── dennis.jpg │ │ ├── mehdi.png │ │ ├── praveen.jpg │ │ ├── shuvo.jpg │ │ ├── sulamita.jpg │ │ └── user-default.png │ ├── unicrorn_fee.PNG │ └── yogavive.png ├── projectsFillerData.py └── userFillerData.py ├── runtime.txt ├── static ├── images │ ├── default copy.jpg │ ├── default.jpg │ ├── icon.svg │ ├── inbox.jpg │ ├── inboxs.jpg │ ├── logo.svg │ ├── main.jpg │ ├── mains.jpg │ ├── mes.png │ ├── pattern.jpg │ ├── profiles │ │ ├── sv.png │ │ ├── user-default copy.png │ │ ├── user-default.png │ │ └── user-default_YS9Vr6e.png │ ├── project.jpg │ ├── projects.jpg │ ├── stocks.jpg │ ├── sv.png │ └── urls.webp ├── styles │ ├── app.css │ └── main.css └── uikit │ ├── app.css │ ├── app.js │ ├── index.html │ └── styles │ ├── modules │ ├── _alert.css │ ├── _animation.css │ ├── _author-box.css │ ├── _avatar.css │ ├── _base.css │ ├── _button.css │ ├── _card.css │ ├── _form.css │ ├── _grid.css │ ├── _layout.css │ ├── _loading.css │ ├── _tag-input.css │ ├── _tag.css │ ├── _typography.css │ ├── _utilities.css │ └── _variables.css │ └── uikit.css ├── staticfiles ├── admin │ ├── css │ │ ├── autocomplete.css │ │ ├── base.css │ │ ├── changelists.css │ │ ├── dashboard.css │ │ ├── fonts.css │ │ ├── forms.css │ │ ├── login.css │ │ ├── nav_sidebar.css │ │ ├── responsive.css │ │ ├── responsive_rtl.css │ │ ├── rtl.css │ │ ├── vendor │ │ │ └── select2 │ │ │ │ ├── LICENSE-SELECT2.md │ │ │ │ ├── select2.css │ │ │ │ └── select2.min.css │ │ └── widgets.css │ ├── fonts │ │ ├── LICENSE.txt │ │ ├── README.txt │ │ ├── Roboto-Bold-webfont.woff │ │ ├── Roboto-Light-webfont.woff │ │ └── Roboto-Regular-webfont.woff │ ├── img │ │ ├── LICENSE │ │ ├── README.txt │ │ ├── calendar-icons.svg │ │ ├── gis │ │ │ ├── move_vertex_off.svg │ │ │ └── move_vertex_on.svg │ │ ├── icon-addlink.svg │ │ ├── icon-alert.svg │ │ ├── icon-calendar.svg │ │ ├── icon-changelink.svg │ │ ├── icon-clock.svg │ │ ├── icon-deletelink.svg │ │ ├── icon-no.svg │ │ ├── icon-unknown-alt.svg │ │ ├── icon-unknown.svg │ │ ├── icon-viewlink.svg │ │ ├── icon-yes.svg │ │ ├── inline-delete.svg │ │ ├── search.svg │ │ ├── selector-icons.svg │ │ ├── sorting-icons.svg │ │ ├── tooltag-add.svg │ │ └── tooltag-arrowright.svg │ └── js │ │ ├── SelectBox.js │ │ ├── SelectFilter2.js │ │ ├── actions.js │ │ ├── admin │ │ ├── DateTimeShortcuts.js │ │ └── RelatedObjectLookups.js │ │ ├── autocomplete.js │ │ ├── calendar.js │ │ ├── cancel.js │ │ ├── change_form.js │ │ ├── collapse.js │ │ ├── core.js │ │ ├── inlines.js │ │ ├── jquery.init.js │ │ ├── nav_sidebar.js │ │ ├── popup_response.js │ │ ├── prepopulate.js │ │ ├── prepopulate_init.js │ │ ├── urlify.js │ │ └── vendor │ │ ├── jquery │ │ ├── LICENSE.txt │ │ ├── jquery.js │ │ └── jquery.min.js │ │ ├── select2 │ │ ├── LICENSE.md │ │ ├── i18n │ │ │ ├── af.js │ │ │ ├── ar.js │ │ │ ├── az.js │ │ │ ├── bg.js │ │ │ ├── bn.js │ │ │ ├── bs.js │ │ │ ├── ca.js │ │ │ ├── cs.js │ │ │ ├── da.js │ │ │ ├── de.js │ │ │ ├── dsb.js │ │ │ ├── el.js │ │ │ ├── en.js │ │ │ ├── es.js │ │ │ ├── et.js │ │ │ ├── eu.js │ │ │ ├── fa.js │ │ │ ├── fi.js │ │ │ ├── fr.js │ │ │ ├── gl.js │ │ │ ├── he.js │ │ │ ├── hi.js │ │ │ ├── hr.js │ │ │ ├── hsb.js │ │ │ ├── hu.js │ │ │ ├── hy.js │ │ │ ├── id.js │ │ │ ├── is.js │ │ │ ├── it.js │ │ │ ├── ja.js │ │ │ ├── ka.js │ │ │ ├── km.js │ │ │ ├── ko.js │ │ │ ├── lt.js │ │ │ ├── lv.js │ │ │ ├── mk.js │ │ │ ├── ms.js │ │ │ ├── nb.js │ │ │ ├── ne.js │ │ │ ├── nl.js │ │ │ ├── pl.js │ │ │ ├── ps.js │ │ │ ├── pt-BR.js │ │ │ ├── pt.js │ │ │ ├── ro.js │ │ │ ├── ru.js │ │ │ ├── sk.js │ │ │ ├── sl.js │ │ │ ├── sq.js │ │ │ ├── sr-Cyrl.js │ │ │ ├── sr.js │ │ │ ├── sv.js │ │ │ ├── th.js │ │ │ ├── tk.js │ │ │ ├── tr.js │ │ │ ├── uk.js │ │ │ ├── vi.js │ │ │ ├── zh-CN.js │ │ │ └── zh-TW.js │ │ ├── select2.full.js │ │ └── select2.full.min.js │ │ └── xregexp │ │ ├── LICENSE.txt │ │ ├── xregexp.js │ │ └── xregexp.min.js ├── images │ ├── Devsearch Inbox.jpg │ ├── default copy.jpg │ ├── default.jpg │ ├── icon.svg │ ├── inbox.jpg │ ├── inboxs.jpg │ ├── logo.svg │ ├── main.jpg │ ├── mains.jpg │ ├── mes.png │ ├── profiles │ │ ├── sv.png │ │ ├── user-default copy.png │ │ ├── user-default.png │ │ └── user-default_YS9Vr6e.png │ ├── project.jpg │ ├── projects.jpg │ ├── stocks.jpg │ ├── sv.png │ ├── urls.webp │ ├── uz.png │ ├── uzi.png │ └── yogavive.png ├── js │ └── main.js ├── rest_framework │ ├── css │ │ ├── bootstrap-theme.min.css │ │ ├── bootstrap-tweaks.css │ │ ├── bootstrap.min.css │ │ ├── default.css │ │ ├── font-awesome-4.0.3.css │ │ └── prettify.css │ ├── docs │ │ ├── css │ │ │ ├── base.css │ │ │ ├── highlight.css │ │ │ └── jquery.json-view.min.css │ │ ├── img │ │ │ ├── favicon.ico │ │ │ └── grid.png │ │ └── js │ │ │ ├── api.js │ │ │ ├── highlight.pack.js │ │ │ └── jquery.json-view.min.js │ ├── fonts │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.svg │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.svg │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ └── glyphicons-halflings-regular.woff2 │ ├── img │ │ ├── glyphicons-halflings-white.png │ │ ├── glyphicons-halflings.png │ │ └── grid.png │ └── js │ │ ├── ajax-form.js │ │ ├── bootstrap.min.js │ │ ├── coreapi-0.1.1.js │ │ ├── csrf.js │ │ ├── default.js │ │ ├── jquery-3.5.1.min.js │ │ └── prettify-min.js ├── styles │ ├── app.css │ └── main.css └── uikit │ ├── app.css │ ├── app.js │ ├── index.html │ └── styles │ ├── modules │ ├── _alert.css │ ├── _animation.css │ ├── _author-box.css │ ├── _avatar.css │ ├── _base.css │ ├── _button.css │ ├── _card.css │ ├── _form.css │ ├── _grid.css │ ├── _layout.css │ ├── _loading.css │ ├── _tag-input.css │ ├── _tag.css │ ├── _typography.css │ ├── _utilities.css │ └── _variables.css │ └── uikit.css ├── templates ├── delete_template.html ├── main.html ├── navbar.html ├── pagination.html ├── reset.html ├── reset_password.html ├── reset_password_complete.html └── reset_password_sent.html └── users ├── __init__.py ├── admin.py ├── apps.py ├── forms.py ├── migrations ├── 0001_initial.py ├── 0002_profile_username.py ├── 0003_auto_20210617_1510.py ├── 0004_message.py ├── 0005_alter_profile_options.py └── __init__.py ├── models.py ├── signals.py ├── templates └── users │ ├── account.html │ ├── inbox.html │ ├── login_register.html │ ├── message.html │ ├── message_form.html │ ├── profile_form.html │ ├── profiles.html │ ├── skill_form.html │ └── user-profile.html ├── tests.py ├── urls.py ├── utils.py └── views.py /.env_example: -------------------------------------------------------------------------------- 1 | SECRET_KEY= 2 | DEBUG= 3 | 4 | 5 | #email registration 6 | EMAIL_BACKEND= 7 | EMAIL_HOST= 8 | EMAIL_PORT= 9 | EMAIL_USE_TLS= 10 | EMAIL_HOST_USER= 11 | EMAIL_HOST_PASSWORD= 12 | 13 | 14 | #database 15 | DB_ENGINE= 16 | DB_NAME= 17 | DB_USER= 18 | DB_PASSWORD= 19 | DB_HOST= 20 | DB_PORT= -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .AppleDouble 3 | .LSOverride 4 | 5 | Icon 6 | 7 | ._* 8 | 9 | .Spotlight-V100 10 | .Trashes 11 | email_api/email_service 12 | debug 13 | 14 | .AppleDB 15 | .AppleDesktop 16 | Network Trash Folder 17 | Temporary Items 18 | .apdisk 19 | 20 | __pycache__/ 21 | *.py[cod] 22 | 23 | *.so 24 | 25 | .Python 26 | env/ 27 | venv/ 28 | build/ 29 | develop-eggs/ 30 | dist/ 31 | downloads/ 32 | eggs/ 33 | lib/ 34 | lib64/ 35 | parts/ 36 | sdist/ 37 | var/ 38 | *.egg-info/ 39 | .installed.cfg 40 | *.egg 41 | 42 | *.manifest 43 | *.spec 44 | 45 | pip-delete-this-directory.txt 46 | 47 | htmlcov/ 48 | .tox/ 49 | .coverage 50 | .cache 51 | nosetests.xml 52 | coverage.xml 53 | 54 | *.mo 55 | *.pot 56 | 57 | docs/_build/ 58 | 59 | target/ 60 | 61 | *.log 62 | *.pot 63 | *.pyc 64 | __pycache__/ 65 | local_settings.py 66 | 67 | .env 68 | db.sqlite3 69 | .idea/ -------------------------------------------------------------------------------- /Procfile: -------------------------------------------------------------------------------- 1 | release: python manage.py migrate 2 | web: gunicorn devsearch.wsgi --log-file - -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # DevSearch 2 | Sourcode and Resources for UzDjango 3 | 4 | See the full course here: https://devsearch-u.herokuapp.com 5 | 6 | 7 | # Installation 8 | * 1 - clone repo https://github.com/magic-encode/Dev-Search.git 9 | * 2 - create a virtual environment and activate 10 | * - pip install virtualenv 11 | * - virtualenv envname 12 | * - envname\scripts\activate 13 | * 3 - cd into project "cd uzdjango" 14 | * 4 - pip install -r requirements.txt 15 | * 5 - python manage.py loaddata fixture/products.json 16 | * 6 - python manage.py runserver 17 | 18 | 19 | 20 | # Features 21 | * Share Projects 22 | * Message other developers 23 | * Rate others work 24 | * Search other developers 25 | 26 | # Tech Stack 27 | * Django 28 | * Postgres 29 | * Django REST Framework 30 | 31 | # Home Page 32 | 33 | 34 | # Projects Page 35 | 36 | 37 | 38 | # User Inbox 39 | 40 | 41 | -------------------------------------------------------------------------------- /api/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/api/__init__.py -------------------------------------------------------------------------------- /api/serializers.py: -------------------------------------------------------------------------------- 1 | from rest_framework import serializers 2 | from projects.models import Project, Tag, Review 3 | from users.models import Profile 4 | 5 | 6 | class ReviewSerializer(serializers.ModelSerializer): 7 | class Meta: 8 | model = Review 9 | fields = '__all__' 10 | 11 | 12 | class ProfileSerializer(serializers.ModelSerializer): 13 | class Meta: 14 | model = Profile 15 | fields = '__all__' 16 | 17 | 18 | class TagSerializer(serializers.ModelSerializer): 19 | class Meta: 20 | model = Tag 21 | fields = '__all__' 22 | 23 | 24 | class ProjectSerializer(serializers.ModelSerializer): 25 | owner = ProfileSerializer(many=False) 26 | tags = TagSerializer(many=True) 27 | reviews = serializers.SerializerMethodField() 28 | 29 | class Meta: 30 | model = Project 31 | fields = '__all__' 32 | 33 | def get_reviews(self, obj): 34 | reviews = obj.review_set.all() 35 | serializer = ReviewSerializer(reviews, many=True) 36 | return serializer.data 37 | -------------------------------------------------------------------------------- /api/urls.py: -------------------------------------------------------------------------------- 1 | from django.urls import path 2 | from . import views 3 | 4 | from rest_framework_simplejwt.views import ( 5 | TokenObtainPairView, 6 | TokenRefreshView, 7 | ) 8 | 9 | urlpatterns = [ 10 | path('users/token/', TokenObtainPairView.as_view(), name='token_obtain_pair'), 11 | path('users/token/refresh/', TokenRefreshView.as_view(), name='token_refresh'), 12 | 13 | path('', views.getRoutes), 14 | path('projects/', views.getProjects), 15 | path('projects//', views.getProject), 16 | path('projects//vote/', views.projectVote), 17 | 18 | path('remove-tag/', views.removeTag) 19 | ] 20 | -------------------------------------------------------------------------------- /devsearch/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/devsearch/__init__.py -------------------------------------------------------------------------------- /devsearch/asgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | ASGI config for devsearch project. 3 | 4 | It exposes the ASGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/3.2/howto/deployment/asgi/ 8 | """ 9 | 10 | import os 11 | 12 | from django.core.asgi import get_asgi_application 13 | 14 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'devsearch.settings') 15 | 16 | application = get_asgi_application() 17 | -------------------------------------------------------------------------------- /devsearch/wsgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | WSGI config for devsearch 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/3.2/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', 'devsearch.settings') 15 | 16 | application = get_wsgi_application() 17 | -------------------------------------------------------------------------------- /fixture/whole.json: -------------------------------------------------------------------------------- 1 | [ -------------------------------------------------------------------------------- /frontend/login.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Page Title 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 |

Login

18 |
19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 |
30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /frontend/login.js: -------------------------------------------------------------------------------- 1 | let form = document.getElementById('login-form') 2 | 3 | form.addEventListener('submit', (e) => { 4 | e.preventDefault() 5 | 6 | let formData = { 7 | 'username': form.username.value, 8 | 'password': form.password.value 9 | } 10 | 11 | fetch('http://127.0.0.1:8000/api/users/token/', { 12 | method: 'POST', 13 | headers: { 14 | 'Content-Type': 'application/json', 15 | }, 16 | body: JSON.stringify(formData) 17 | }) 18 | .then(response => response.json()) 19 | .then(data => { 20 | console.log('DATA:', data.access) 21 | if (data.access) { 22 | localStorage.setItem('token', data.access) 23 | window.location = 'file:///C:/Users/Dennis%20Ivy/Desktop/frontend/projects-list.html' 24 | } else { 25 | alert('Username OR password did not work') 26 | } 27 | }) 28 | }) -------------------------------------------------------------------------------- /frontend/main.css: -------------------------------------------------------------------------------- 1 | body{ 2 | background-color: #f8fafb; 3 | margin: 0; 4 | } 5 | 6 | img{ 7 | width:100% 8 | } 9 | 10 | #projects--wrapper{ 11 | max-width:600px; 12 | margin:0 auto; 13 | margin-top:2em; 14 | border:1px solid #eaeaeb; 15 | background-color: #fff; 16 | border-radius: 5px; 17 | } 18 | 19 | .project--card{ 20 | display: grid; 21 | grid-template-columns:1fr 3fr; 22 | gap:2em; 23 | margin-top:2em; 24 | padding: 1em; 25 | align-items: center; 26 | 27 | } 28 | 29 | .card--header{ 30 | display: flex; 31 | align-items: center; 32 | gap:2em; 33 | } 34 | 35 | .project--card p{ 36 | color: #737373; 37 | } 38 | 39 | .vote--option{ 40 | font-size: 24px; 41 | color:#737373 ; 42 | cursor: pointer; 43 | } 44 | 45 | .vote--option:hover{ 46 | color:#000; 47 | } 48 | 49 | #form-wrapper{ 50 | max-width:600px; 51 | margin:0 auto; 52 | margin-top:2em; 53 | border:1px solid #eaeaeb; 54 | background-color: #fff; 55 | border-radius: 5px; 56 | padding:2em; 57 | } -------------------------------------------------------------------------------- /frontend/projects-list.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Page Title 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | Logout 18 | Login 19 |
20 | 21 | 22 |
23 | 24 |
25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | """Django's command-line utility for administrative tasks.""" 3 | import os 4 | import sys 5 | 6 | 7 | def main(): 8 | """Run administrative tasks.""" 9 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'devsearch.settings') 10 | try: 11 | from django.core.management import execute_from_command_line 12 | except ImportError as exc: 13 | raise ImportError( 14 | "Couldn't import Django. Are you sure it's installed and " 15 | "available on your PYTHONPATH environment variable? Did you " 16 | "forget to activate a virtual environment?" 17 | ) from exc 18 | execute_from_command_line(sys.argv) 19 | 20 | 21 | if __name__ == '__main__': 22 | main() 23 | -------------------------------------------------------------------------------- /media/27-stdy8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/media/27-stdy8.jpg -------------------------------------------------------------------------------- /media/3_28NU4Dd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/media/3_28NU4Dd.png -------------------------------------------------------------------------------- /media/Screenshot_from_2022-07-23_14-30-46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/media/Screenshot_from_2022-07-23_14-30-46.png -------------------------------------------------------------------------------- /media/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/media/dash.png -------------------------------------------------------------------------------- /media/default.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/media/default.jpg -------------------------------------------------------------------------------- /media/imag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/media/imag.png -------------------------------------------------------------------------------- /media/p4_copy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/media/p4_copy.jpg -------------------------------------------------------------------------------- /media/profiles/Screenshot_from_2022-07-05_10-39-47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/media/profiles/Screenshot_from_2022-07-05_10-39-47.png -------------------------------------------------------------------------------- /media/profiles/Screenshot_from_2022-10-16_20-35-30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/media/profiles/Screenshot_from_2022-10-16_20-35-30.png -------------------------------------------------------------------------------- /media/profiles/photo_2020-09-20_17-31-45.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/media/profiles/photo_2020-09-20_17-31-45.jpg -------------------------------------------------------------------------------- /media/profiles/photo_2021-06-27_08-43-56.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/media/profiles/photo_2021-06-27_08-43-56.jpg -------------------------------------------------------------------------------- /media/profiles/photo_2021-06-27_08-43-56_Fb2mMBW.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/media/profiles/photo_2021-06-27_08-43-56_Fb2mMBW.jpg -------------------------------------------------------------------------------- /media/profiles/photo_2022-08-12_17-53-31.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/media/profiles/photo_2022-08-12_17-53-31.jpg -------------------------------------------------------------------------------- /media/profiles/simmi.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/media/profiles/simmi.jpg -------------------------------------------------------------------------------- /media/profiles/user-default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/media/profiles/user-default.png -------------------------------------------------------------------------------- /media/profiles/uzu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/media/profiles/uzu.png -------------------------------------------------------------------------------- /media/serializer_rX1Bwwr_hEPLO8Z.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/media/serializer_rX1Bwwr_hEPLO8Z.png -------------------------------------------------------------------------------- /media/shopping.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/media/shopping.png -------------------------------------------------------------------------------- /media/shopping_iLxX08I.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/media/shopping_iLxX08I.png -------------------------------------------------------------------------------- /media/sop_bNrWKxb.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/media/sop_bNrWKxb.webp -------------------------------------------------------------------------------- /media/study.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/media/study.jpg -------------------------------------------------------------------------------- /media/study_chats-removebg-preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/media/study_chats-removebg-preview.png -------------------------------------------------------------------------------- /media/study_rLbu235.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/media/study_rLbu235.jpg -------------------------------------------------------------------------------- /media/Дизайн_без_названия.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/media/Дизайн_без_названия.png -------------------------------------------------------------------------------- /projects/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/projects/__init__.py -------------------------------------------------------------------------------- /projects/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | from .models import Project, Review, Tag 5 | 6 | admin.site.register(Project) 7 | admin.site.register(Review) 8 | admin.site.register(Tag) 9 | -------------------------------------------------------------------------------- /projects/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class ProjectsConfig(AppConfig): 5 | default_auto_field = 'django.db.models.BigAutoField' 6 | name = 'projects' 7 | -------------------------------------------------------------------------------- /projects/forms.py: -------------------------------------------------------------------------------- 1 | from django.forms import ModelForm, widgets 2 | from django import forms 3 | from .models import Project, Review 4 | 5 | 6 | class ProjectForm(ModelForm): 7 | class Meta: 8 | model = Project 9 | fields = ['title', 'featured_image', 'description', 10 | 'demo_link', 'source_link'] 11 | widgets = { 12 | 'tags': forms.CheckboxSelectMultiple(), 13 | } 14 | 15 | def __init__(self, *args, **kwargs): 16 | super(ProjectForm, self).__init__(*args, **kwargs) 17 | 18 | for _, field in self.fields.items(): 19 | field.widget.attrs.update({'class': 'input'}) 20 | 21 | self.fields['title'].widget.attrs.update( 22 | {'class': 'input'}) 23 | 24 | self.fields['description'].widget.attrs.update( 25 | {'class': 'input'}) 26 | 27 | 28 | class ReviewForm(ModelForm): 29 | class Meta: 30 | model = Review 31 | fields = ['value', 'body'] 32 | 33 | labels = { 34 | 'value': 'Place your vote', 35 | 'body': 'Add a comment with your vote' 36 | } 37 | 38 | def __init__(self, *args, **kwargs): 39 | super(ReviewForm, self).__init__(*args, **kwargs) 40 | 41 | for name, field in self.fields.items(): 42 | field.widget.attrs.update({'class': 'input'}) 43 | -------------------------------------------------------------------------------- /projects/migrations/0001_initial.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 3.2.4 on 2021-06-15 13:20 2 | 3 | from django.db import migrations, models 4 | import uuid 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | initial = True 10 | 11 | dependencies = [ 12 | ] 13 | 14 | operations = [ 15 | migrations.CreateModel( 16 | name='Project', 17 | fields=[ 18 | ('title', models.CharField(max_length=200)), 19 | ('description', models.TextField(blank=True, null=True)), 20 | ('demo_link', models.CharField(blank=True, max_length=2000, null=True)), 21 | ('source_link', models.CharField(blank=True, max_length=2000, null=True)), 22 | ('created', models.DateTimeField(auto_now_add=True)), 23 | ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True)), 24 | ], 25 | ), 26 | ] 27 | -------------------------------------------------------------------------------- /projects/migrations/0003_project_featured_image.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 3.2.4 on 2021-06-16 15:38 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('projects', '0002_auto_20210615_1139'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AddField( 14 | model_name='project', 15 | name='featured_image', 16 | field=models.ImageField(blank=True, default='default.jpg', null=True, upload_to=''), 17 | ), 18 | ] 19 | -------------------------------------------------------------------------------- /projects/migrations/0004_project_owner.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 3.2.4 on 2021-06-17 14:56 2 | 3 | from django.db import migrations, models 4 | import django.db.models.deletion 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('users', '0002_profile_username'), 11 | ('projects', '0003_project_featured_image'), 12 | ] 13 | 14 | operations = [ 15 | migrations.AddField( 16 | model_name='project', 17 | name='owner', 18 | field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='users.profile'), 19 | ), 20 | ] 21 | -------------------------------------------------------------------------------- /projects/migrations/0005_auto_20210622_0911.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 3.2.4 on 2021-06-22 13:11 2 | 3 | from django.db import migrations, models 4 | import django.db.models.deletion 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('users', '0003_auto_20210617_1510'), 11 | ('projects', '0004_project_owner'), 12 | ] 13 | 14 | operations = [ 15 | migrations.AlterModelOptions( 16 | name='project', 17 | options={'ordering': ['created']}, 18 | ), 19 | migrations.AddField( 20 | model_name='review', 21 | name='owner', 22 | field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='users.profile'), 23 | ), 24 | migrations.AlterUniqueTogether( 25 | name='review', 26 | unique_together={('owner', 'project')}, 27 | ), 28 | ] 29 | -------------------------------------------------------------------------------- /projects/migrations/0006_alter_project_options.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 3.2.4 on 2021-06-22 19:26 2 | 3 | from django.db import migrations 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('projects', '0005_auto_20210622_0911'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AlterModelOptions( 14 | name='project', 15 | options={'ordering': ['-vote_ratio', '-vote_total', 'title']}, 16 | ), 17 | ] 18 | -------------------------------------------------------------------------------- /projects/migrations/0007_alter_project_owner.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 3.2.4 on 2022-07-22 17:18 2 | 3 | from django.db import migrations, models 4 | import django.db.models.deletion 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('users', '0005_alter_profile_options'), 11 | ('projects', '0006_alter_project_options'), 12 | ] 13 | 14 | operations = [ 15 | migrations.AlterField( 16 | model_name='project', 17 | name='owner', 18 | field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='users.profile'), 19 | ), 20 | ] 21 | -------------------------------------------------------------------------------- /projects/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/projects/migrations/__init__.py -------------------------------------------------------------------------------- /projects/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /projects/urls.py: -------------------------------------------------------------------------------- 1 | from django.urls import path 2 | from . import views 3 | 4 | urlpatterns = [ 5 | path('', views.projects, name="projects"), 6 | path('project//', views.project, name="project"), 7 | 8 | path('create-project/', views.createProject, name="create-project"), 9 | 10 | path('update-project//', views.updateProject, name="update-project"), 11 | 12 | path('delete-project//', views.deleteProject, name="delete-project"), 13 | ] 14 | -------------------------------------------------------------------------------- /projects/utils.py: -------------------------------------------------------------------------------- 1 | from .models import Project, Tag 2 | from django.db.models import Q 3 | from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage 4 | 5 | 6 | def paginateProjects(request, projects, results): 7 | 8 | page = request.GET.get('page') 9 | paginator = Paginator(projects, results) 10 | 11 | try: 12 | projects = paginator.page(page) 13 | except PageNotAnInteger: 14 | page = 1 15 | projects = paginator.page(page) 16 | except EmptyPage: 17 | page = paginator.num_pages 18 | projects = paginator.page(page) 19 | 20 | leftIndex = (int(page) - 4) 21 | 22 | if leftIndex < 1: 23 | leftIndex = 1 24 | 25 | rightIndex = (int(page) + 5) 26 | 27 | if rightIndex > paginator.num_pages: 28 | rightIndex = paginator.num_pages + 1 29 | 30 | custom_range = range(leftIndex, rightIndex) 31 | 32 | return custom_range, projects 33 | 34 | 35 | def searchProjects(request): 36 | 37 | search_query = '' 38 | 39 | if request.GET.get('search_query'): 40 | search_query = request.GET.get('search_query') 41 | 42 | tags = Tag.objects.filter(name__icontains=search_query) 43 | 44 | projects = Project.objects.distinct().filter( 45 | Q(title__icontains=search_query) | 46 | Q(description__icontains=search_query) | 47 | Q(owner__name__icontains=search_query) | 48 | Q(tags__in=tags) 49 | ) 50 | return projects, search_query 51 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | appdirs 2 | asgiref 3 | autopep8 4 | baron 5 | boto3 6 | botocore 7 | certifi 8 | charset-normalizer 9 | dj-database-url 10 | dj-email-url 11 | Django 12 | django-cache-url 13 | django-cors-headers 14 | django-environ 15 | django-environs 16 | django-heroku 17 | django-storages 18 | djangorestframework 19 | djangorestframework-simplejwt 20 | environs 21 | gunicorn 22 | heroku 23 | idna 24 | jmespath 25 | marshmallow 26 | packaging 27 | Pillow 28 | psycopg2 29 | pycodestyle 30 | PyJWT 31 | pyparsing 32 | python-dateutil 33 | python-dotenv 34 | pytz 35 | redbaron 36 | requests 37 | rply 38 | s3transfer 39 | six 40 | sqlparse 41 | toml 42 | urllib3 43 | whitenoise 44 | -------------------------------------------------------------------------------- /resources/DevSearch-Theme/README.md: -------------------------------------------------------------------------------- 1 | # DevSearch 2 | 3 | Tempalte for FullStack Django Beginners course. 4 | 5 | # Features 6 | * Share Projects 7 | * Message other developers 8 | * Rate others work 9 | * Search other developers 10 | 11 | # Course Oviewview 12 | * Basic Djagno Overview 13 | * Database Design and Models 14 | * Static Files 15 | * User Registration & Authenticaiton 16 | * Search 17 | * Pagination 18 | * Building an API with Django REST Framework (DRF) 19 | * Deployment 20 | 21 | # Tech Stack 22 | * Django 23 | * Postgres 24 | * Django REST Framework 25 | 26 | # Home Page 27 | 28 | 29 | # Projects Page 30 | 31 | 32 | # Profile Page 33 | 34 | 35 | # User Inbox 36 | 37 | 38 | -------------------------------------------------------------------------------- /resources/DevSearch-Theme/images/DevSearch Projects.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/resources/DevSearch-Theme/images/DevSearch Projects.jpg -------------------------------------------------------------------------------- /resources/DevSearch-Theme/images/Devsearch Home.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/resources/DevSearch-Theme/images/Devsearch Home.jpg -------------------------------------------------------------------------------- /resources/DevSearch-Theme/images/Devsearch Inbox.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/resources/DevSearch-Theme/images/Devsearch Inbox.jpg -------------------------------------------------------------------------------- /resources/DevSearch-Theme/images/Devsearch Profile.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/resources/DevSearch-Theme/images/Devsearch Profile.jpg -------------------------------------------------------------------------------- /resources/DevSearch-Theme/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/resources/DevSearch-Theme/images/favicon.ico -------------------------------------------------------------------------------- /resources/DevSearch-Theme/images/icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /resources/DevSearch-Theme/images/pattern.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/resources/DevSearch-Theme/images/pattern.jpg -------------------------------------------------------------------------------- /resources/DevSearch-Theme/images/project-a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/resources/DevSearch-Theme/images/project-a.png -------------------------------------------------------------------------------- /resources/DevSearch-Theme/images/project-b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/resources/DevSearch-Theme/images/project-b.png -------------------------------------------------------------------------------- /resources/DevSearch-Theme/images/project-c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/resources/DevSearch-Theme/images/project-c.png -------------------------------------------------------------------------------- /resources/DevSearch-Theme/uikit/app.js: -------------------------------------------------------------------------------- 1 | // Invoke Functions Call on Document Loaded 2 | document.addEventListener('DOMContentLoaded', function () { 3 | hljs.highlightAll(); 4 | }); 5 | -------------------------------------------------------------------------------- /resources/DevSearch-Theme/uikit/styles/modules/_alert.css: -------------------------------------------------------------------------------- 1 | .alert { 2 | display: inline-flex; 3 | gap: 3rem; 4 | justify-content: space-between; 5 | align-items: center; 6 | padding: 1.5rem 2.5rem; 7 | border-radius: 3px; 8 | border: 1px solid var(--color-white-light); 9 | margin-bottom: 1rem; 10 | margin-right: 1rem; 11 | } 12 | 13 | .alert, 14 | .alert > .alert__message { 15 | background-color: var(--color-main-light); 16 | color: var(--color-main); 17 | font-size: 1.4rem; 18 | font-weight: var(--font-medium); 19 | } 20 | 21 | .alert.alert--error, 22 | .alert.alert--error > .alert__message { 23 | background-color: var(--color-error-bg); 24 | color: var(--color-error); 25 | } 26 | 27 | .alert.alert--success, 28 | .alert.alert--success > .alert__message { 29 | background-color: var(--color-success-bg); 30 | color: var(--color-success); 31 | } 32 | 33 | .alert > .alert__close { 34 | background: transparent; 35 | cursor: pointer; 36 | border: none; 37 | outline: transparent; 38 | font-size: 2rem; 39 | transition: var(--generic-transition); 40 | } 41 | 42 | .alert > .alert__close:hover { 43 | opacity: 0.85; 44 | } 45 | -------------------------------------------------------------------------------- /resources/DevSearch-Theme/uikit/styles/modules/_animation.css: -------------------------------------------------------------------------------- 1 | @keyframes move-in-left { 2 | 0% { 3 | width: 0%; 4 | transform: scale(2); 5 | } 6 | 7 | 80% { 8 | width: 70%; 9 | transform: scale(1); 10 | } 11 | 12 | 100% { 13 | width: 100%; 14 | } 15 | } 16 | 17 | @keyframes loading { 18 | from { 19 | transform: scale(0, 0); 20 | } 21 | 22 | to { 23 | transform: scale(1, 1); 24 | } 25 | } 26 | 27 | @keyframes spin { 28 | 0% { 29 | transform: rotate(0deg); 30 | } 31 | 32 | 100% { 33 | transform: rotate(360deg); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /resources/DevSearch-Theme/uikit/styles/modules/_author-box.css: -------------------------------------------------------------------------------- 1 | .author-box { 2 | display: inline-flex; 3 | align-items: center; 4 | justify-content: space-between; 5 | } 6 | 7 | .author-box__info { 8 | margin-left: 1rem; 9 | line-height: 1.2; 10 | } 11 | 12 | .author-box--md .author-box__info { 13 | margin-left: 1.6rem; 14 | line-height: 1.3; 15 | } 16 | 17 | .author-box--lg .author-box__info { 18 | margin-left: 2.8rem; 19 | line-height: 1.6; 20 | } 21 | 22 | .author-box__name { 23 | font-size: 1.5rem; 24 | font-weight: var(--font-medium); 25 | color: var(--color-sub); 26 | } 27 | 28 | .author-box--md .author-box__name { 29 | font-size: 1.65rem; 30 | } 31 | 32 | .author-box--lg .author-box__name { 33 | font-size: 2.4rem; 34 | } 35 | 36 | .author-box__handle { 37 | font-size: 1.4rem; 38 | color: var(--color-text); 39 | font-weight: var(--font-regular); 40 | } 41 | 42 | .author-box--md .author-box__handle { 43 | font-size: 1.5rem; 44 | } 45 | 46 | .author-box--lg .author-box__handle { 47 | font-size: 1.65rem; 48 | } 49 | -------------------------------------------------------------------------------- /resources/DevSearch-Theme/uikit/styles/modules/_avatar.css: -------------------------------------------------------------------------------- 1 | .avatar { 2 | border-radius: 50%; 3 | border: 2px solid var(--color-main); 4 | object-fit: cover; 5 | } 6 | 7 | .avatar--xl { 8 | height: 20rem; 9 | width: 20rem; 10 | } 11 | 12 | .avatar--lg { 13 | height: 15rem; 14 | width: 15rem; 15 | } 16 | 17 | .avatar--md { 18 | height: 7rem; 19 | width: 7rem; 20 | } 21 | 22 | .avatar--sm { 23 | height: 5rem; 24 | width: 5rem; 25 | } 26 | -------------------------------------------------------------------------------- /resources/DevSearch-Theme/uikit/styles/modules/_base.css: -------------------------------------------------------------------------------- 1 | * { 2 | margin: 0; 3 | padding: 0; 4 | box-sizing: border-box; 5 | text-rendering: optimizeLegibility; 6 | color: inherit; 7 | font-size: inherit; 8 | } 9 | 10 | html { 11 | font-size: 50%; 12 | } 13 | 14 | @media only screen and (min-width: 480px) { 15 | html { 16 | font-size: 56.25%; 17 | } 18 | } 19 | 20 | @media only screen and (min-width: 1200px) { 21 | html { 22 | font-size: 62.5%; 23 | } 24 | } 25 | 26 | @media only screen and (min-width: 2100px) { 27 | html { 28 | font-size: 75%; 29 | } 30 | } 31 | 32 | body { 33 | line-height: 1.6; 34 | font-weight: 400; 35 | font-size: 1.5rem; 36 | color: var(--color-text); 37 | background-color: var(--color-bg); 38 | min-height: 100vh; 39 | } 40 | -------------------------------------------------------------------------------- /resources/DevSearch-Theme/uikit/styles/modules/_card.css: -------------------------------------------------------------------------------- 1 | .card { 2 | border-radius: 1rem; 3 | background-color: var(--color-white); 4 | border: 1.5px solid var(--color-light); 5 | width: auto; 6 | height: auto; 7 | margin-top: 0.5rem; 8 | margin-bottom: 0.5rem; 9 | overflow: hidden; 10 | } 11 | 12 | .card__link { 13 | transition: all 0.3s ease-in; 14 | } 15 | 16 | .card__link:hover { 17 | text-decoration: none; 18 | } 19 | 20 | .card__body, 21 | .card__header { 22 | padding: 2rem 2.5rem; 23 | } 24 | 25 | .card__header { 26 | padding-top: 1.5rem; 27 | padding-bottom: 1.5rem; 28 | border-bottom: 1.5px solid var(--color-light); 29 | } 30 | 31 | .card__headerTitle { 32 | font-size: 2.2rem; 33 | font-weight: var(--font-medium); 34 | } 35 | 36 | .card__header .card__link:hover { 37 | text-decoration: underline; 38 | color: var(--color-main); 39 | } 40 | 41 | .card.card--dark { 42 | background-color: var(--color-light); 43 | } 44 | 45 | .card.card--dark .card__header { 46 | box-shadow: var(--generic-shadow); 47 | } 48 | -------------------------------------------------------------------------------- /resources/DevSearch-Theme/uikit/styles/modules/_grid.css: -------------------------------------------------------------------------------- 1 | .grid { 2 | display: flex; 3 | flex-wrap: wrap; 4 | justify-content: flex-start; 5 | align-items: stretch; 6 | } 7 | 8 | .grid > .column { 9 | min-width: 28rem; 10 | margin-bottom: 2.5rem; 11 | } 12 | 13 | .grid--three > .column { 14 | flex-basis: 100%; 15 | } 16 | 17 | @media screen and (min-width: 800px) { 18 | .grid--three { 19 | margin-right: -2%; 20 | } 21 | 22 | .grid--three > .column { 23 | margin-right: 2%; 24 | } 25 | 26 | .grid--three > .column { 27 | flex-basis: 48%; 28 | } 29 | } 30 | 31 | @media screen and (min-width: 1200px) { 32 | .grid--three { 33 | margin-right: -2.33%; 34 | } 35 | 36 | .grid--three > .column { 37 | margin-right: 2.33%; 38 | } 39 | 40 | .grid--three > .column { 41 | flex-basis: 31%; 42 | } 43 | } 44 | 45 | .grid--two > .column { 46 | flex-basis: 100%; 47 | } 48 | 49 | @media screen and (min-width: 800px) { 50 | .grid--two { 51 | margin-right: -2%; 52 | } 53 | 54 | .grid--two > .column { 55 | margin-right: 2%; 56 | } 57 | 58 | .grid--two > .column { 59 | flex-basis: 48%; 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /resources/DevSearch-Theme/uikit/styles/modules/_layout.css: -------------------------------------------------------------------------------- 1 | .layout { 2 | display: flex; 3 | flex-flow: row wrap; 4 | justify-content: space-between; 5 | } 6 | 7 | .layout > .column { 8 | margin-bottom: 3rem; 9 | } 10 | 11 | .layout > .column.column--1of3 { 12 | flex-basis: 30%; 13 | } 14 | 15 | .layout > .column.column--2of3 { 16 | flex-basis: 64%; 17 | } 18 | 19 | .layout > .column.column--1of2 { 20 | flex-basis: 48%; 21 | } 22 | 23 | @media screen and (max-width: 1080px) { 24 | .layout > .column { 25 | flex-basis: 100% !important; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /resources/DevSearch-Theme/uikit/styles/modules/_loading.css: -------------------------------------------------------------------------------- 1 | .loading { 2 | display: flex; 3 | align-items: center; 4 | justify-content: center; 5 | flex-direction: column; 6 | position: fixed; 7 | top: 0; 8 | left: 0; 9 | right: 0; 10 | bottom: 0; 11 | background-color: var(--color-bg); 12 | } 13 | 14 | .loading__loader { 15 | display: inline-block; 16 | font-size: 0; 17 | padding: 0; 18 | } 19 | 20 | .loading__loader span { 21 | vertical-align: middle; 22 | border-radius: 100%; 23 | display: inline-block; 24 | width: 2rem; 25 | height: 2rem; 26 | margin: 0.5rem; 27 | -webkit-animation: loading 0.8s linear infinite alternate; 28 | animation: loading 0.8s linear infinite alternate; 29 | background-color: var(--color-main); 30 | } 31 | 32 | .loading__loader span:nth-child(1) { 33 | -webkit-animation-delay: -1s; 34 | animation-delay: -1s; 35 | opacity: 0.6; 36 | } 37 | 38 | .loading__loader span:nth-child(2) { 39 | -webkit-animation-delay: -0.8s; 40 | animation-delay: -0.8s; 41 | opacity: 0.8; 42 | } 43 | 44 | .loading__loader span:nth-child(3) { 45 | -webkit-animation-delay: -0.26666s; 46 | animation-delay: -0.26666s; 47 | opacity: 1; 48 | } 49 | 50 | .loading__loader span:nth-child(4) { 51 | -webkit-animation-delay: -0.8s; 52 | animation-delay: -0.8s; 53 | opacity: 0.8; 54 | } 55 | 56 | .loading__loader span:nth-child(5) { 57 | -webkit-animation-delay: -1s; 58 | animation-delay: -1s; 59 | opacity: 0.4; 60 | } 61 | -------------------------------------------------------------------------------- /resources/DevSearch-Theme/uikit/styles/modules/_tag-input.css: -------------------------------------------------------------------------------- 1 | .input-tags { 2 | width: 100%; 3 | border-radius: 0.5rem; 4 | border: 2px solid var(--color-light); 5 | padding: 0.6rem 0.8rem; 6 | display: flex; 7 | flex-wrap: wrap; 8 | transition: all 0.3s ease-in-out; 9 | cursor: text; 10 | } 11 | 12 | .input-tags:focus-within { 13 | border: 2px solid var(--color-main); 14 | } 15 | 16 | .input-tags input { 17 | border: none; 18 | font-size: 14px; 19 | padding: 0.5rem 1rem; 20 | width: 100%; 21 | } 22 | 23 | .input-tags input:focus { 24 | outline: none; 25 | } 26 | 27 | .input-tag-list { 28 | display: flex; 29 | column-gap: 4px; 30 | flex-wrap: wrap !important; 31 | row-gap: 4px; 32 | } 33 | 34 | .input-tag-item { 35 | white-space: nowrap; 36 | } 37 | 38 | .input-tag-item small { 39 | margin-right: 6px; 40 | } 41 | 42 | .input-tag-item i { 43 | color: var(--color-white); 44 | cursor: pointer; 45 | } 46 | -------------------------------------------------------------------------------- /resources/DevSearch-Theme/uikit/styles/modules/_tag.css: -------------------------------------------------------------------------------- 1 | .tag { 2 | display: inline-flex; 3 | align-items: center; 4 | background-color: var(--color-sub); 5 | height: -webkit-fit-content; 6 | height: -moz-fit-content; 7 | height: fit-content; 8 | width: -webkit-fit-content; 9 | width: -moz-fit-content; 10 | width: fit-content; 11 | border-radius: 0.5rem; 12 | padding: 0.5rem 1.5rem; 13 | font-size: 1.2rem; 14 | cursor: pointer; 15 | } 16 | 17 | .tag:not(:last-child) { 18 | margin-right: 0.25rem; 19 | margin-bottom: 0.75rem; 20 | } 21 | 22 | .tag > small { 23 | color: var(--color-white); 24 | } 25 | 26 | .tag--outline > small { 27 | color: var(--color-sub); 28 | } 29 | 30 | .tag--outline { 31 | border: 2px solid var(--color-sub); 32 | background-color: transparent; 33 | padding: 0.4rem 1rem; 34 | } 35 | 36 | .tag--pill { 37 | border-radius: 5rem; 38 | } 39 | 40 | .tag--main, 41 | .tag--main > small { 42 | background: var(--color-main-light); 43 | color: var(--color-main); 44 | font-weight: 500; 45 | } 46 | 47 | .tag--sub, 48 | .tag--sub > small { 49 | background: var(--color-sub-lighter); 50 | color: var(--color-sub-light); 51 | font-weight: 500; 52 | } 53 | 54 | .tag--lg { 55 | padding: 0.8rem 3rem; 56 | font-size: 1.4rem; 57 | } 58 | 59 | .tag--lg:not(:last-child) { 60 | margin-right: 0.5rem; 61 | margin-bottom: 1rem; 62 | } 63 | -------------------------------------------------------------------------------- /resources/DevSearch-Theme/uikit/styles/modules/_typography.css: -------------------------------------------------------------------------------- 1 | * { 2 | font-family: var(--font-base); 3 | } 4 | 5 | h1 { 6 | font-size: 4.8rem; 7 | font-weight: var(--font-medium); 8 | } 9 | 10 | h2 { 11 | font-size: 3.6rem; 12 | font-weight: var(--font-bold); 13 | } 14 | 15 | h3 { 16 | font-size: 3.2rem; 17 | font-weight: var(--font-medium); 18 | } 19 | 20 | h4 { 21 | font-size: 2.8rem; 22 | font-weight: var(--font-medium); 23 | } 24 | 25 | h5 { 26 | font-size: 2.4rem; 27 | font-weight: var(--font-medium); 28 | } 29 | 30 | h5, 31 | h6 { 32 | font-weight: var(--font-regular); 33 | } 34 | 35 | h6 { 36 | font-size: 1.8rem; 37 | } 38 | 39 | p, 40 | span, 41 | strong { 42 | font-size: 1.6rem; 43 | color: var(--color-text); 44 | font-weight: var(--font-regular); 45 | } 46 | 47 | strong { 48 | font-weight: var(--font-medium); 49 | } 50 | 51 | pre, 52 | pre > *, 53 | pre > code * { 54 | font-family: var(--font-monospace) !important; 55 | } 56 | 57 | a { 58 | padding-bottom: 2px; 59 | text-decoration: none; 60 | display: inline-block; 61 | color: var(--color-main); 62 | font-weight: var(--font-medium); 63 | } 64 | -------------------------------------------------------------------------------- /resources/DevSearch-Theme/uikit/styles/modules/_utilities.css: -------------------------------------------------------------------------------- 1 | .container { 2 | width: 92%; 3 | max-width: 165rem; 4 | margin: 0 auto; 5 | box-sizing: border-box; 6 | } 7 | 8 | .container--narrow { 9 | width: 92%; 10 | max-width: 120rem; 11 | } 12 | 13 | @media screen and (min-width: 1000px) { 14 | .container { 15 | width: 90%; 16 | } 17 | 18 | .container--narrow { 19 | width: 85%; 20 | } 21 | } 22 | 23 | @media screen and (min-width: 1200px) { 24 | .container { 25 | width: 80%; 26 | } 27 | 28 | .container--narrow { 29 | width: 72%; 30 | } 31 | } 32 | 33 | @media screen and (min-width: 1440px) { 34 | .container { 35 | width: 72%; 36 | } 37 | 38 | .container--narrow { 39 | width: 65%; 40 | } 41 | } 42 | 43 | .text-center { 44 | text-align: center; 45 | } 46 | 47 | .m-sm { 48 | margin: 1rem; 49 | } 50 | 51 | .m-md { 52 | margin: 3rem; 53 | } 54 | 55 | .m-lg { 56 | margin: 5rem; 57 | } 58 | 59 | .m-xl { 60 | margin: 8rem; 61 | } 62 | 63 | .my-sm { 64 | margin: 1rem auto; 65 | } 66 | 67 | .my-md { 68 | margin: 3rem auto; 69 | } 70 | 71 | .my-lg { 72 | margin: 5rem auto; 73 | } 74 | 75 | .my-xl { 76 | margin: 8rem auto; 77 | } 78 | -------------------------------------------------------------------------------- /resources/DevSearch-Theme/uikit/styles/modules/_variables.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --color-main: #5aa5b9; 3 | --color-main-light: #e6faff; 4 | --color-sub: #3f4156; 5 | --color-sub-light: #51546e; 6 | --color-sub-lighter: #ededfd; 7 | --color-text: #737373; 8 | --color-gray: #8b8b8b; 9 | --color-light: #e5e7eb; 10 | --color-light-gray: #767676; 11 | --color-bg: #f8fafd; 12 | --color-white: #fffefd; 13 | --color-white-light: #f3f3f3; 14 | --color-success: #359e64; 15 | --color-success-bg: #def8e8; 16 | --color-error: #fc4b0b; 17 | --color-error-bg: #fff2ee; 18 | --font-base: 'Poppins', arial, helvetica, 'Segoe UI', roboto, ubuntu, sans-serif; 19 | --font-monospace: 'Fira Code', 'Courier New', courier, monospace; 20 | --font-regular: 300; 21 | --font-medium: 500; 22 | --font-bold: 700; 23 | --generic-shadow: 1px 1px 5px #00000010; 24 | --generic-transition: all 0.3s ease-in-out; 25 | } 26 | -------------------------------------------------------------------------------- /resources/DevSearch-Theme/uikit/styles/uikit.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Project: Mumble UI 3 | * Version: v0.1.1 4 | */ 5 | 6 | /* Fonts */ 7 | @import url('https://fonts.googleapis.com/css2?family=Fira+Code:wght@400&family=Poppins:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap'); 8 | 9 | /* Mumble UI Styles */ 10 | @import url('./modules/_variables.css'); 11 | @import url('./modules/_base.css'); 12 | @import url('./modules/_typography.css'); 13 | @import url('./modules/_utilities.css'); 14 | @import url('./modules/_animation.css'); 15 | @import url('./modules/_avatar.css'); 16 | @import url('./modules/_button.css'); 17 | @import url('./modules/_card.css'); 18 | @import url('./modules/_form.css'); 19 | @import url('./modules/_tag.css'); 20 | @import url('./modules/_author-box.css'); 21 | @import url('./modules/_alert.css'); 22 | @import url('./modules/_loading.css'); 23 | @import url('./modules/_grid.css'); 24 | @import url('./modules/_layout.css'); 25 | -------------------------------------------------------------------------------- /resources/Explainer Images used in videos/API's.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/resources/Explainer Images used in videos/API's.jpg -------------------------------------------------------------------------------- /resources/Explainer Images used in videos/Authentication Vs Authorization.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/resources/Explainer Images used in videos/Authentication Vs Authorization.png -------------------------------------------------------------------------------- /resources/Explainer Images used in videos/Django Apps.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/resources/Explainer Images used in videos/Django Apps.jpg -------------------------------------------------------------------------------- /resources/Explainer Images used in videos/MVT.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/resources/Explainer Images used in videos/MVT.jpg -------------------------------------------------------------------------------- /resources/Explainer Images used in videos/ManyToMany.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/resources/Explainer Images used in videos/ManyToMany.jpg -------------------------------------------------------------------------------- /resources/Explainer Images used in videos/Models.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/resources/Explainer Images used in videos/Models.jpg -------------------------------------------------------------------------------- /resources/Explainer Images used in videos/One to Many.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/resources/Explainer Images used in videos/One to Many.jpg -------------------------------------------------------------------------------- /resources/Explainer Images used in videos/Querysets List.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/resources/Explainer Images used in videos/Querysets List.png -------------------------------------------------------------------------------- /resources/Explainer Images used in videos/Querysets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/resources/Explainer Images used in videos/Querysets.png -------------------------------------------------------------------------------- /resources/Explainer Images used in videos/Relactionships.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/resources/Explainer Images used in videos/Relactionships.jpg -------------------------------------------------------------------------------- /resources/Explainer Images used in videos/Signals.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/resources/Explainer Images used in videos/Signals.jpg -------------------------------------------------------------------------------- /resources/Explainer Images used in videos/URLs and Views.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/resources/Explainer Images used in videos/URLs and Views.jpg -------------------------------------------------------------------------------- /resources/bucket-policy.txt: -------------------------------------------------------------------------------- 1 | { 2 | "Version": "2008-10-17", 3 | "Statement": [ 4 | { 5 | "Sid": "AllowPublicRead", 6 | "Effect": "Allow", 7 | "Principal": { 8 | "AWS": "*" 9 | }, 10 | "Action": "s3:GetObject", 11 | "Resource": "arn:aws:s3:::your-bucket-name/*" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /resources/images/DevSearch Projects.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/resources/images/DevSearch Projects.jpg -------------------------------------------------------------------------------- /resources/images/Devsearch Home.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/resources/images/Devsearch Home.jpg -------------------------------------------------------------------------------- /resources/images/Devsearch Profile.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/resources/images/Devsearch Profile.jpg -------------------------------------------------------------------------------- /resources/images/codesniper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/resources/images/codesniper.png -------------------------------------------------------------------------------- /resources/images/default.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/resources/images/default.jpg -------------------------------------------------------------------------------- /resources/images/django-react-course.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/resources/images/django-react-course.jpg -------------------------------------------------------------------------------- /resources/images/icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /resources/images/mumble.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/resources/images/mumble.PNG -------------------------------------------------------------------------------- /resources/images/portfolio.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/resources/images/portfolio.PNG -------------------------------------------------------------------------------- /resources/images/profile-pics/cody.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/resources/images/profile-pics/cody.jpg -------------------------------------------------------------------------------- /resources/images/profile-pics/dennis.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/resources/images/profile-pics/dennis.jpg -------------------------------------------------------------------------------- /resources/images/profile-pics/mehdi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/resources/images/profile-pics/mehdi.png -------------------------------------------------------------------------------- /resources/images/profile-pics/praveen.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/resources/images/profile-pics/praveen.jpg -------------------------------------------------------------------------------- /resources/images/profile-pics/shuvo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/resources/images/profile-pics/shuvo.jpg -------------------------------------------------------------------------------- /resources/images/profile-pics/sulamita.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/resources/images/profile-pics/sulamita.jpg -------------------------------------------------------------------------------- /resources/images/profile-pics/user-default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/resources/images/profile-pics/user-default.png -------------------------------------------------------------------------------- /resources/images/unicrorn_fee.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/resources/images/unicrorn_fee.PNG -------------------------------------------------------------------------------- /resources/images/yogavive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/resources/images/yogavive.png -------------------------------------------------------------------------------- /resources/projectsFillerData.py: -------------------------------------------------------------------------------- 1 | projectsList = [ 2 | { 3 | 'id': '1', 4 | 'title': 'Ecommerce Website', 5 | 'description': 'Fully functional ecommerce website' 6 | }, 7 | { 8 | 'id': '2', 9 | 'title': 'Portfolio Website', 10 | 'description': 'A personal website to write articles and display work' 11 | }, 12 | { 13 | 'id': '3', 14 | 'title': 'Social Network', 15 | 'description': 'An open source project built by the community' 16 | } 17 | ] 18 | -------------------------------------------------------------------------------- /runtime.txt: -------------------------------------------------------------------------------- 1 | python-3.9.5 -------------------------------------------------------------------------------- /static/images/default copy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/static/images/default copy.jpg -------------------------------------------------------------------------------- /static/images/default.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/static/images/default.jpg -------------------------------------------------------------------------------- /static/images/icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /static/images/inbox.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/static/images/inbox.jpg -------------------------------------------------------------------------------- /static/images/inboxs.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/static/images/inboxs.jpg -------------------------------------------------------------------------------- /static/images/main.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/static/images/main.jpg -------------------------------------------------------------------------------- /static/images/mains.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/static/images/mains.jpg -------------------------------------------------------------------------------- /static/images/mes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/static/images/mes.png -------------------------------------------------------------------------------- /static/images/pattern.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/static/images/pattern.jpg -------------------------------------------------------------------------------- /static/images/profiles/sv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/static/images/profiles/sv.png -------------------------------------------------------------------------------- /static/images/profiles/user-default copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/static/images/profiles/user-default copy.png -------------------------------------------------------------------------------- /static/images/profiles/user-default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/static/images/profiles/user-default.png -------------------------------------------------------------------------------- /static/images/profiles/user-default_YS9Vr6e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/static/images/profiles/user-default_YS9Vr6e.png -------------------------------------------------------------------------------- /static/images/project.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/static/images/project.jpg -------------------------------------------------------------------------------- /static/images/projects.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/static/images/projects.jpg -------------------------------------------------------------------------------- /static/images/stocks.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/static/images/stocks.jpg -------------------------------------------------------------------------------- /static/images/sv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/static/images/sv.png -------------------------------------------------------------------------------- /static/images/urls.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/static/images/urls.webp -------------------------------------------------------------------------------- /static/styles/main.css: -------------------------------------------------------------------------------- 1 | h1{ 2 | color: purple; 3 | } 4 | -------------------------------------------------------------------------------- /static/uikit/app.js: -------------------------------------------------------------------------------- 1 | // Invoke Functions Call on Document Loaded 2 | document.addEventListener('DOMContentLoaded', function () { 3 | hljs.highlightAll(); 4 | }); 5 | 6 | 7 | let alertWrapper = document.querySelector('.alert') 8 | let alertClose = document.querySelector('.alert__close') 9 | 10 | if (alertWrapper) { 11 | alertClose.addEventListener('click', () => 12 | alertWrapper.style.display = 'none' 13 | ) 14 | } 15 | -------------------------------------------------------------------------------- /static/uikit/styles/modules/_alert.css: -------------------------------------------------------------------------------- 1 | .alert { 2 | display: inline-flex; 3 | gap: 3rem; 4 | justify-content: space-between; 5 | align-items: center; 6 | padding: 1.5rem 2.5rem; 7 | border-radius: 3px; 8 | border: 1px solid var(--color-white-light); 9 | margin-bottom: 1rem; 10 | margin-right: 1rem; 11 | } 12 | 13 | .alert, 14 | .alert > .alert__message { 15 | background-color: var(--color-main-light); 16 | color: var(--color-main); 17 | font-size: 1.4rem; 18 | font-weight: var(--font-medium); 19 | } 20 | 21 | .alert.alert--error, 22 | .alert.alert--error > .alert__message { 23 | background-color: var(--color-error-bg); 24 | color: var(--color-error); 25 | } 26 | 27 | .alert.alert--success, 28 | .alert.alert--success > .alert__message { 29 | background-color: var(--color-success-bg); 30 | color: var(--color-success); 31 | } 32 | 33 | .alert > .alert__close { 34 | background: transparent; 35 | cursor: pointer; 36 | border: none; 37 | outline: transparent; 38 | font-size: 2rem; 39 | transition: var(--generic-transition); 40 | } 41 | 42 | .alert > .alert__close:hover { 43 | opacity: 0.85; 44 | } 45 | -------------------------------------------------------------------------------- /static/uikit/styles/modules/_animation.css: -------------------------------------------------------------------------------- 1 | @keyframes move-in-left { 2 | 0% { 3 | width: 0%; 4 | transform: scale(2); 5 | } 6 | 7 | 80% { 8 | width: 70%; 9 | transform: scale(1); 10 | } 11 | 12 | 100% { 13 | width: 100%; 14 | } 15 | } 16 | 17 | @keyframes loading { 18 | from { 19 | transform: scale(0, 0); 20 | } 21 | 22 | to { 23 | transform: scale(1, 1); 24 | } 25 | } 26 | 27 | @keyframes spin { 28 | 0% { 29 | transform: rotate(0deg); 30 | } 31 | 32 | 100% { 33 | transform: rotate(360deg); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /static/uikit/styles/modules/_author-box.css: -------------------------------------------------------------------------------- 1 | .author-box { 2 | display: inline-flex; 3 | align-items: center; 4 | justify-content: space-between; 5 | } 6 | 7 | .author-box__info { 8 | margin-left: 1rem; 9 | line-height: 1.2; 10 | } 11 | 12 | .author-box--md .author-box__info { 13 | margin-left: 1.6rem; 14 | line-height: 1.3; 15 | } 16 | 17 | .author-box--lg .author-box__info { 18 | margin-left: 2.8rem; 19 | line-height: 1.6; 20 | } 21 | 22 | .author-box__name { 23 | font-size: 1.5rem; 24 | font-weight: var(--font-medium); 25 | color: var(--color-sub); 26 | } 27 | 28 | .author-box--md .author-box__name { 29 | font-size: 1.65rem; 30 | } 31 | 32 | .author-box--lg .author-box__name { 33 | font-size: 2.4rem; 34 | } 35 | 36 | .author-box__handle { 37 | font-size: 1.4rem; 38 | color: var(--color-text); 39 | font-weight: var(--font-regular); 40 | } 41 | 42 | .author-box--md .author-box__handle { 43 | font-size: 1.5rem; 44 | } 45 | 46 | .author-box--lg .author-box__handle { 47 | font-size: 1.65rem; 48 | } 49 | -------------------------------------------------------------------------------- /static/uikit/styles/modules/_avatar.css: -------------------------------------------------------------------------------- 1 | .avatar { 2 | border-radius: 50%; 3 | border: 2px solid var(--color-main); 4 | object-fit: cover; 5 | } 6 | 7 | .avatar--xl { 8 | height: 20rem; 9 | width: 20rem; 10 | } 11 | 12 | .avatar--lg { 13 | height: 15rem; 14 | width: 15rem; 15 | } 16 | 17 | .avatar--md { 18 | height: 7rem; 19 | width: 7rem; 20 | } 21 | 22 | .avatar--sm { 23 | height: 5rem; 24 | width: 5rem; 25 | } 26 | -------------------------------------------------------------------------------- /static/uikit/styles/modules/_base.css: -------------------------------------------------------------------------------- 1 | * { 2 | margin: 0; 3 | padding: 0; 4 | box-sizing: border-box; 5 | text-rendering: optimizeLegibility; 6 | color: inherit; 7 | font-size: inherit; 8 | } 9 | 10 | html { 11 | font-size: 50%; 12 | } 13 | 14 | @media only screen and (min-width: 480px) { 15 | html { 16 | font-size: 56.25%; 17 | } 18 | } 19 | 20 | @media only screen and (min-width: 1200px) { 21 | html { 22 | font-size: 62.5%; 23 | } 24 | } 25 | 26 | @media only screen and (min-width: 2100px) { 27 | html { 28 | font-size: 75%; 29 | } 30 | } 31 | 32 | body { 33 | line-height: 1.6; 34 | font-weight: 400; 35 | font-size: 1.5rem; 36 | color: var(--color-text); 37 | background-color: var(--color-bg); 38 | min-height: 100vh; 39 | } 40 | -------------------------------------------------------------------------------- /static/uikit/styles/modules/_card.css: -------------------------------------------------------------------------------- 1 | .card { 2 | border-radius: 1rem; 3 | background-color: var(--color-white); 4 | border: 1.5px solid var(--color-light); 5 | width: auto; 6 | height: auto; 7 | margin-top: 0.5rem; 8 | margin-bottom: 0.5rem; 9 | overflow: hidden; 10 | } 11 | 12 | .card__link { 13 | transition: all 0.3s ease-in; 14 | } 15 | 16 | .card__link:hover { 17 | text-decoration: none; 18 | } 19 | 20 | .card__body, 21 | .card__header { 22 | padding: 2rem 2.5rem; 23 | } 24 | 25 | .card__header { 26 | padding-top: 1.5rem; 27 | padding-bottom: 1.5rem; 28 | border-bottom: 1.5px solid var(--color-light); 29 | } 30 | 31 | .card__headerTitle { 32 | font-size: 2.2rem; 33 | font-weight: var(--font-medium); 34 | } 35 | 36 | .card__header .card__link:hover { 37 | text-decoration: underline; 38 | color: var(--color-main); 39 | } 40 | 41 | .card.card--dark { 42 | background-color: var(--color-light); 43 | } 44 | 45 | .card.card--dark .card__header { 46 | box-shadow: var(--generic-shadow); 47 | } 48 | -------------------------------------------------------------------------------- /static/uikit/styles/modules/_grid.css: -------------------------------------------------------------------------------- 1 | .grid { 2 | display: flex; 3 | flex-wrap: wrap; 4 | justify-content: flex-start; 5 | align-items: stretch; 6 | } 7 | 8 | .grid > .column { 9 | min-width: 28rem; 10 | margin-bottom: 2.5rem; 11 | } 12 | 13 | .grid--three > .column { 14 | flex-basis: 100%; 15 | } 16 | 17 | @media screen and (min-width: 800px) { 18 | .grid--three { 19 | margin-right: -2%; 20 | } 21 | 22 | .grid--three > .column { 23 | margin-right: 2%; 24 | } 25 | 26 | .grid--three > .column { 27 | flex-basis: 48%; 28 | } 29 | } 30 | 31 | @media screen and (min-width: 1200px) { 32 | .grid--three { 33 | margin-right: -2.33%; 34 | } 35 | 36 | .grid--three > .column { 37 | margin-right: 2.33%; 38 | } 39 | 40 | .grid--three > .column { 41 | flex-basis: 31%; 42 | } 43 | } 44 | 45 | .grid--two > .column { 46 | flex-basis: 100%; 47 | } 48 | 49 | @media screen and (min-width: 800px) { 50 | .grid--two { 51 | margin-right: -2%; 52 | } 53 | 54 | .grid--two > .column { 55 | margin-right: 2%; 56 | } 57 | 58 | .grid--two > .column { 59 | flex-basis: 48%; 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /static/uikit/styles/modules/_layout.css: -------------------------------------------------------------------------------- 1 | .layout { 2 | display: flex; 3 | flex-flow: row wrap; 4 | justify-content: space-between; 5 | } 6 | 7 | .layout > .column { 8 | margin-bottom: 3rem; 9 | } 10 | 11 | .layout > .column.column--1of3 { 12 | flex-basis: 30%; 13 | } 14 | 15 | .layout > .column.column--2of3 { 16 | flex-basis: 64%; 17 | } 18 | 19 | .layout > .column.column--1of2 { 20 | flex-basis: 48%; 21 | } 22 | 23 | @media screen and (max-width: 1080px) { 24 | .layout > .column { 25 | flex-basis: 100% !important; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /static/uikit/styles/modules/_loading.css: -------------------------------------------------------------------------------- 1 | .loading { 2 | display: flex; 3 | align-items: center; 4 | justify-content: center; 5 | flex-direction: column; 6 | position: fixed; 7 | top: 0; 8 | left: 0; 9 | right: 0; 10 | bottom: 0; 11 | background-color: var(--color-bg); 12 | } 13 | 14 | .loading__loader { 15 | display: inline-block; 16 | font-size: 0; 17 | padding: 0; 18 | } 19 | 20 | .loading__loader span { 21 | vertical-align: middle; 22 | border-radius: 100%; 23 | display: inline-block; 24 | width: 2rem; 25 | height: 2rem; 26 | margin: 0.5rem; 27 | -webkit-animation: loading 0.8s linear infinite alternate; 28 | animation: loading 0.8s linear infinite alternate; 29 | background-color: var(--color-main); 30 | } 31 | 32 | .loading__loader span:nth-child(1) { 33 | -webkit-animation-delay: -1s; 34 | animation-delay: -1s; 35 | opacity: 0.6; 36 | } 37 | 38 | .loading__loader span:nth-child(2) { 39 | -webkit-animation-delay: -0.8s; 40 | animation-delay: -0.8s; 41 | opacity: 0.8; 42 | } 43 | 44 | .loading__loader span:nth-child(3) { 45 | -webkit-animation-delay: -0.26666s; 46 | animation-delay: -0.26666s; 47 | opacity: 1; 48 | } 49 | 50 | .loading__loader span:nth-child(4) { 51 | -webkit-animation-delay: -0.8s; 52 | animation-delay: -0.8s; 53 | opacity: 0.8; 54 | } 55 | 56 | .loading__loader span:nth-child(5) { 57 | -webkit-animation-delay: -1s; 58 | animation-delay: -1s; 59 | opacity: 0.4; 60 | } 61 | -------------------------------------------------------------------------------- /static/uikit/styles/modules/_tag-input.css: -------------------------------------------------------------------------------- 1 | .input-tags { 2 | width: 100%; 3 | border-radius: 0.5rem; 4 | border: 2px solid var(--color-light); 5 | padding: 0.6rem 0.8rem; 6 | display: flex; 7 | flex-wrap: wrap; 8 | transition: all 0.3s ease-in-out; 9 | cursor: text; 10 | } 11 | 12 | .input-tags:focus-within { 13 | border: 2px solid var(--color-main); 14 | } 15 | 16 | .input-tags input { 17 | border: none; 18 | font-size: 14px; 19 | padding: 0.5rem 1rem; 20 | width: 100%; 21 | } 22 | 23 | .input-tags input:focus { 24 | outline: none; 25 | } 26 | 27 | .input-tag-list { 28 | display: flex; 29 | column-gap: 4px; 30 | flex-wrap: wrap !important; 31 | row-gap: 4px; 32 | } 33 | 34 | .input-tag-item { 35 | white-space: nowrap; 36 | } 37 | 38 | .input-tag-item small { 39 | margin-right: 6px; 40 | } 41 | 42 | .input-tag-item i { 43 | color: var(--color-white); 44 | cursor: pointer; 45 | } 46 | -------------------------------------------------------------------------------- /static/uikit/styles/modules/_tag.css: -------------------------------------------------------------------------------- 1 | .tag { 2 | display: inline-flex; 3 | align-items: center; 4 | background-color: var(--color-sub); 5 | height: -webkit-fit-content; 6 | height: -moz-fit-content; 7 | height: fit-content; 8 | width: -webkit-fit-content; 9 | width: -moz-fit-content; 10 | width: fit-content; 11 | border-radius: 0.5rem; 12 | padding: 0.5rem 1.5rem; 13 | font-size: 1.2rem; 14 | cursor: pointer; 15 | } 16 | 17 | .tag:not(:last-child) { 18 | margin-right: 0.25rem; 19 | margin-bottom: 0.75rem; 20 | } 21 | 22 | .tag > small { 23 | color: var(--color-white); 24 | } 25 | 26 | .tag--outline > small { 27 | color: var(--color-sub); 28 | } 29 | 30 | .tag--outline { 31 | border: 2px solid var(--color-sub); 32 | background-color: transparent; 33 | padding: 0.4rem 1rem; 34 | } 35 | 36 | .tag--pill { 37 | border-radius: 5rem; 38 | } 39 | 40 | .tag--main, 41 | .tag--main > small { 42 | background: var(--color-main-light); 43 | color: var(--color-main); 44 | font-weight: 500; 45 | } 46 | 47 | .tag--sub, 48 | .tag--sub > small { 49 | background: var(--color-sub-lighter); 50 | color: var(--color-sub-light); 51 | font-weight: 500; 52 | } 53 | 54 | .tag--lg { 55 | padding: 0.8rem 3rem; 56 | font-size: 1.4rem; 57 | } 58 | 59 | .tag--lg:not(:last-child) { 60 | margin-right: 0.5rem; 61 | margin-bottom: 1rem; 62 | } 63 | -------------------------------------------------------------------------------- /static/uikit/styles/modules/_typography.css: -------------------------------------------------------------------------------- 1 | * { 2 | font-family: var(--font-base); 3 | } 4 | 5 | h1 { 6 | font-size: 4.8rem; 7 | font-weight: var(--font-medium); 8 | } 9 | 10 | h2 { 11 | font-size: 3.6rem; 12 | font-weight: var(--font-bold); 13 | } 14 | 15 | h3 { 16 | font-size: 3.2rem; 17 | font-weight: var(--font-medium); 18 | } 19 | 20 | h4 { 21 | font-size: 2.8rem; 22 | font-weight: var(--font-medium); 23 | } 24 | 25 | h5 { 26 | font-size: 2.4rem; 27 | font-weight: var(--font-medium); 28 | } 29 | 30 | h5, 31 | h6 { 32 | font-weight: var(--font-regular); 33 | } 34 | 35 | h6 { 36 | font-size: 1.8rem; 37 | } 38 | 39 | p, 40 | span, 41 | strong { 42 | font-size: 1.6rem; 43 | color: var(--color-text); 44 | font-weight: var(--font-regular); 45 | } 46 | 47 | strong { 48 | font-weight: var(--font-medium); 49 | } 50 | 51 | pre, 52 | pre > *, 53 | pre > code * { 54 | font-family: var(--font-monospace) !important; 55 | } 56 | 57 | a { 58 | padding-bottom: 2px; 59 | text-decoration: none; 60 | display: inline-block; 61 | color: var(--color-main); 62 | font-weight: var(--font-medium); 63 | } 64 | -------------------------------------------------------------------------------- /static/uikit/styles/modules/_utilities.css: -------------------------------------------------------------------------------- 1 | .container { 2 | width: 92%; 3 | max-width: 165rem; 4 | margin: 0 auto; 5 | box-sizing: border-box; 6 | } 7 | 8 | .container--narrow { 9 | width: 92%; 10 | max-width: 120rem; 11 | } 12 | 13 | @media screen and (min-width: 1000px) { 14 | .container { 15 | width: 90%; 16 | } 17 | 18 | .container--narrow { 19 | width: 85%; 20 | } 21 | } 22 | 23 | @media screen and (min-width: 1200px) { 24 | .container { 25 | width: 80%; 26 | } 27 | 28 | .container--narrow { 29 | width: 72%; 30 | } 31 | } 32 | 33 | @media screen and (min-width: 1440px) { 34 | .container { 35 | width: 72%; 36 | } 37 | 38 | .container--narrow { 39 | width: 65%; 40 | } 41 | } 42 | 43 | .text-center { 44 | text-align: center; 45 | } 46 | 47 | .m-sm { 48 | margin: 1rem; 49 | } 50 | 51 | .m-md { 52 | margin: 3rem; 53 | } 54 | 55 | .m-lg { 56 | margin: 5rem; 57 | } 58 | 59 | .m-xl { 60 | margin: 8rem; 61 | } 62 | 63 | .my-sm { 64 | margin: 1rem auto; 65 | } 66 | 67 | .my-md { 68 | margin: 3rem auto; 69 | } 70 | 71 | .my-lg { 72 | margin: 5rem auto; 73 | } 74 | 75 | .my-xl { 76 | margin: 8rem auto; 77 | } 78 | -------------------------------------------------------------------------------- /static/uikit/styles/modules/_variables.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --color-main: #5aa5b9; 3 | --color-main-light: #e6faff; 4 | --color-sub: #3f4156; 5 | --color-sub-light: #51546e; 6 | --color-sub-lighter: #ededfd; 7 | --color-text: #737373; 8 | --color-gray: #8b8b8b; 9 | --color-light: #e5e7eb; 10 | --color-light-gray: #767676; 11 | --color-bg: #f8fafd; 12 | --color-white: #fffefd; 13 | --color-white-light: #f3f3f3; 14 | --color-success: #359e64; 15 | --color-success-bg: #def8e8; 16 | --color-error: #fc4b0b; 17 | --color-error-bg: #fff2ee; 18 | --font-base: 'Poppins', arial, helvetica, 'Segoe UI', roboto, ubuntu, sans-serif; 19 | --font-monospace: 'Fira Code', 'Courier New', courier, monospace; 20 | --font-regular: 300; 21 | --font-medium: 500; 22 | --font-bold: 700; 23 | --generic-shadow: 1px 1px 5px #00000010; 24 | --generic-transition: all 0.3s ease-in-out; 25 | } 26 | -------------------------------------------------------------------------------- /static/uikit/styles/uikit.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Project: Mumble UI 3 | * Version: v0.1.1 4 | */ 5 | 6 | /* Fonts */ 7 | @import url('https://fonts.googleapis.com/css2?family=Fira+Code:wght@400&family=Poppins:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap'); 8 | 9 | /* Mumble UI Styles */ 10 | @import url('./modules/_variables.css'); 11 | @import url('./modules/_base.css'); 12 | @import url('./modules/_typography.css'); 13 | @import url('./modules/_utilities.css'); 14 | @import url('./modules/_animation.css'); 15 | @import url('./modules/_avatar.css'); 16 | @import url('./modules/_button.css'); 17 | @import url('./modules/_card.css'); 18 | @import url('./modules/_form.css'); 19 | @import url('./modules/_tag.css'); 20 | @import url('./modules/_author-box.css'); 21 | @import url('./modules/_alert.css'); 22 | @import url('./modules/_loading.css'); 23 | @import url('./modules/_grid.css'); 24 | @import url('./modules/_layout.css'); 25 | -------------------------------------------------------------------------------- /staticfiles/admin/css/dashboard.css: -------------------------------------------------------------------------------- 1 | /* DASHBOARD */ 2 | 3 | .dashboard .module table th { 4 | width: 100%; 5 | } 6 | 7 | .dashboard .module table td { 8 | white-space: nowrap; 9 | } 10 | 11 | .dashboard .module table td a { 12 | display: block; 13 | padding-right: .6em; 14 | } 15 | 16 | /* RECENT ACTIONS MODULE */ 17 | 18 | .module ul.actionlist { 19 | margin-left: 0; 20 | } 21 | 22 | ul.actionlist li { 23 | list-style-type: none; 24 | overflow: hidden; 25 | text-overflow: ellipsis; 26 | } 27 | -------------------------------------------------------------------------------- /staticfiles/admin/css/fonts.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'Roboto'; 3 | src: url('../fonts/Roboto-Bold-webfont.woff'); 4 | font-weight: 700; 5 | font-style: normal; 6 | } 7 | 8 | @font-face { 9 | font-family: 'Roboto'; 10 | src: url('../fonts/Roboto-Regular-webfont.woff'); 11 | font-weight: 400; 12 | font-style: normal; 13 | } 14 | 15 | @font-face { 16 | font-family: 'Roboto'; 17 | src: url('../fonts/Roboto-Light-webfont.woff'); 18 | font-weight: 300; 19 | font-style: normal; 20 | } 21 | -------------------------------------------------------------------------------- /staticfiles/admin/css/login.css: -------------------------------------------------------------------------------- 1 | /* LOGIN FORM */ 2 | 3 | .login { 4 | background: var(--darkened-bg); 5 | height: auto; 6 | } 7 | 8 | .login #header { 9 | height: auto; 10 | padding: 15px 16px; 11 | justify-content: center; 12 | } 13 | 14 | .login #header h1 { 15 | font-size: 18px; 16 | } 17 | 18 | .login #header h1 a { 19 | color: var(--header-link-color); 20 | } 21 | 22 | .login #content { 23 | padding: 20px 20px 0; 24 | } 25 | 26 | .login #container { 27 | background: var(--body-bg); 28 | border: 1px solid var(--hairline-color); 29 | border-radius: 4px; 30 | overflow: hidden; 31 | width: 28em; 32 | min-width: 300px; 33 | margin: 100px auto; 34 | height: auto; 35 | } 36 | 37 | .login .form-row { 38 | padding: 4px 0; 39 | } 40 | 41 | .login .form-row label { 42 | display: block; 43 | line-height: 2em; 44 | } 45 | 46 | .login .form-row #id_username, .login .form-row #id_password { 47 | padding: 8px; 48 | width: 100%; 49 | box-sizing: border-box; 50 | } 51 | 52 | .login .submit-row { 53 | padding: 1em 0 0 0; 54 | margin: 0; 55 | text-align: center; 56 | } 57 | 58 | .login .password-reset-link { 59 | text-align: center; 60 | } 61 | -------------------------------------------------------------------------------- /staticfiles/admin/css/vendor/select2/LICENSE-SELECT2.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2012-2017 Kevin Brown, Igor Vaynberg, and Select2 contributors 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 13 | all 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 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /staticfiles/admin/fonts/README.txt: -------------------------------------------------------------------------------- 1 | Roboto webfont source: https://www.google.com/fonts/specimen/Roboto 2 | WOFF files extracted using https://github.com/majodev/google-webfonts-helper 3 | Weights used in this project: Light (300), Regular (400), Bold (700) 4 | -------------------------------------------------------------------------------- /staticfiles/admin/fonts/Roboto-Bold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/staticfiles/admin/fonts/Roboto-Bold-webfont.woff -------------------------------------------------------------------------------- /staticfiles/admin/fonts/Roboto-Light-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/staticfiles/admin/fonts/Roboto-Light-webfont.woff -------------------------------------------------------------------------------- /staticfiles/admin/fonts/Roboto-Regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/staticfiles/admin/fonts/Roboto-Regular-webfont.woff -------------------------------------------------------------------------------- /staticfiles/admin/img/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Code Charm Ltd 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | 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, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /staticfiles/admin/img/README.txt: -------------------------------------------------------------------------------- 1 | All icons are taken from Font Awesome (http://fontawesome.io/) project. 2 | The Font Awesome font is licensed under the SIL OFL 1.1: 3 | - https://scripts.sil.org/OFL 4 | 5 | SVG icons source: https://github.com/encharm/Font-Awesome-SVG-PNG 6 | Font-Awesome-SVG-PNG is licensed under the MIT license (see file license 7 | in current folder). 8 | -------------------------------------------------------------------------------- /staticfiles/admin/img/calendar-icons.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /staticfiles/admin/img/gis/move_vertex_off.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /staticfiles/admin/img/gis/move_vertex_on.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /staticfiles/admin/img/icon-addlink.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /staticfiles/admin/img/icon-alert.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /staticfiles/admin/img/icon-calendar.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /staticfiles/admin/img/icon-changelink.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /staticfiles/admin/img/icon-clock.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /staticfiles/admin/img/icon-deletelink.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /staticfiles/admin/img/icon-no.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /staticfiles/admin/img/icon-unknown-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /staticfiles/admin/img/icon-unknown.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /staticfiles/admin/img/icon-viewlink.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /staticfiles/admin/img/icon-yes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /staticfiles/admin/img/inline-delete.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /staticfiles/admin/img/search.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /staticfiles/admin/img/sorting-icons.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /staticfiles/admin/img/tooltag-add.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /staticfiles/admin/img/tooltag-arrowright.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /staticfiles/admin/js/cancel.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | { 3 | // Call function fn when the DOM is loaded and ready. If it is already 4 | // loaded, call the function now. 5 | // http://youmightnotneedjquery.com/#ready 6 | function ready(fn) { 7 | if (document.readyState !== 'loading') { 8 | fn(); 9 | } else { 10 | document.addEventListener('DOMContentLoaded', fn); 11 | } 12 | } 13 | 14 | ready(function() { 15 | function handleClick(event) { 16 | event.preventDefault(); 17 | const params = new URLSearchParams(window.location.search); 18 | if (params.has('_popup')) { 19 | window.close(); // Close the popup. 20 | } else { 21 | window.history.back(); // Otherwise, go back. 22 | } 23 | } 24 | 25 | document.querySelectorAll('.cancel-link').forEach(function(el) { 26 | el.addEventListener('click', handleClick); 27 | }); 28 | }); 29 | } 30 | -------------------------------------------------------------------------------- /staticfiles/admin/js/change_form.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | { 3 | const inputTags = ['BUTTON', 'INPUT', 'SELECT', 'TEXTAREA']; 4 | const modelName = document.getElementById('django-admin-form-add-constants').dataset.modelName; 5 | if (modelName) { 6 | const form = document.getElementById(modelName + '_form'); 7 | for (const element of form.elements) { 8 | // HTMLElement.offsetParent returns null when the element is not 9 | // rendered. 10 | if (inputTags.includes(element.tagName) && !element.disabled && element.offsetParent) { 11 | element.focus(); 12 | break; 13 | } 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /staticfiles/admin/js/jquery.init.js: -------------------------------------------------------------------------------- 1 | /*global jQuery:false*/ 2 | 'use strict'; 3 | /* Puts the included jQuery into our own namespace using noConflict and passing 4 | * it 'true'. This ensures that the included jQuery doesn't pollute the global 5 | * namespace (i.e. this preserves pre-existing values for both window.$ and 6 | * window.jQuery). 7 | */ 8 | window.django = {jQuery: jQuery.noConflict(true)}; 9 | -------------------------------------------------------------------------------- /staticfiles/admin/js/popup_response.js: -------------------------------------------------------------------------------- 1 | /*global opener */ 2 | 'use strict'; 3 | { 4 | const initData = JSON.parse(document.getElementById('django-admin-popup-response-constants').dataset.popupResponse); 5 | switch(initData.action) { 6 | case 'change': 7 | opener.dismissChangeRelatedObjectPopup(window, initData.value, initData.obj, initData.new_value); 8 | break; 9 | case 'delete': 10 | opener.dismissDeleteRelatedObjectPopup(window, initData.value); 11 | break; 12 | default: 13 | opener.dismissAddRelatedObjectPopup(window, initData.value, initData.obj); 14 | break; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /staticfiles/admin/js/prepopulate_init.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | { 3 | const $ = django.jQuery; 4 | const fields = $('#django-admin-prepopulated-fields-constants').data('prepopulatedFields'); 5 | $.each(fields, function(index, field) { 6 | $('.empty-form .form-row .field-' + field.name + ', .empty-form.form-row .field-' + field.name).addClass('prepopulated_field'); 7 | $(field.id).data('dependency_list', field.dependency_list).prepopulate( 8 | field.dependency_ids, field.maxLength, field.allowUnicode 9 | ); 10 | }); 11 | } 12 | -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/jquery/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright JS Foundation and other contributors, https://js.foundation/ 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2012-2017 Kevin Brown, Igor Vaynberg, and Select2 contributors 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 13 | all 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 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/af.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/af",[],function(){return{errorLoading:function(){return"Die resultate kon nie gelaai word nie."},inputTooLong:function(e){var n=e.input.length-e.maximum,r="Verwyders asseblief "+n+" character";return 1!=n&&(r+="s"),r},inputTooShort:function(e){return"Voer asseblief "+(e.minimum-e.input.length)+" of meer karakters"},loadingMore:function(){return"Meer resultate word gelaai…"},maximumSelected:function(e){var n="Kies asseblief net "+e.maximum+" item";return 1!=e.maximum&&(n+="s"),n},noResults:function(){return"Geen resultate gevind"},searching:function(){return"Besig…"},removeAllItems:function(){return"Verwyder alle items"}}}),e.define,e.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/ar.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ar",[],function(){return{errorLoading:function(){return"لا يمكن تحميل النتائج"},inputTooLong:function(n){return"الرجاء حذف "+(n.input.length-n.maximum)+" عناصر"},inputTooShort:function(n){return"الرجاء إضافة "+(n.minimum-n.input.length)+" عناصر"},loadingMore:function(){return"جاري تحميل نتائج إضافية..."},maximumSelected:function(n){return"تستطيع إختيار "+n.maximum+" بنود فقط"},noResults:function(){return"لم يتم العثور على أي نتائج"},searching:function(){return"جاري البحث…"},removeAllItems:function(){return"قم بإزالة كل العناصر"}}}),n.define,n.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/az.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/az",[],function(){return{inputTooLong:function(n){return n.input.length-n.maximum+" simvol silin"},inputTooShort:function(n){return n.minimum-n.input.length+" simvol daxil edin"},loadingMore:function(){return"Daha çox nəticə yüklənir…"},maximumSelected:function(n){return"Sadəcə "+n.maximum+" element seçə bilərsiniz"},noResults:function(){return"Nəticə tapılmadı"},searching:function(){return"Axtarılır…"},removeAllItems:function(){return"Bütün elementləri sil"}}}),n.define,n.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/bg.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/bg",[],function(){return{inputTooLong:function(n){var e=n.input.length-n.maximum,u="Моля въведете с "+e+" по-малко символ";return e>1&&(u+="a"),u},inputTooShort:function(n){var e=n.minimum-n.input.length,u="Моля въведете още "+e+" символ";return e>1&&(u+="a"),u},loadingMore:function(){return"Зареждат се още…"},maximumSelected:function(n){var e="Можете да направите до "+n.maximum+" ";return n.maximum>1?e+="избора":e+="избор",e},noResults:function(){return"Няма намерени съвпадения"},searching:function(){return"Търсене…"},removeAllItems:function(){return"Премахнете всички елементи"}}}),n.define,n.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/bn.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/bn",[],function(){return{errorLoading:function(){return"ফলাফলগুলি লোড করা যায়নি।"},inputTooLong:function(n){var e=n.input.length-n.maximum,u="অনুগ্রহ করে "+e+" টি অক্ষর মুছে দিন।";return 1!=e&&(u="অনুগ্রহ করে "+e+" টি অক্ষর মুছে দিন।"),u},inputTooShort:function(n){return n.minimum-n.input.length+" টি অক্ষর অথবা অধিক অক্ষর লিখুন।"},loadingMore:function(){return"আরো ফলাফল লোড হচ্ছে ..."},maximumSelected:function(n){var e=n.maximum+" টি আইটেম নির্বাচন করতে পারবেন।";return 1!=n.maximum&&(e=n.maximum+" টি আইটেম নির্বাচন করতে পারবেন।"),e},noResults:function(){return"কোন ফলাফল পাওয়া যায়নি।"},searching:function(){return"অনুসন্ধান করা হচ্ছে ..."}}}),n.define,n.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/bs.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/bs",[],function(){function e(e,n,r,t){return e%10==1&&e%100!=11?n:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?r:t}return{errorLoading:function(){return"Preuzimanje nije uspijelo."},inputTooLong:function(n){var r=n.input.length-n.maximum,t="Obrišite "+r+" simbol";return t+=e(r,"","a","a")},inputTooShort:function(n){var r=n.minimum-n.input.length,t="Ukucajte bar još "+r+" simbol";return t+=e(r,"","a","a")},loadingMore:function(){return"Preuzimanje još rezultata…"},maximumSelected:function(n){var r="Možete izabrati samo "+n.maximum+" stavk";return r+=e(n.maximum,"u","e","i")},noResults:function(){return"Ništa nije pronađeno"},searching:function(){return"Pretraga…"},removeAllItems:function(){return"Uklonite sve stavke"}}}),e.define,e.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/ca.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/ca",[],function(){return{errorLoading:function(){return"La càrrega ha fallat"},inputTooLong:function(e){var n=e.input.length-e.maximum,r="Si us plau, elimina "+n+" car";return r+=1==n?"àcter":"àcters"},inputTooShort:function(e){var n=e.minimum-e.input.length,r="Si us plau, introdueix "+n+" car";return r+=1==n?"àcter":"àcters"},loadingMore:function(){return"Carregant més resultats…"},maximumSelected:function(e){var n="Només es pot seleccionar "+e.maximum+" element";return 1!=e.maximum&&(n+="s"),n},noResults:function(){return"No s'han trobat resultats"},searching:function(){return"Cercant…"},removeAllItems:function(){return"Treu tots els elements"}}}),e.define,e.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/cs.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/cs",[],function(){function e(e,n){switch(e){case 2:return n?"dva":"dvě";case 3:return"tři";case 4:return"čtyři"}return""}return{errorLoading:function(){return"Výsledky nemohly být načteny."},inputTooLong:function(n){var t=n.input.length-n.maximum;return 1==t?"Prosím, zadejte o jeden znak méně.":t<=4?"Prosím, zadejte o "+e(t,!0)+" znaky méně.":"Prosím, zadejte o "+t+" znaků méně."},inputTooShort:function(n){var t=n.minimum-n.input.length;return 1==t?"Prosím, zadejte ještě jeden znak.":t<=4?"Prosím, zadejte ještě další "+e(t,!0)+" znaky.":"Prosím, zadejte ještě dalších "+t+" znaků."},loadingMore:function(){return"Načítají se další výsledky…"},maximumSelected:function(n){var t=n.maximum;return 1==t?"Můžete zvolit jen jednu položku.":t<=4?"Můžete zvolit maximálně "+e(t,!1)+" položky.":"Můžete zvolit maximálně "+t+" položek."},noResults:function(){return"Nenalezeny žádné položky."},searching:function(){return"Vyhledávání…"},removeAllItems:function(){return"Odstraňte všechny položky"}}}),e.define,e.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/da.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/da",[],function(){return{errorLoading:function(){return"Resultaterne kunne ikke indlæses."},inputTooLong:function(e){return"Angiv venligst "+(e.input.length-e.maximum)+" tegn mindre"},inputTooShort:function(e){return"Angiv venligst "+(e.minimum-e.input.length)+" tegn mere"},loadingMore:function(){return"Indlæser flere resultater…"},maximumSelected:function(e){var n="Du kan kun vælge "+e.maximum+" emne";return 1!=e.maximum&&(n+="r"),n},noResults:function(){return"Ingen resultater fundet"},searching:function(){return"Søger…"},removeAllItems:function(){return"Fjern alle elementer"}}}),e.define,e.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/de.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/de",[],function(){return{errorLoading:function(){return"Die Ergebnisse konnten nicht geladen werden."},inputTooLong:function(e){return"Bitte "+(e.input.length-e.maximum)+" Zeichen weniger eingeben"},inputTooShort:function(e){return"Bitte "+(e.minimum-e.input.length)+" Zeichen mehr eingeben"},loadingMore:function(){return"Lade mehr Ergebnisse…"},maximumSelected:function(e){var n="Sie können nur "+e.maximum+" Element";return 1!=e.maximum&&(n+="e"),n+=" auswählen"},noResults:function(){return"Keine Übereinstimmungen gefunden"},searching:function(){return"Suche…"},removeAllItems:function(){return"Entferne alle Elemente"}}}),e.define,e.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/dsb.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/dsb",[],function(){var n=["znamuško","znamušce","znamuška","znamuškow"],e=["zapisk","zapiska","zapiski","zapiskow"],u=function(n,e){return 1===n?e[0]:2===n?e[1]:n>2&&n<=4?e[2]:n>=5?e[3]:void 0};return{errorLoading:function(){return"Wuslědki njejsu se dali zacytaś."},inputTooLong:function(e){var a=e.input.length-e.maximum;return"Pšosym lašuj "+a+" "+u(a,n)},inputTooShort:function(e){var a=e.minimum-e.input.length;return"Pšosym zapódaj nanejmjenjej "+a+" "+u(a,n)},loadingMore:function(){return"Dalšne wuslědki se zacytaju…"},maximumSelected:function(n){return"Móžoš jano "+n.maximum+" "+u(n.maximum,e)+"wubraś."},noResults:function(){return"Žedne wuslědki namakane"},searching:function(){return"Pyta se…"},removeAllItems:function(){return"Remove all items"}}}),n.define,n.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/el.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/el",[],function(){return{errorLoading:function(){return"Τα αποτελέσματα δεν μπόρεσαν να φορτώσουν."},inputTooLong:function(n){var e=n.input.length-n.maximum,u="Παρακαλώ διαγράψτε "+e+" χαρακτήρ";return 1==e&&(u+="α"),1!=e&&(u+="ες"),u},inputTooShort:function(n){return"Παρακαλώ συμπληρώστε "+(n.minimum-n.input.length)+" ή περισσότερους χαρακτήρες"},loadingMore:function(){return"Φόρτωση περισσότερων αποτελεσμάτων…"},maximumSelected:function(n){var e="Μπορείτε να επιλέξετε μόνο "+n.maximum+" επιλογ";return 1==n.maximum&&(e+="ή"),1!=n.maximum&&(e+="ές"),e},noResults:function(){return"Δεν βρέθηκαν αποτελέσματα"},searching:function(){return"Αναζήτηση…"},removeAllItems:function(){return"Καταργήστε όλα τα στοιχεία"}}}),n.define,n.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/en.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var n=e.input.length-e.maximum,r="Please delete "+n+" character";return 1!=n&&(r+="s"),r},inputTooShort:function(e){return"Please enter "+(e.minimum-e.input.length)+" or more characters"},loadingMore:function(){return"Loading more results…"},maximumSelected:function(e){var n="You can only select "+e.maximum+" item";return 1!=e.maximum&&(n+="s"),n},noResults:function(){return"No results found"},searching:function(){return"Searching…"},removeAllItems:function(){return"Remove all items"}}}),e.define,e.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/es.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/es",[],function(){return{errorLoading:function(){return"No se pudieron cargar los resultados"},inputTooLong:function(e){var n=e.input.length-e.maximum,r="Por favor, elimine "+n+" car";return r+=1==n?"ácter":"acteres"},inputTooShort:function(e){var n=e.minimum-e.input.length,r="Por favor, introduzca "+n+" car";return r+=1==n?"ácter":"acteres"},loadingMore:function(){return"Cargando más resultados…"},maximumSelected:function(e){var n="Sólo puede seleccionar "+e.maximum+" elemento";return 1!=e.maximum&&(n+="s"),n},noResults:function(){return"No se encontraron resultados"},searching:function(){return"Buscando…"},removeAllItems:function(){return"Eliminar todos los elementos"}}}),e.define,e.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/et.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/et",[],function(){return{inputTooLong:function(e){var n=e.input.length-e.maximum,t="Sisesta "+n+" täht";return 1!=n&&(t+="e"),t+=" vähem"},inputTooShort:function(e){var n=e.minimum-e.input.length,t="Sisesta "+n+" täht";return 1!=n&&(t+="e"),t+=" rohkem"},loadingMore:function(){return"Laen tulemusi…"},maximumSelected:function(e){var n="Saad vaid "+e.maximum+" tulemus";return 1==e.maximum?n+="e":n+="t",n+=" valida"},noResults:function(){return"Tulemused puuduvad"},searching:function(){return"Otsin…"},removeAllItems:function(){return"Eemalda kõik esemed"}}}),e.define,e.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/eu.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/eu",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Idatzi ";return n+=1==t?"karaktere bat":t+" karaktere",n+=" gutxiago"},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Idatzi ";return n+=1==t?"karaktere bat":t+" karaktere",n+=" gehiago"},loadingMore:function(){return"Emaitza gehiago kargatzen…"},maximumSelected:function(e){return 1===e.maximum?"Elementu bakarra hauta dezakezu":e.maximum+" elementu hauta ditzakezu soilik"},noResults:function(){return"Ez da bat datorrenik aurkitu"},searching:function(){return"Bilatzen…"},removeAllItems:function(){return"Kendu elementu guztiak"}}}),e.define,e.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/fa.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/fa",[],function(){return{errorLoading:function(){return"امکان بارگذاری نتایج وجود ندارد."},inputTooLong:function(n){return"لطفاً "+(n.input.length-n.maximum)+" کاراکتر را حذف نمایید"},inputTooShort:function(n){return"لطفاً تعداد "+(n.minimum-n.input.length)+" کاراکتر یا بیشتر وارد نمایید"},loadingMore:function(){return"در حال بارگذاری نتایج بیشتر..."},maximumSelected:function(n){return"شما تنها می‌توانید "+n.maximum+" آیتم را انتخاب نمایید"},noResults:function(){return"هیچ نتیجه‌ای یافت نشد"},searching:function(){return"در حال جستجو..."},removeAllItems:function(){return"همه موارد را حذف کنید"}}}),n.define,n.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/fi.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/fi",[],function(){return{errorLoading:function(){return"Tuloksia ei saatu ladattua."},inputTooLong:function(n){return"Ole hyvä ja anna "+(n.input.length-n.maximum)+" merkkiä vähemmän"},inputTooShort:function(n){return"Ole hyvä ja anna "+(n.minimum-n.input.length)+" merkkiä lisää"},loadingMore:function(){return"Ladataan lisää tuloksia…"},maximumSelected:function(n){return"Voit valita ainoastaan "+n.maximum+" kpl"},noResults:function(){return"Ei tuloksia"},searching:function(){return"Haetaan…"},removeAllItems:function(){return"Poista kaikki kohteet"}}}),n.define,n.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/fr.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/fr",[],function(){return{errorLoading:function(){return"Les résultats ne peuvent pas être chargés."},inputTooLong:function(e){var n=e.input.length-e.maximum;return"Supprimez "+n+" caractère"+(n>1?"s":"")},inputTooShort:function(e){var n=e.minimum-e.input.length;return"Saisissez au moins "+n+" caractère"+(n>1?"s":"")},loadingMore:function(){return"Chargement de résultats supplémentaires…"},maximumSelected:function(e){return"Vous pouvez seulement sélectionner "+e.maximum+" élément"+(e.maximum>1?"s":"")},noResults:function(){return"Aucun résultat trouvé"},searching:function(){return"Recherche en cours…"},removeAllItems:function(){return"Supprimer tous les éléments"}}}),e.define,e.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/gl.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/gl",[],function(){return{errorLoading:function(){return"Non foi posíbel cargar os resultados."},inputTooLong:function(e){var n=e.input.length-e.maximum;return 1===n?"Elimine un carácter":"Elimine "+n+" caracteres"},inputTooShort:function(e){var n=e.minimum-e.input.length;return 1===n?"Engada un carácter":"Engada "+n+" caracteres"},loadingMore:function(){return"Cargando máis resultados…"},maximumSelected:function(e){return 1===e.maximum?"Só pode seleccionar un elemento":"Só pode seleccionar "+e.maximum+" elementos"},noResults:function(){return"Non se atoparon resultados"},searching:function(){return"Buscando…"},removeAllItems:function(){return"Elimina todos os elementos"}}}),e.define,e.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/he.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/he",[],function(){return{errorLoading:function(){return"שגיאה בטעינת התוצאות"},inputTooLong:function(n){var e=n.input.length-n.maximum,r="נא למחוק ";return r+=1===e?"תו אחד":e+" תווים"},inputTooShort:function(n){var e=n.minimum-n.input.length,r="נא להכניס ";return r+=1===e?"תו אחד":e+" תווים",r+=" או יותר"},loadingMore:function(){return"טוען תוצאות נוספות…"},maximumSelected:function(n){var e="באפשרותך לבחור עד ";return 1===n.maximum?e+="פריט אחד":e+=n.maximum+" פריטים",e},noResults:function(){return"לא נמצאו תוצאות"},searching:function(){return"מחפש…"},removeAllItems:function(){return"הסר את כל הפריטים"}}}),n.define,n.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/hi.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/hi",[],function(){return{errorLoading:function(){return"परिणामों को लोड नहीं किया जा सका।"},inputTooLong:function(n){var e=n.input.length-n.maximum,r=e+" अक्षर को हटा दें";return e>1&&(r=e+" अक्षरों को हटा दें "),r},inputTooShort:function(n){return"कृपया "+(n.minimum-n.input.length)+" या अधिक अक्षर दर्ज करें"},loadingMore:function(){return"अधिक परिणाम लोड हो रहे है..."},maximumSelected:function(n){return"आप केवल "+n.maximum+" आइटम का चयन कर सकते हैं"},noResults:function(){return"कोई परिणाम नहीं मिला"},searching:function(){return"खोज रहा है..."},removeAllItems:function(){return"सभी वस्तुओं को हटा दें"}}}),n.define,n.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/hr.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/hr",[],function(){function n(n){var e=" "+n+" znak";return n%10<5&&n%10>0&&(n%100<5||n%100>19)?n%10>1&&(e+="a"):e+="ova",e}return{errorLoading:function(){return"Preuzimanje nije uspjelo."},inputTooLong:function(e){return"Unesite "+n(e.input.length-e.maximum)},inputTooShort:function(e){return"Unesite još "+n(e.minimum-e.input.length)},loadingMore:function(){return"Učitavanje rezultata…"},maximumSelected:function(n){return"Maksimalan broj odabranih stavki je "+n.maximum},noResults:function(){return"Nema rezultata"},searching:function(){return"Pretraga…"},removeAllItems:function(){return"Ukloni sve stavke"}}}),n.define,n.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/hsb.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/hsb",[],function(){var n=["znamješko","znamješce","znamješka","znamješkow"],e=["zapisk","zapiskaj","zapiski","zapiskow"],u=function(n,e){return 1===n?e[0]:2===n?e[1]:n>2&&n<=4?e[2]:n>=5?e[3]:void 0};return{errorLoading:function(){return"Wuslědki njedachu so začitać."},inputTooLong:function(e){var a=e.input.length-e.maximum;return"Prošu zhašej "+a+" "+u(a,n)},inputTooShort:function(e){var a=e.minimum-e.input.length;return"Prošu zapodaj znajmjeńša "+a+" "+u(a,n)},loadingMore:function(){return"Dalše wuslědki so začitaja…"},maximumSelected:function(n){return"Móžeš jenož "+n.maximum+" "+u(n.maximum,e)+"wubrać"},noResults:function(){return"Žane wuslědki namakane"},searching:function(){return"Pyta so…"},removeAllItems:function(){return"Remove all items"}}}),n.define,n.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/hu.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/hu",[],function(){return{errorLoading:function(){return"Az eredmények betöltése nem sikerült."},inputTooLong:function(e){return"Túl hosszú. "+(e.input.length-e.maximum)+" karakterrel több, mint kellene."},inputTooShort:function(e){return"Túl rövid. Még "+(e.minimum-e.input.length)+" karakter hiányzik."},loadingMore:function(){return"Töltés…"},maximumSelected:function(e){return"Csak "+e.maximum+" elemet lehet kiválasztani."},noResults:function(){return"Nincs találat."},searching:function(){return"Keresés…"},removeAllItems:function(){return"Távolítson el minden elemet"}}}),e.define,e.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/hy.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/hy",[],function(){return{errorLoading:function(){return"Արդյունքները հնարավոր չէ բեռնել։"},inputTooLong:function(n){return"Խնդրում ենք հեռացնել "+(n.input.length-n.maximum)+" նշան"},inputTooShort:function(n){return"Խնդրում ենք մուտքագրել "+(n.minimum-n.input.length)+" կամ ավել նշաններ"},loadingMore:function(){return"Բեռնվում են նոր արդյունքներ․․․"},maximumSelected:function(n){return"Դուք կարող եք ընտրել առավելագույնը "+n.maximum+" կետ"},noResults:function(){return"Արդյունքներ չեն գտնվել"},searching:function(){return"Որոնում․․․"},removeAllItems:function(){return"Հեռացնել բոլոր տարրերը"}}}),n.define,n.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/id.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/id",[],function(){return{errorLoading:function(){return"Data tidak boleh diambil."},inputTooLong:function(n){return"Hapuskan "+(n.input.length-n.maximum)+" huruf"},inputTooShort:function(n){return"Masukkan "+(n.minimum-n.input.length)+" huruf lagi"},loadingMore:function(){return"Mengambil data…"},maximumSelected:function(n){return"Anda hanya dapat memilih "+n.maximum+" pilihan"},noResults:function(){return"Tidak ada data yang sesuai"},searching:function(){return"Mencari…"},removeAllItems:function(){return"Hapus semua item"}}}),n.define,n.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/is.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/is",[],function(){return{inputTooLong:function(n){var t=n.input.length-n.maximum,e="Vinsamlegast styttið texta um "+t+" staf";return t<=1?e:e+"i"},inputTooShort:function(n){var t=n.minimum-n.input.length,e="Vinsamlegast skrifið "+t+" staf";return t>1&&(e+="i"),e+=" í viðbót"},loadingMore:function(){return"Sæki fleiri niðurstöður…"},maximumSelected:function(n){return"Þú getur aðeins valið "+n.maximum+" atriði"},noResults:function(){return"Ekkert fannst"},searching:function(){return"Leita…"},removeAllItems:function(){return"Fjarlægðu öll atriði"}}}),n.define,n.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/it.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/it",[],function(){return{errorLoading:function(){return"I risultati non possono essere caricati."},inputTooLong:function(e){var n=e.input.length-e.maximum,t="Per favore cancella "+n+" caratter";return t+=1!==n?"i":"e"},inputTooShort:function(e){return"Per favore inserisci "+(e.minimum-e.input.length)+" o più caratteri"},loadingMore:function(){return"Caricando più risultati…"},maximumSelected:function(e){var n="Puoi selezionare solo "+e.maximum+" element";return 1!==e.maximum?n+="i":n+="o",n},noResults:function(){return"Nessun risultato trovato"},searching:function(){return"Sto cercando…"},removeAllItems:function(){return"Rimuovi tutti gli oggetti"}}}),e.define,e.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/ja.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ja",[],function(){return{errorLoading:function(){return"結果が読み込まれませんでした"},inputTooLong:function(n){return n.input.length-n.maximum+" 文字を削除してください"},inputTooShort:function(n){return"少なくとも "+(n.minimum-n.input.length)+" 文字を入力してください"},loadingMore:function(){return"読み込み中…"},maximumSelected:function(n){return n.maximum+" 件しか選択できません"},noResults:function(){return"対象が見つかりません"},searching:function(){return"検索しています…"},removeAllItems:function(){return"すべてのアイテムを削除"}}}),n.define,n.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/ka.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ka",[],function(){return{errorLoading:function(){return"მონაცემების ჩატვირთვა შეუძლებელია."},inputTooLong:function(n){return"გთხოვთ აკრიფეთ "+(n.input.length-n.maximum)+" სიმბოლოთი ნაკლები"},inputTooShort:function(n){return"გთხოვთ აკრიფეთ "+(n.minimum-n.input.length)+" სიმბოლო ან მეტი"},loadingMore:function(){return"მონაცემების ჩატვირთვა…"},maximumSelected:function(n){return"თქვენ შეგიძლიათ აირჩიოთ არაუმეტეს "+n.maximum+" ელემენტი"},noResults:function(){return"რეზულტატი არ მოიძებნა"},searching:function(){return"ძიება…"},removeAllItems:function(){return"ამოიღე ყველა ელემენტი"}}}),n.define,n.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/km.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/km",[],function(){return{errorLoading:function(){return"មិនអាចទាញយកទិន្នន័យ"},inputTooLong:function(n){return"សូមលុបចេញ "+(n.input.length-n.maximum)+" អក្សរ"},inputTooShort:function(n){return"សូមបញ្ចូល"+(n.minimum-n.input.length)+" អក្សរ រឺ ច្រើនជាងនេះ"},loadingMore:function(){return"កំពុងទាញយកទិន្នន័យបន្ថែម..."},maximumSelected:function(n){return"អ្នកអាចជ្រើសរើសបានតែ "+n.maximum+" ជម្រើសប៉ុណ្ណោះ"},noResults:function(){return"មិនមានលទ្ធផល"},searching:function(){return"កំពុងស្វែងរក..."},removeAllItems:function(){return"លុបធាតុទាំងអស់"}}}),n.define,n.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/ko.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ko",[],function(){return{errorLoading:function(){return"결과를 불러올 수 없습니다."},inputTooLong:function(n){return"너무 깁니다. "+(n.input.length-n.maximum)+" 글자 지워주세요."},inputTooShort:function(n){return"너무 짧습니다. "+(n.minimum-n.input.length)+" 글자 더 입력해주세요."},loadingMore:function(){return"불러오는 중…"},maximumSelected:function(n){return"최대 "+n.maximum+"개까지만 선택 가능합니다."},noResults:function(){return"결과가 없습니다."},searching:function(){return"검색 중…"},removeAllItems:function(){return"모든 항목 삭제"}}}),n.define,n.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/lt.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/lt",[],function(){function n(n,e,i,t){return n%10==1&&(n%100<11||n%100>19)?e:n%10>=2&&n%10<=9&&(n%100<11||n%100>19)?i:t}return{inputTooLong:function(e){var i=e.input.length-e.maximum,t="Pašalinkite "+i+" simbol";return t+=n(i,"į","ius","ių")},inputTooShort:function(e){var i=e.minimum-e.input.length,t="Įrašykite dar "+i+" simbol";return t+=n(i,"į","ius","ių")},loadingMore:function(){return"Kraunama daugiau rezultatų…"},maximumSelected:function(e){var i="Jūs galite pasirinkti tik "+e.maximum+" element";return i+=n(e.maximum,"ą","us","ų")},noResults:function(){return"Atitikmenų nerasta"},searching:function(){return"Ieškoma…"},removeAllItems:function(){return"Pašalinti visus elementus"}}}),n.define,n.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/lv.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/lv",[],function(){function e(e,n,u,i){return 11===e?n:e%10==1?u:i}return{inputTooLong:function(n){var u=n.input.length-n.maximum,i="Lūdzu ievadiet par "+u;return(i+=" simbol"+e(u,"iem","u","iem"))+" mazāk"},inputTooShort:function(n){var u=n.minimum-n.input.length,i="Lūdzu ievadiet vēl "+u;return i+=" simbol"+e(u,"us","u","us")},loadingMore:function(){return"Datu ielāde…"},maximumSelected:function(n){var u="Jūs varat izvēlēties ne vairāk kā "+n.maximum;return u+=" element"+e(n.maximum,"us","u","us")},noResults:function(){return"Sakritību nav"},searching:function(){return"Meklēšana…"},removeAllItems:function(){return"Noņemt visus vienumus"}}}),e.define,e.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/mk.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/mk",[],function(){return{inputTooLong:function(n){var e=(n.input.length,n.maximum,"Ве молиме внесете "+n.maximum+" помалку карактер");return 1!==n.maximum&&(e+="и"),e},inputTooShort:function(n){var e=(n.minimum,n.input.length,"Ве молиме внесете уште "+n.maximum+" карактер");return 1!==n.maximum&&(e+="и"),e},loadingMore:function(){return"Вчитување резултати…"},maximumSelected:function(n){var e="Можете да изберете само "+n.maximum+" ставк";return 1===n.maximum?e+="а":e+="и",e},noResults:function(){return"Нема пронајдено совпаѓања"},searching:function(){return"Пребарување…"},removeAllItems:function(){return"Отстрани ги сите предмети"}}}),n.define,n.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/ms.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ms",[],function(){return{errorLoading:function(){return"Keputusan tidak berjaya dimuatkan."},inputTooLong:function(n){return"Sila hapuskan "+(n.input.length-n.maximum)+" aksara"},inputTooShort:function(n){return"Sila masukkan "+(n.minimum-n.input.length)+" atau lebih aksara"},loadingMore:function(){return"Sedang memuatkan keputusan…"},maximumSelected:function(n){return"Anda hanya boleh memilih "+n.maximum+" pilihan"},noResults:function(){return"Tiada padanan yang ditemui"},searching:function(){return"Mencari…"},removeAllItems:function(){return"Keluarkan semua item"}}}),n.define,n.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/nb.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/nb",[],function(){return{errorLoading:function(){return"Kunne ikke hente resultater."},inputTooLong:function(e){return"Vennligst fjern "+(e.input.length-e.maximum)+" tegn"},inputTooShort:function(e){return"Vennligst skriv inn "+(e.minimum-e.input.length)+" tegn til"},loadingMore:function(){return"Laster flere resultater…"},maximumSelected:function(e){return"Du kan velge maks "+e.maximum+" elementer"},noResults:function(){return"Ingen treff"},searching:function(){return"Søker…"},removeAllItems:function(){return"Fjern alle elementer"}}}),e.define,e.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/ne.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ne",[],function(){return{errorLoading:function(){return"नतिजाहरु देखाउन सकिएन।"},inputTooLong:function(n){var e=n.input.length-n.maximum,u="कृपया "+e+" अक्षर मेटाउनुहोस्।";return 1!=e&&(u+="कृपया "+e+" अक्षरहरु मेटाउनुहोस्।"),u},inputTooShort:function(n){return"कृपया बाँकी रहेका "+(n.minimum-n.input.length)+" वा अरु धेरै अक्षरहरु भर्नुहोस्।"},loadingMore:function(){return"अरु नतिजाहरु भरिँदैछन् …"},maximumSelected:function(n){var e="तँपाई "+n.maximum+" वस्तु मात्र छान्न पाउँनुहुन्छ।";return 1!=n.maximum&&(e="तँपाई "+n.maximum+" वस्तुहरु मात्र छान्न पाउँनुहुन्छ।"),e},noResults:function(){return"कुनै पनि नतिजा भेटिएन।"},searching:function(){return"खोजि हुँदैछ…"}}}),n.define,n.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/nl.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/nl",[],function(){return{errorLoading:function(){return"De resultaten konden niet worden geladen."},inputTooLong:function(e){return"Gelieve "+(e.input.length-e.maximum)+" karakters te verwijderen"},inputTooShort:function(e){return"Gelieve "+(e.minimum-e.input.length)+" of meer karakters in te voeren"},loadingMore:function(){return"Meer resultaten laden…"},maximumSelected:function(e){var n=1==e.maximum?"kan":"kunnen",r="Er "+n+" maar "+e.maximum+" item";return 1!=e.maximum&&(r+="s"),r+=" worden geselecteerd"},noResults:function(){return"Geen resultaten gevonden…"},searching:function(){return"Zoeken…"},removeAllItems:function(){return"Verwijder alle items"}}}),e.define,e.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/pl.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/pl",[],function(){var n=["znak","znaki","znaków"],e=["element","elementy","elementów"],r=function(n,e){return 1===n?e[0]:n>1&&n<=4?e[1]:n>=5?e[2]:void 0};return{errorLoading:function(){return"Nie można załadować wyników."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Usuń "+t+" "+r(t,n)},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Podaj przynajmniej "+t+" "+r(t,n)},loadingMore:function(){return"Trwa ładowanie…"},maximumSelected:function(n){return"Możesz zaznaczyć tylko "+n.maximum+" "+r(n.maximum,e)},noResults:function(){return"Brak wyników"},searching:function(){return"Trwa wyszukiwanie…"},removeAllItems:function(){return"Usuń wszystkie przedmioty"}}}),n.define,n.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/ps.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ps",[],function(){return{errorLoading:function(){return"پايلي نه سي ترلاسه کېدای"},inputTooLong:function(n){var e=n.input.length-n.maximum,r="د مهربانۍ لمخي "+e+" توری ړنګ کړئ";return 1!=e&&(r=r.replace("توری","توري")),r},inputTooShort:function(n){return"لږ تر لږه "+(n.minimum-n.input.length)+" يا ډېر توري وليکئ"},loadingMore:function(){return"نوري پايلي ترلاسه کيږي..."},maximumSelected:function(n){var e="تاسو يوازي "+n.maximum+" قلم په نښه کولای سی";return 1!=n.maximum&&(e=e.replace("قلم","قلمونه")),e},noResults:function(){return"پايلي و نه موندل سوې"},searching:function(){return"لټول کيږي..."},removeAllItems:function(){return"ټول توکي لرې کړئ"}}}),n.define,n.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/pt-BR.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/pt-BR",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var n=e.input.length-e.maximum,r="Apague "+n+" caracter";return 1!=n&&(r+="es"),r},inputTooShort:function(e){return"Digite "+(e.minimum-e.input.length)+" ou mais caracteres"},loadingMore:function(){return"Carregando mais resultados…"},maximumSelected:function(e){var n="Você só pode selecionar "+e.maximum+" ite";return 1==e.maximum?n+="m":n+="ns",n},noResults:function(){return"Nenhum resultado encontrado"},searching:function(){return"Buscando…"},removeAllItems:function(){return"Remover todos os itens"}}}),e.define,e.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/pt.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/pt",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var r=e.input.length-e.maximum,n="Por favor apague "+r+" ";return n+=1!=r?"caracteres":"caractere"},inputTooShort:function(e){return"Introduza "+(e.minimum-e.input.length)+" ou mais caracteres"},loadingMore:function(){return"A carregar mais resultados…"},maximumSelected:function(e){var r="Apenas pode seleccionar "+e.maximum+" ";return r+=1!=e.maximum?"itens":"item"},noResults:function(){return"Sem resultados"},searching:function(){return"A procurar…"},removeAllItems:function(){return"Remover todos os itens"}}}),e.define,e.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/ro.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/ro",[],function(){return{errorLoading:function(){return"Rezultatele nu au putut fi incărcate."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vă rugăm să ștergeți"+t+" caracter";return 1!==t&&(n+="e"),n},inputTooShort:function(e){return"Vă rugăm să introduceți "+(e.minimum-e.input.length)+" sau mai multe caractere"},loadingMore:function(){return"Se încarcă mai multe rezultate…"},maximumSelected:function(e){var t="Aveți voie să selectați cel mult "+e.maximum;return t+=" element",1!==e.maximum&&(t+="e"),t},noResults:function(){return"Nu au fost găsite rezultate"},searching:function(){return"Căutare…"},removeAllItems:function(){return"Eliminați toate elementele"}}}),e.define,e.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/ru.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ru",[],function(){function n(n,e,r,u){return n%10<5&&n%10>0&&n%100<5||n%100>20?n%10>1?r:e:u}return{errorLoading:function(){return"Невозможно загрузить результаты"},inputTooLong:function(e){var r=e.input.length-e.maximum,u="Пожалуйста, введите на "+r+" символ";return u+=n(r,"","a","ов"),u+=" меньше"},inputTooShort:function(e){var r=e.minimum-e.input.length,u="Пожалуйста, введите ещё хотя бы "+r+" символ";return u+=n(r,"","a","ов")},loadingMore:function(){return"Загрузка данных…"},maximumSelected:function(e){var r="Вы можете выбрать не более "+e.maximum+" элемент";return r+=n(e.maximum,"","a","ов")},noResults:function(){return"Совпадений не найдено"},searching:function(){return"Поиск…"},removeAllItems:function(){return"Удалить все элементы"}}}),n.define,n.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/sk.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/sk",[],function(){var e={2:function(e){return e?"dva":"dve"},3:function(){return"tri"},4:function(){return"štyri"}};return{errorLoading:function(){return"Výsledky sa nepodarilo načítať."},inputTooLong:function(n){var t=n.input.length-n.maximum;return 1==t?"Prosím, zadajte o jeden znak menej":t>=2&&t<=4?"Prosím, zadajte o "+e[t](!0)+" znaky menej":"Prosím, zadajte o "+t+" znakov menej"},inputTooShort:function(n){var t=n.minimum-n.input.length;return 1==t?"Prosím, zadajte ešte jeden znak":t<=4?"Prosím, zadajte ešte ďalšie "+e[t](!0)+" znaky":"Prosím, zadajte ešte ďalších "+t+" znakov"},loadingMore:function(){return"Načítanie ďalších výsledkov…"},maximumSelected:function(n){return 1==n.maximum?"Môžete zvoliť len jednu položku":n.maximum>=2&&n.maximum<=4?"Môžete zvoliť najviac "+e[n.maximum](!1)+" položky":"Môžete zvoliť najviac "+n.maximum+" položiek"},noResults:function(){return"Nenašli sa žiadne položky"},searching:function(){return"Vyhľadávanie…"},removeAllItems:function(){return"Odstráňte všetky položky"}}}),e.define,e.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/sl.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/sl",[],function(){return{errorLoading:function(){return"Zadetkov iskanja ni bilo mogoče naložiti."},inputTooLong:function(e){var n=e.input.length-e.maximum,t="Prosim zbrišite "+n+" znak";return 2==n?t+="a":1!=n&&(t+="e"),t},inputTooShort:function(e){var n=e.minimum-e.input.length,t="Prosim vpišite še "+n+" znak";return 2==n?t+="a":1!=n&&(t+="e"),t},loadingMore:function(){return"Nalagam več zadetkov…"},maximumSelected:function(e){var n="Označite lahko največ "+e.maximum+" predmet";return 2==e.maximum?n+="a":1!=e.maximum&&(n+="e"),n},noResults:function(){return"Ni zadetkov."},searching:function(){return"Iščem…"},removeAllItems:function(){return"Odstranite vse elemente"}}}),e.define,e.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/sq.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/sq",[],function(){return{errorLoading:function(){return"Rezultatet nuk mund të ngarkoheshin."},inputTooLong:function(e){var n=e.input.length-e.maximum,t="Të lutem fshi "+n+" karakter";return 1!=n&&(t+="e"),t},inputTooShort:function(e){return"Të lutem shkruaj "+(e.minimum-e.input.length)+" ose më shumë karaktere"},loadingMore:function(){return"Duke ngarkuar më shumë rezultate…"},maximumSelected:function(e){var n="Mund të zgjedhësh vetëm "+e.maximum+" element";return 1!=e.maximum&&(n+="e"),n},noResults:function(){return"Nuk u gjet asnjë rezultat"},searching:function(){return"Duke kërkuar…"},removeAllItems:function(){return"Hiq të gjitha sendet"}}}),e.define,e.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/sr-Cyrl.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/sr-Cyrl",[],function(){function n(n,e,r,u){return n%10==1&&n%100!=11?e:n%10>=2&&n%10<=4&&(n%100<12||n%100>14)?r:u}return{errorLoading:function(){return"Преузимање није успело."},inputTooLong:function(e){var r=e.input.length-e.maximum,u="Обришите "+r+" симбол";return u+=n(r,"","а","а")},inputTooShort:function(e){var r=e.minimum-e.input.length,u="Укуцајте бар још "+r+" симбол";return u+=n(r,"","а","а")},loadingMore:function(){return"Преузимање још резултата…"},maximumSelected:function(e){var r="Можете изабрати само "+e.maximum+" ставк";return r+=n(e.maximum,"у","е","и")},noResults:function(){return"Ништа није пронађено"},searching:function(){return"Претрага…"},removeAllItems:function(){return"Уклоните све ставке"}}}),n.define,n.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/sr.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/sr",[],function(){function n(n,e,r,t){return n%10==1&&n%100!=11?e:n%10>=2&&n%10<=4&&(n%100<12||n%100>14)?r:t}return{errorLoading:function(){return"Preuzimanje nije uspelo."},inputTooLong:function(e){var r=e.input.length-e.maximum,t="Obrišite "+r+" simbol";return t+=n(r,"","a","a")},inputTooShort:function(e){var r=e.minimum-e.input.length,t="Ukucajte bar još "+r+" simbol";return t+=n(r,"","a","a")},loadingMore:function(){return"Preuzimanje još rezultata…"},maximumSelected:function(e){var r="Možete izabrati samo "+e.maximum+" stavk";return r+=n(e.maximum,"u","e","i")},noResults:function(){return"Ništa nije pronađeno"},searching:function(){return"Pretraga…"},removeAllItems:function(){return"Уклоните све ставке"}}}),n.define,n.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/sv.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/sv",[],function(){return{errorLoading:function(){return"Resultat kunde inte laddas."},inputTooLong:function(n){return"Vänligen sudda ut "+(n.input.length-n.maximum)+" tecken"},inputTooShort:function(n){return"Vänligen skriv in "+(n.minimum-n.input.length)+" eller fler tecken"},loadingMore:function(){return"Laddar fler resultat…"},maximumSelected:function(n){return"Du kan max välja "+n.maximum+" element"},noResults:function(){return"Inga träffar"},searching:function(){return"Söker…"},removeAllItems:function(){return"Ta bort alla objekt"}}}),n.define,n.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/th.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/th",[],function(){return{errorLoading:function(){return"ไม่สามารถค้นข้อมูลได้"},inputTooLong:function(n){return"โปรดลบออก "+(n.input.length-n.maximum)+" ตัวอักษร"},inputTooShort:function(n){return"โปรดพิมพ์เพิ่มอีก "+(n.minimum-n.input.length)+" ตัวอักษร"},loadingMore:function(){return"กำลังค้นข้อมูลเพิ่ม…"},maximumSelected:function(n){return"คุณสามารถเลือกได้ไม่เกิน "+n.maximum+" รายการ"},noResults:function(){return"ไม่พบข้อมูล"},searching:function(){return"กำลังค้นข้อมูล…"},removeAllItems:function(){return"ลบรายการทั้งหมด"}}}),n.define,n.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/tk.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/tk",[],function(){return{errorLoading:function(){return"Netije ýüklenmedi."},inputTooLong:function(e){return e.input.length-e.maximum+" harp bozuň."},inputTooShort:function(e){return"Ýene-de iň az "+(e.minimum-e.input.length)+" harp ýazyň."},loadingMore:function(){return"Köpräk netije görkezilýär…"},maximumSelected:function(e){return"Diňe "+e.maximum+" sanysyny saýlaň."},noResults:function(){return"Netije tapylmady."},searching:function(){return"Gözlenýär…"},removeAllItems:function(){return"Remove all items"}}}),e.define,e.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/tr.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/tr",[],function(){return{errorLoading:function(){return"Sonuç yüklenemedi"},inputTooLong:function(n){return n.input.length-n.maximum+" karakter daha girmelisiniz"},inputTooShort:function(n){return"En az "+(n.minimum-n.input.length)+" karakter daha girmelisiniz"},loadingMore:function(){return"Daha fazla…"},maximumSelected:function(n){return"Sadece "+n.maximum+" seçim yapabilirsiniz"},noResults:function(){return"Sonuç bulunamadı"},searching:function(){return"Aranıyor…"},removeAllItems:function(){return"Tüm öğeleri kaldır"}}}),n.define,n.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/uk.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/uk",[],function(){function n(n,e,u,r){return n%100>10&&n%100<15?r:n%10==1?e:n%10>1&&n%10<5?u:r}return{errorLoading:function(){return"Неможливо завантажити результати"},inputTooLong:function(e){return"Будь ласка, видаліть "+(e.input.length-e.maximum)+" "+n(e.maximum,"літеру","літери","літер")},inputTooShort:function(n){return"Будь ласка, введіть "+(n.minimum-n.input.length)+" або більше літер"},loadingMore:function(){return"Завантаження інших результатів…"},maximumSelected:function(e){return"Ви можете вибрати лише "+e.maximum+" "+n(e.maximum,"пункт","пункти","пунктів")},noResults:function(){return"Нічого не знайдено"},searching:function(){return"Пошук…"},removeAllItems:function(){return"Видалити всі елементи"}}}),n.define,n.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/vi.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/vi",[],function(){return{inputTooLong:function(n){return"Vui lòng xóa bớt "+(n.input.length-n.maximum)+" ký tự"},inputTooShort:function(n){return"Vui lòng nhập thêm từ "+(n.minimum-n.input.length)+" ký tự trở lên"},loadingMore:function(){return"Đang lấy thêm kết quả…"},maximumSelected:function(n){return"Chỉ có thể chọn được "+n.maximum+" lựa chọn"},noResults:function(){return"Không tìm thấy kết quả"},searching:function(){return"Đang tìm…"},removeAllItems:function(){return"Xóa tất cả các mục"}}}),n.define,n.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/zh-CN.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/zh-CN",[],function(){return{errorLoading:function(){return"无法载入结果。"},inputTooLong:function(n){return"请删除"+(n.input.length-n.maximum)+"个字符"},inputTooShort:function(n){return"请再输入至少"+(n.minimum-n.input.length)+"个字符"},loadingMore:function(){return"载入更多结果…"},maximumSelected:function(n){return"最多只能选择"+n.maximum+"个项目"},noResults:function(){return"未找到结果"},searching:function(){return"搜索中…"},removeAllItems:function(){return"删除所有项目"}}}),n.define,n.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/select2/i18n/zh-TW.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/zh-TW",[],function(){return{inputTooLong:function(n){return"請刪掉"+(n.input.length-n.maximum)+"個字元"},inputTooShort:function(n){return"請再輸入"+(n.minimum-n.input.length)+"個字元"},loadingMore:function(){return"載入中…"},maximumSelected:function(n){return"你只能選擇最多"+n.maximum+"項"},noResults:function(){return"沒有找到相符的項目"},searching:function(){return"搜尋中…"},removeAllItems:function(){return"刪除所有項目"}}}),n.define,n.require}(); -------------------------------------------------------------------------------- /staticfiles/admin/js/vendor/xregexp/LICENSE.txt: -------------------------------------------------------------------------------- 1 | The MIT License 2 | 3 | Copyright (c) 2007-2017 Steven Levithan 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 13 | all 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 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /staticfiles/images/Devsearch Inbox.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/staticfiles/images/Devsearch Inbox.jpg -------------------------------------------------------------------------------- /staticfiles/images/default copy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/staticfiles/images/default copy.jpg -------------------------------------------------------------------------------- /staticfiles/images/default.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/staticfiles/images/default.jpg -------------------------------------------------------------------------------- /staticfiles/images/icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /staticfiles/images/inbox.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/staticfiles/images/inbox.jpg -------------------------------------------------------------------------------- /staticfiles/images/inboxs.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/staticfiles/images/inboxs.jpg -------------------------------------------------------------------------------- /staticfiles/images/main.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/staticfiles/images/main.jpg -------------------------------------------------------------------------------- /staticfiles/images/mains.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/staticfiles/images/mains.jpg -------------------------------------------------------------------------------- /staticfiles/images/mes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/staticfiles/images/mes.png -------------------------------------------------------------------------------- /staticfiles/images/profiles/sv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/staticfiles/images/profiles/sv.png -------------------------------------------------------------------------------- /staticfiles/images/profiles/user-default copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/staticfiles/images/profiles/user-default copy.png -------------------------------------------------------------------------------- /staticfiles/images/profiles/user-default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/staticfiles/images/profiles/user-default.png -------------------------------------------------------------------------------- /staticfiles/images/profiles/user-default_YS9Vr6e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/staticfiles/images/profiles/user-default_YS9Vr6e.png -------------------------------------------------------------------------------- /staticfiles/images/project.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/staticfiles/images/project.jpg -------------------------------------------------------------------------------- /staticfiles/images/projects.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/staticfiles/images/projects.jpg -------------------------------------------------------------------------------- /staticfiles/images/stocks.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/staticfiles/images/stocks.jpg -------------------------------------------------------------------------------- /staticfiles/images/sv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/staticfiles/images/sv.png -------------------------------------------------------------------------------- /staticfiles/images/urls.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/staticfiles/images/urls.webp -------------------------------------------------------------------------------- /staticfiles/images/uz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/staticfiles/images/uz.png -------------------------------------------------------------------------------- /staticfiles/images/uzi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/staticfiles/images/uzi.png -------------------------------------------------------------------------------- /staticfiles/images/yogavive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/staticfiles/images/yogavive.png -------------------------------------------------------------------------------- /staticfiles/rest_framework/css/prettify.css: -------------------------------------------------------------------------------- 1 | .com { color: #93a1a1; } 2 | .lit { color: #195f91; } 3 | .pun, .opn, .clo { color: #93a1a1; } 4 | .fun { color: #dc322f; } 5 | .str, .atv { color: #D14; } 6 | .kwd, .prettyprint .tag { color: #1e347b; } 7 | .typ, .atn, .dec, .var { color: teal; } 8 | .pln { color: #48484c; } 9 | 10 | .prettyprint { 11 | padding: 8px; 12 | background-color: #f7f7f9; 13 | border: 1px solid #e1e1e8; 14 | } 15 | .prettyprint.linenums { 16 | -webkit-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0; 17 | -moz-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0; 18 | box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0; 19 | } 20 | 21 | /* Specify class=linenums on a pre to get line numbering */ 22 | ol.linenums { 23 | margin: 0 0 0 33px; /* IE indents via margin-left */ 24 | } 25 | ol.linenums li { 26 | padding-left: 12px; 27 | color: #bebec5; 28 | line-height: 20px; 29 | text-shadow: 0 1px 0 #fff; 30 | } -------------------------------------------------------------------------------- /staticfiles/rest_framework/docs/css/jquery.json-view.min.css: -------------------------------------------------------------------------------- 1 | .json-view{position:relative} 2 | .json-view .collapser{width:20px;height:18px;display:block;position:absolute;left:-1.7em;top:-.2em;z-index:5;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAD1JREFUeNpiYGBgOADE%2F3Hgw0DM4IRHgSsDFOzFInmMAQnY49ONzZRjDFiADT7dMLALiE8y4AGW6LoBAgwAuIkf%2F%2FB7O9sAAAAASUVORK5CYII%3D);background-repeat:no-repeat;background-position:center center;opacity:.5;cursor:pointer} 3 | .json-view .collapsed{-ms-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-khtml-transform:rotate(-90deg);-webkit-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg)} 4 | .json-view .bl{display:block;padding-left:20px;margin-left:-20px;position:relative} 5 | .json-view{font-family:monospace} 6 | .json-view ul{list-style-type:none;padding-left:2em;border-left:1px dotted;margin:.3em} 7 | .json-view ul li{position:relative} 8 | .json-view .comments,.json-view .dots{display:none;-moz-user-select:none;-ms-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none} 9 | .json-view .comments{padding-left:.8em;font-style:italic;color:#888} 10 | .json-view .bool,.json-view .null,.json-view .num,.json-view .undef{font-weight:700;color:#1A01CC} 11 | .json-view .str{color:#800} -------------------------------------------------------------------------------- /staticfiles/rest_framework/docs/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/staticfiles/rest_framework/docs/img/favicon.ico -------------------------------------------------------------------------------- /staticfiles/rest_framework/docs/img/grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/staticfiles/rest_framework/docs/img/grid.png -------------------------------------------------------------------------------- /staticfiles/rest_framework/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/staticfiles/rest_framework/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /staticfiles/rest_framework/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/staticfiles/rest_framework/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /staticfiles/rest_framework/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/staticfiles/rest_framework/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /staticfiles/rest_framework/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/staticfiles/rest_framework/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /staticfiles/rest_framework/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/staticfiles/rest_framework/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /staticfiles/rest_framework/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/staticfiles/rest_framework/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /staticfiles/rest_framework/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/staticfiles/rest_framework/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /staticfiles/rest_framework/img/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/staticfiles/rest_framework/img/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /staticfiles/rest_framework/img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/staticfiles/rest_framework/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /staticfiles/rest_framework/img/grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/staticfiles/rest_framework/img/grid.png -------------------------------------------------------------------------------- /staticfiles/styles/main.css: -------------------------------------------------------------------------------- 1 | h1{ 2 | color: purple; 3 | } 4 | -------------------------------------------------------------------------------- /staticfiles/uikit/app.js: -------------------------------------------------------------------------------- 1 | // Invoke Functions Call on Document Loaded 2 | document.addEventListener('DOMContentLoaded', function () { 3 | hljs.highlightAll(); 4 | }); 5 | 6 | 7 | let alertWrapper = document.querySelector('.alert') 8 | let alertClose = document.querySelector('.alert__close') 9 | 10 | if (alertWrapper) { 11 | alertClose.addEventListener('click', () => 12 | alertWrapper.style.display = 'none' 13 | ) 14 | } 15 | -------------------------------------------------------------------------------- /staticfiles/uikit/styles/modules/_alert.css: -------------------------------------------------------------------------------- 1 | .alert { 2 | display: inline-flex; 3 | gap: 3rem; 4 | justify-content: space-between; 5 | align-items: center; 6 | padding: 1.5rem 2.5rem; 7 | border-radius: 3px; 8 | border: 1px solid var(--color-white-light); 9 | margin-bottom: 1rem; 10 | margin-right: 1rem; 11 | } 12 | 13 | .alert, 14 | .alert > .alert__message { 15 | background-color: var(--color-main-light); 16 | color: var(--color-main); 17 | font-size: 1.4rem; 18 | font-weight: var(--font-medium); 19 | } 20 | 21 | .alert.alert--error, 22 | .alert.alert--error > .alert__message { 23 | background-color: var(--color-error-bg); 24 | color: var(--color-error); 25 | } 26 | 27 | .alert.alert--success, 28 | .alert.alert--success > .alert__message { 29 | background-color: var(--color-success-bg); 30 | color: var(--color-success); 31 | } 32 | 33 | .alert > .alert__close { 34 | background: transparent; 35 | cursor: pointer; 36 | border: none; 37 | outline: transparent; 38 | font-size: 2rem; 39 | transition: var(--generic-transition); 40 | } 41 | 42 | .alert > .alert__close:hover { 43 | opacity: 0.85; 44 | } 45 | -------------------------------------------------------------------------------- /staticfiles/uikit/styles/modules/_animation.css: -------------------------------------------------------------------------------- 1 | @keyframes move-in-left { 2 | 0% { 3 | width: 0%; 4 | transform: scale(2); 5 | } 6 | 7 | 80% { 8 | width: 70%; 9 | transform: scale(1); 10 | } 11 | 12 | 100% { 13 | width: 100%; 14 | } 15 | } 16 | 17 | @keyframes loading { 18 | from { 19 | transform: scale(0, 0); 20 | } 21 | 22 | to { 23 | transform: scale(1, 1); 24 | } 25 | } 26 | 27 | @keyframes spin { 28 | 0% { 29 | transform: rotate(0deg); 30 | } 31 | 32 | 100% { 33 | transform: rotate(360deg); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /staticfiles/uikit/styles/modules/_author-box.css: -------------------------------------------------------------------------------- 1 | .author-box { 2 | display: inline-flex; 3 | align-items: center; 4 | justify-content: space-between; 5 | } 6 | 7 | .author-box__info { 8 | margin-left: 1rem; 9 | line-height: 1.2; 10 | } 11 | 12 | .author-box--md .author-box__info { 13 | margin-left: 1.6rem; 14 | line-height: 1.3; 15 | } 16 | 17 | .author-box--lg .author-box__info { 18 | margin-left: 2.8rem; 19 | line-height: 1.6; 20 | } 21 | 22 | .author-box__name { 23 | font-size: 1.5rem; 24 | font-weight: var(--font-medium); 25 | color: var(--color-sub); 26 | } 27 | 28 | .author-box--md .author-box__name { 29 | font-size: 1.65rem; 30 | } 31 | 32 | .author-box--lg .author-box__name { 33 | font-size: 2.4rem; 34 | } 35 | 36 | .author-box__handle { 37 | font-size: 1.4rem; 38 | color: var(--color-text); 39 | font-weight: var(--font-regular); 40 | } 41 | 42 | .author-box--md .author-box__handle { 43 | font-size: 1.5rem; 44 | } 45 | 46 | .author-box--lg .author-box__handle { 47 | font-size: 1.65rem; 48 | } 49 | -------------------------------------------------------------------------------- /staticfiles/uikit/styles/modules/_avatar.css: -------------------------------------------------------------------------------- 1 | .avatar { 2 | border-radius: 50%; 3 | border: 2px solid var(--color-main); 4 | object-fit: cover; 5 | } 6 | 7 | .avatar--xl { 8 | height: 20rem; 9 | width: 20rem; 10 | } 11 | 12 | .avatar--lg { 13 | height: 15rem; 14 | width: 15rem; 15 | } 16 | 17 | .avatar--md { 18 | height: 7rem; 19 | width: 7rem; 20 | } 21 | 22 | .avatar--sm { 23 | height: 5rem; 24 | width: 5rem; 25 | } 26 | -------------------------------------------------------------------------------- /staticfiles/uikit/styles/modules/_base.css: -------------------------------------------------------------------------------- 1 | * { 2 | margin: 0; 3 | padding: 0; 4 | box-sizing: border-box; 5 | text-rendering: optimizeLegibility; 6 | color: inherit; 7 | font-size: inherit; 8 | } 9 | 10 | html { 11 | font-size: 50%; 12 | } 13 | 14 | @media only screen and (min-width: 480px) { 15 | html { 16 | font-size: 56.25%; 17 | } 18 | } 19 | 20 | @media only screen and (min-width: 1200px) { 21 | html { 22 | font-size: 62.5%; 23 | } 24 | } 25 | 26 | @media only screen and (min-width: 2100px) { 27 | html { 28 | font-size: 75%; 29 | } 30 | } 31 | 32 | body { 33 | line-height: 1.6; 34 | font-weight: 400; 35 | font-size: 1.5rem; 36 | color: var(--color-text); 37 | background-color: var(--color-bg); 38 | min-height: 100vh; 39 | } 40 | -------------------------------------------------------------------------------- /staticfiles/uikit/styles/modules/_card.css: -------------------------------------------------------------------------------- 1 | .card { 2 | border-radius: 1rem; 3 | background-color: var(--color-white); 4 | border: 1.5px solid var(--color-light); 5 | width: auto; 6 | height: auto; 7 | margin-top: 0.5rem; 8 | margin-bottom: 0.5rem; 9 | overflow: hidden; 10 | } 11 | 12 | .card__link { 13 | transition: all 0.3s ease-in; 14 | } 15 | 16 | .card__link:hover { 17 | text-decoration: none; 18 | } 19 | 20 | .card__body, 21 | .card__header { 22 | padding: 2rem 2.5rem; 23 | } 24 | 25 | .card__header { 26 | padding-top: 1.5rem; 27 | padding-bottom: 1.5rem; 28 | border-bottom: 1.5px solid var(--color-light); 29 | } 30 | 31 | .card__headerTitle { 32 | font-size: 2.2rem; 33 | font-weight: var(--font-medium); 34 | } 35 | 36 | .card__header .card__link:hover { 37 | text-decoration: underline; 38 | color: var(--color-main); 39 | } 40 | 41 | .card.card--dark { 42 | background-color: var(--color-light); 43 | } 44 | 45 | .card.card--dark .card__header { 46 | box-shadow: var(--generic-shadow); 47 | } 48 | -------------------------------------------------------------------------------- /staticfiles/uikit/styles/modules/_grid.css: -------------------------------------------------------------------------------- 1 | .grid { 2 | display: flex; 3 | flex-wrap: wrap; 4 | justify-content: flex-start; 5 | align-items: stretch; 6 | } 7 | 8 | .grid > .column { 9 | min-width: 28rem; 10 | margin-bottom: 2.5rem; 11 | } 12 | 13 | .grid--three > .column { 14 | flex-basis: 100%; 15 | } 16 | 17 | @media screen and (min-width: 800px) { 18 | .grid--three { 19 | margin-right: -2%; 20 | } 21 | 22 | .grid--three > .column { 23 | margin-right: 2%; 24 | } 25 | 26 | .grid--three > .column { 27 | flex-basis: 48%; 28 | } 29 | } 30 | 31 | @media screen and (min-width: 1200px) { 32 | .grid--three { 33 | margin-right: -2.33%; 34 | } 35 | 36 | .grid--three > .column { 37 | margin-right: 2.33%; 38 | } 39 | 40 | .grid--three > .column { 41 | flex-basis: 31%; 42 | } 43 | } 44 | 45 | .grid--two > .column { 46 | flex-basis: 100%; 47 | } 48 | 49 | @media screen and (min-width: 800px) { 50 | .grid--two { 51 | margin-right: -2%; 52 | } 53 | 54 | .grid--two > .column { 55 | margin-right: 2%; 56 | } 57 | 58 | .grid--two > .column { 59 | flex-basis: 48%; 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /staticfiles/uikit/styles/modules/_layout.css: -------------------------------------------------------------------------------- 1 | .layout { 2 | display: flex; 3 | flex-flow: row wrap; 4 | justify-content: space-between; 5 | } 6 | 7 | .layout > .column { 8 | margin-bottom: 3rem; 9 | } 10 | 11 | .layout > .column.column--1of3 { 12 | flex-basis: 30%; 13 | } 14 | 15 | .layout > .column.column--2of3 { 16 | flex-basis: 64%; 17 | } 18 | 19 | .layout > .column.column--1of2 { 20 | flex-basis: 48%; 21 | } 22 | 23 | @media screen and (max-width: 1080px) { 24 | .layout > .column { 25 | flex-basis: 100% !important; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /staticfiles/uikit/styles/modules/_loading.css: -------------------------------------------------------------------------------- 1 | .loading { 2 | display: flex; 3 | align-items: center; 4 | justify-content: center; 5 | flex-direction: column; 6 | position: fixed; 7 | top: 0; 8 | left: 0; 9 | right: 0; 10 | bottom: 0; 11 | background-color: var(--color-bg); 12 | } 13 | 14 | .loading__loader { 15 | display: inline-block; 16 | font-size: 0; 17 | padding: 0; 18 | } 19 | 20 | .loading__loader span { 21 | vertical-align: middle; 22 | border-radius: 100%; 23 | display: inline-block; 24 | width: 2rem; 25 | height: 2rem; 26 | margin: 0.5rem; 27 | -webkit-animation: loading 0.8s linear infinite alternate; 28 | animation: loading 0.8s linear infinite alternate; 29 | background-color: var(--color-main); 30 | } 31 | 32 | .loading__loader span:nth-child(1) { 33 | -webkit-animation-delay: -1s; 34 | animation-delay: -1s; 35 | opacity: 0.6; 36 | } 37 | 38 | .loading__loader span:nth-child(2) { 39 | -webkit-animation-delay: -0.8s; 40 | animation-delay: -0.8s; 41 | opacity: 0.8; 42 | } 43 | 44 | .loading__loader span:nth-child(3) { 45 | -webkit-animation-delay: -0.26666s; 46 | animation-delay: -0.26666s; 47 | opacity: 1; 48 | } 49 | 50 | .loading__loader span:nth-child(4) { 51 | -webkit-animation-delay: -0.8s; 52 | animation-delay: -0.8s; 53 | opacity: 0.8; 54 | } 55 | 56 | .loading__loader span:nth-child(5) { 57 | -webkit-animation-delay: -1s; 58 | animation-delay: -1s; 59 | opacity: 0.4; 60 | } 61 | -------------------------------------------------------------------------------- /staticfiles/uikit/styles/modules/_tag-input.css: -------------------------------------------------------------------------------- 1 | .input-tags { 2 | width: 100%; 3 | border-radius: 0.5rem; 4 | border: 2px solid var(--color-light); 5 | padding: 0.6rem 0.8rem; 6 | display: flex; 7 | flex-wrap: wrap; 8 | transition: all 0.3s ease-in-out; 9 | cursor: text; 10 | } 11 | 12 | .input-tags:focus-within { 13 | border: 2px solid var(--color-main); 14 | } 15 | 16 | .input-tags input { 17 | border: none; 18 | font-size: 14px; 19 | padding: 0.5rem 1rem; 20 | width: 100%; 21 | } 22 | 23 | .input-tags input:focus { 24 | outline: none; 25 | } 26 | 27 | .input-tag-list { 28 | display: flex; 29 | column-gap: 4px; 30 | flex-wrap: wrap !important; 31 | row-gap: 4px; 32 | } 33 | 34 | .input-tag-item { 35 | white-space: nowrap; 36 | } 37 | 38 | .input-tag-item small { 39 | margin-right: 6px; 40 | } 41 | 42 | .input-tag-item i { 43 | color: var(--color-white); 44 | cursor: pointer; 45 | } 46 | -------------------------------------------------------------------------------- /staticfiles/uikit/styles/modules/_tag.css: -------------------------------------------------------------------------------- 1 | .tag { 2 | display: inline-flex; 3 | align-items: center; 4 | background-color: var(--color-sub); 5 | height: -webkit-fit-content; 6 | height: -moz-fit-content; 7 | height: fit-content; 8 | width: -webkit-fit-content; 9 | width: -moz-fit-content; 10 | width: fit-content; 11 | border-radius: 0.5rem; 12 | padding: 0.5rem 1.5rem; 13 | font-size: 1.2rem; 14 | cursor: pointer; 15 | } 16 | 17 | .tag:not(:last-child) { 18 | margin-right: 0.25rem; 19 | margin-bottom: 0.75rem; 20 | } 21 | 22 | .tag > small { 23 | color: var(--color-white); 24 | } 25 | 26 | .tag--outline > small { 27 | color: var(--color-sub); 28 | } 29 | 30 | .tag--outline { 31 | border: 2px solid var(--color-sub); 32 | background-color: transparent; 33 | padding: 0.4rem 1rem; 34 | } 35 | 36 | .tag--pill { 37 | border-radius: 5rem; 38 | } 39 | 40 | .tag--main, 41 | .tag--main > small { 42 | background: var(--color-main-light); 43 | color: var(--color-main); 44 | font-weight: 500; 45 | } 46 | 47 | .tag--sub, 48 | .tag--sub > small { 49 | background: var(--color-sub-lighter); 50 | color: var(--color-sub-light); 51 | font-weight: 500; 52 | } 53 | 54 | .tag--lg { 55 | padding: 0.8rem 3rem; 56 | font-size: 1.4rem; 57 | } 58 | 59 | .tag--lg:not(:last-child) { 60 | margin-right: 0.5rem; 61 | margin-bottom: 1rem; 62 | } 63 | -------------------------------------------------------------------------------- /staticfiles/uikit/styles/modules/_typography.css: -------------------------------------------------------------------------------- 1 | * { 2 | font-family: var(--font-base); 3 | } 4 | 5 | h1 { 6 | font-size: 4.8rem; 7 | font-weight: var(--font-medium); 8 | } 9 | 10 | h2 { 11 | font-size: 3.6rem; 12 | font-weight: var(--font-bold); 13 | } 14 | 15 | h3 { 16 | font-size: 3.2rem; 17 | font-weight: var(--font-medium); 18 | } 19 | 20 | h4 { 21 | font-size: 2.8rem; 22 | font-weight: var(--font-medium); 23 | } 24 | 25 | h5 { 26 | font-size: 2.4rem; 27 | font-weight: var(--font-medium); 28 | } 29 | 30 | h5, 31 | h6 { 32 | font-weight: var(--font-regular); 33 | } 34 | 35 | h6 { 36 | font-size: 1.8rem; 37 | } 38 | 39 | p, 40 | span, 41 | strong { 42 | font-size: 1.6rem; 43 | color: var(--color-text); 44 | font-weight: var(--font-regular); 45 | } 46 | 47 | strong { 48 | font-weight: var(--font-medium); 49 | } 50 | 51 | pre, 52 | pre > *, 53 | pre > code * { 54 | font-family: var(--font-monospace) !important; 55 | } 56 | 57 | a { 58 | padding-bottom: 2px; 59 | text-decoration: none; 60 | display: inline-block; 61 | color: var(--color-main); 62 | font-weight: var(--font-medium); 63 | } 64 | -------------------------------------------------------------------------------- /staticfiles/uikit/styles/modules/_utilities.css: -------------------------------------------------------------------------------- 1 | .container { 2 | width: 92%; 3 | max-width: 165rem; 4 | margin: 0 auto; 5 | box-sizing: border-box; 6 | } 7 | 8 | .container--narrow { 9 | width: 92%; 10 | max-width: 120rem; 11 | } 12 | 13 | @media screen and (min-width: 1000px) { 14 | .container { 15 | width: 90%; 16 | } 17 | 18 | .container--narrow { 19 | width: 85%; 20 | } 21 | } 22 | 23 | @media screen and (min-width: 1200px) { 24 | .container { 25 | width: 80%; 26 | } 27 | 28 | .container--narrow { 29 | width: 72%; 30 | } 31 | } 32 | 33 | @media screen and (min-width: 1440px) { 34 | .container { 35 | width: 72%; 36 | } 37 | 38 | .container--narrow { 39 | width: 65%; 40 | } 41 | } 42 | 43 | .text-center { 44 | text-align: center; 45 | } 46 | 47 | .m-sm { 48 | margin: 1rem; 49 | } 50 | 51 | .m-md { 52 | margin: 3rem; 53 | } 54 | 55 | .m-lg { 56 | margin: 5rem; 57 | } 58 | 59 | .m-xl { 60 | margin: 8rem; 61 | } 62 | 63 | .my-sm { 64 | margin: 1rem auto; 65 | } 66 | 67 | .my-md { 68 | margin: 3rem auto; 69 | } 70 | 71 | .my-lg { 72 | margin: 5rem auto; 73 | } 74 | 75 | .my-xl { 76 | margin: 8rem auto; 77 | } 78 | -------------------------------------------------------------------------------- /staticfiles/uikit/styles/modules/_variables.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --color-main: #5aa5b9; 3 | --color-main-light: #e6faff; 4 | --color-sub: #3f4156; 5 | --color-sub-light: #51546e; 6 | --color-sub-lighter: #ededfd; 7 | --color-text: #737373; 8 | --color-gray: #8b8b8b; 9 | --color-light: #e5e7eb; 10 | --color-light-gray: #767676; 11 | --color-bg: #f8fafd; 12 | --color-white: #fffefd; 13 | --color-white-light: #f3f3f3; 14 | --color-success: #359e64; 15 | --color-success-bg: #def8e8; 16 | --color-error: #fc4b0b; 17 | --color-error-bg: #fff2ee; 18 | --font-base: 'Poppins', arial, helvetica, 'Segoe UI', roboto, ubuntu, sans-serif; 19 | --font-monospace: 'Fira Code', 'Courier New', courier, monospace; 20 | --font-regular: 300; 21 | --font-medium: 500; 22 | --font-bold: 700; 23 | --generic-shadow: 1px 1px 5px #00000010; 24 | --generic-transition: all 0.3s ease-in-out; 25 | } 26 | -------------------------------------------------------------------------------- /staticfiles/uikit/styles/uikit.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Project: Mumble UI 3 | * Version: v0.1.1 4 | */ 5 | 6 | /* Fonts */ 7 | @import url('https://fonts.googleapis.com/css2?family=Fira+Code:wght@400&family=Poppins:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap'); 8 | 9 | /* Mumble UI Styles */ 10 | @import url('./modules/_variables.css'); 11 | @import url('./modules/_base.css'); 12 | @import url('./modules/_typography.css'); 13 | @import url('./modules/_utilities.css'); 14 | @import url('./modules/_animation.css'); 15 | @import url('./modules/_avatar.css'); 16 | @import url('./modules/_button.css'); 17 | @import url('./modules/_card.css'); 18 | @import url('./modules/_form.css'); 19 | @import url('./modules/_tag.css'); 20 | @import url('./modules/_author-box.css'); 21 | @import url('./modules/_alert.css'); 22 | @import url('./modules/_loading.css'); 23 | @import url('./modules/_grid.css'); 24 | @import url('./modules/_layout.css'); 25 | -------------------------------------------------------------------------------- /templates/delete_template.html: -------------------------------------------------------------------------------- 1 | {% extends 'main.html' %} 2 | 3 | {% block content %} 4 | 5 | 6 | 7 |
8 |
9 |
10 | 11 |
12 | 13 |
14 | {% csrf_token %} 15 |

Are you sure you want to delete "{{object}}"?

16 | 17 | Go Back 18 | 19 | 20 |
21 |
22 |
23 |
24 | 25 | {% endblock %} -------------------------------------------------------------------------------- /templates/main.html: -------------------------------------------------------------------------------- 1 | 2 | {% load static %} 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | DevSearch - Connect with Developers! 21 | 22 | 23 | 24 | 25 | 26 | {% include 'navbar.html' %} 27 | 28 | {% if messages %} 29 | 30 | {% for message in messages %} 31 |
32 |

{{message}}

33 |
34 | 35 | {% endfor %} 36 | 37 | {% endif %} 38 | 39 | 40 | {% block content %} 41 | 42 | {% endblock content %} 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /templates/navbar.html: -------------------------------------------------------------------------------- 1 | {% load static %} 2 | 3 | 4 |
5 |
6 | 9 | 10 | 31 |
32 |
-------------------------------------------------------------------------------- /templates/pagination.html: -------------------------------------------------------------------------------- 1 | {% if queryset.has_other_pages %} 2 | 29 | {% endif %} -------------------------------------------------------------------------------- /templates/reset.html: -------------------------------------------------------------------------------- 1 | {% extends 'main.html' %} 2 | 3 | {% block content %} 4 | 5 | 28 | 29 | 30 | 31 |
32 |
33 |
34 |

Enter new password

35 | 36 |

Please enter your new password twice so we can verify you typed it in correctly.

37 | 38 |
39 | 40 |
41 | {% csrf_token %} 42 | {{form.as_p}} 43 | 44 |
45 |
46 |
47 |
48 | 49 | {% endblock content %} -------------------------------------------------------------------------------- /templates/reset_password.html: -------------------------------------------------------------------------------- 1 | {% extends 'main.html' %} 2 | 3 | {% block content %} 4 | 5 | 28 | 29 | 30 | 31 |
32 |
33 |
34 |

Password reset

35 | 36 |

Forgotten your password? Enter your email address below, and we’ll email instructions for setting a new 37 | one.

38 | 39 |
40 | 41 |
42 | {% csrf_token %} 43 | {{form.as_p}} 44 | 45 |
46 |
47 |
48 |
49 | 50 | {% endblock content %} -------------------------------------------------------------------------------- /templates/reset_password_complete.html: -------------------------------------------------------------------------------- 1 | {% extends 'main.html' %} 2 | 3 | {% block content %} 4 | 5 | 6 | 7 |
8 |
9 |
10 |

Password reset complete

11 | 12 |

Your password has been set. You may go ahead and log in now.

13 |
14 | Login 15 |
16 |
17 |
18 | 19 | {% endblock content %} -------------------------------------------------------------------------------- /templates/reset_password_sent.html: -------------------------------------------------------------------------------- 1 | {% extends 'main.html' %} 2 | 3 | {% block content %} 4 | 5 | 6 | 7 |
8 |
9 |
10 |

Password reset sent

11 | 12 |

We’ve emailed you instructions for setting your password, if an account exists with the email you 13 | entered. You should receive them shortly.

14 |
15 |

If you don’t receive an email, please make sure you’ve entered the address you registered with, and check 16 | your spam folder.

17 |
18 |
19 |
20 | 21 | {% endblock content %} -------------------------------------------------------------------------------- /users/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/users/__init__.py -------------------------------------------------------------------------------- /users/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | 5 | from .models import Profile, Skill, Message 6 | 7 | admin.site.register(Profile) 8 | admin.site.register(Skill) 9 | admin.site.register(Message) 10 | -------------------------------------------------------------------------------- /users/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class UsersConfig(AppConfig): 5 | default_auto_field = 'django.db.models.BigAutoField' 6 | name = 'users' 7 | 8 | def ready(self): 9 | import users.signals 10 | -------------------------------------------------------------------------------- /users/migrations/0002_profile_username.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 3.2.4 on 2021-06-17 14:56 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('users', '0001_initial'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AddField( 14 | model_name='profile', 15 | name='username', 16 | field=models.CharField(blank=True, max_length=200, null=True), 17 | ), 18 | ] 19 | -------------------------------------------------------------------------------- /users/migrations/0003_auto_20210617_1510.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 3.2.4 on 2021-06-17 19:10 2 | 3 | from django.db import migrations, models 4 | import django.db.models.deletion 5 | import uuid 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('users', '0002_profile_username'), 12 | ] 13 | 14 | operations = [ 15 | migrations.AddField( 16 | model_name='profile', 17 | name='location', 18 | field=models.CharField(blank=True, max_length=200, null=True), 19 | ), 20 | migrations.CreateModel( 21 | name='Skill', 22 | fields=[ 23 | ('name', models.CharField(blank=True, max_length=200, null=True)), 24 | ('description', models.TextField(blank=True, null=True)), 25 | ('created', models.DateTimeField(auto_now_add=True)), 26 | ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True)), 27 | ('owner', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='users.profile')), 28 | ], 29 | ), 30 | ] 31 | -------------------------------------------------------------------------------- /users/migrations/0005_alter_profile_options.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 3.2.4 on 2022-07-22 17:18 2 | 3 | from django.db import migrations 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('users', '0004_message'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AlterModelOptions( 14 | name='profile', 15 | options={'ordering': ['created']}, 16 | ), 17 | ] 18 | -------------------------------------------------------------------------------- /users/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magic-encode/Devsearch/343010d79aaf3aac6d758206ddc15422186983cc/users/migrations/__init__.py -------------------------------------------------------------------------------- /users/templates/users/inbox.html: -------------------------------------------------------------------------------- 1 | {% extends 'main.html' %} 2 | 3 | {% block content %} 4 | 5 |
6 |
7 |

New Messages({{unreadCount}})

8 | 9 | 25 |
26 |
27 | 28 | {% endblock content %} -------------------------------------------------------------------------------- /users/templates/users/message.html: -------------------------------------------------------------------------------- 1 | {% extends 'main.html' %} 2 | 3 | 4 | {% block content %} 5 | 6 |
7 |
8 |
9 | 10 |

{{message.subject}}

11 | {% if message.sender %} 12 | {{message.name}} 13 | {% else %} 14 |

{{message.name}}

15 | {% endif %} 16 |

{{message.created}}

17 |
{{message.body|linebreaksbr}}
18 |
19 |
20 |
21 | {% endblock content %} -------------------------------------------------------------------------------- /users/templates/users/profile_form.html: -------------------------------------------------------------------------------- 1 | {% extends 'main.html' %} 2 | 3 | {% block content %} 4 | 5 | 6 | 7 |
8 |
9 |
10 | 11 |
12 | 13 |
14 | {% csrf_token %} 15 | 16 | {% for field in form %} 17 |
18 | 19 | {{field}} 20 |
21 | {% endfor %} 22 | 23 | 24 |
25 |
26 |
27 |
28 | 29 | {% endblock content %} -------------------------------------------------------------------------------- /users/templates/users/skill_form.html: -------------------------------------------------------------------------------- 1 | {% extends 'main.html' %} 2 | 3 | {% block content %} 4 | 5 | 6 | 7 |
8 |
9 |
10 | 11 |
12 | 13 |
14 | {% csrf_token %} 15 | 16 | {% for field in form %} 17 |
18 | 19 | {{field}} 20 |
21 | {% endfor %} 22 | 23 | 24 |
25 |
26 |
27 |
28 | 29 | 30 | 31 | {% endblock %} -------------------------------------------------------------------------------- /users/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /users/urls.py: -------------------------------------------------------------------------------- 1 | from django.urls import path 2 | from . import views 3 | 4 | urlpatterns = [ 5 | path('login/', views.loginUser, name="login"), 6 | path('logout/', views.logoutUser, name="logout"), 7 | path('register/', views.registerUser, name="register"), 8 | 9 | path('', views.profiles, name="profiles"), 10 | path('profile//', views.userProfile, name="user-profile"), 11 | path('account/', views.userAccount, name="account"), 12 | 13 | path('edit-account/', views.editAccount, name="edit-account"), 14 | 15 | path('create-skill/', views.createSkill, name="create-skill"), 16 | path('update-skill//', views.updateSkill, name="update-skill"), 17 | path('delete-skill//', views.deleteSkill, name="delete-skill"), 18 | 19 | path('inbox/', views.inbox, name="inbox"), 20 | path('message//', views.viewMessage, name="message"), 21 | path('create-message//', views.createMessage, name="create-message"), 22 | ] 23 | -------------------------------------------------------------------------------- /users/utils.py: -------------------------------------------------------------------------------- 1 | from django.db.models import Q 2 | from .models import Profile, Skill 3 | 4 | from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage 5 | 6 | 7 | def paginateProfiles(request, profiles, results): 8 | page = request.GET.get('page') 9 | paginator = Paginator(profiles, results) 10 | 11 | try: 12 | profiles = paginator.page(page) 13 | except PageNotAnInteger: 14 | page = 1 15 | profiles = paginator.page(page) 16 | except EmptyPage: 17 | page = paginator.num_pages 18 | profiles = paginator.page(page) 19 | 20 | leftIndex = (int(page) - 4) 21 | 22 | if leftIndex < 1: 23 | leftIndex = 1 24 | 25 | rightIndex = (int(page) + 5) 26 | 27 | if rightIndex > paginator.num_pages: 28 | rightIndex = paginator.num_pages + 1 29 | 30 | custom_range = range(leftIndex, rightIndex) 31 | 32 | return custom_range, profiles 33 | 34 | 35 | def searchProfiles(request): 36 | search_query = '' 37 | 38 | if request.GET.get('search_query'): 39 | search_query = request.GET.get('search_query') 40 | 41 | skills = Skill.objects.filter(name__icontains=search_query) 42 | 43 | profiles = Profile.objects.distinct().filter( 44 | Q(name__icontains=search_query) | 45 | Q(short_intro__icontains=search_query) | 46 | Q(skill__in=skills) 47 | ) 48 | 49 | return profiles, search_query 50 | --------------------------------------------------------------------------------