├── .gitignore ├── .idea ├── .gitignore ├── Python_Hunt.iml ├── inspectionProfiles │ ├── Project_Default.xml │ └── profiles_settings.xml ├── misc.xml ├── modules.xml └── vcs.xml ├── CONTRIBUTING.md ├── HacktoberFest2023_Resources ├── .DS_Store ├── 05_logo_set │ ├── .DS_Store │ ├── hf10_horizontal_logos │ │ ├── .DS_Store │ │ ├── cmyk │ │ │ ├── .DS_Store │ │ │ ├── hf10_horz_fcd_cmyk.png │ │ │ ├── hf10_horz_fcl_cmyk.png │ │ │ ├── hf10_horz_scd_cmyk.png │ │ │ └── hf10_horz_scl_cmyk.png │ │ └── rgb │ │ │ ├── .DS_Store │ │ │ ├── hf10_horz_fcd_rgb.png │ │ │ ├── hf10_horz_fcl_rgb.png │ │ │ ├── hf10_horz_scd_rgb.png │ │ │ └── hf10_horz_scl_rgb.png │ ├── hf10_logomark_icon │ │ ├── .DS_Store │ │ ├── cmyk │ │ │ ├── .DS_Store │ │ │ ├── hf10_icon_fcd_cmyk.png │ │ │ ├── hf10_icon_fcl_cmyk.png │ │ │ ├── hf10_icon_scd_cmyk.png │ │ │ └── hf10_icon_scl_cmyk.png │ │ └── rgb │ │ │ ├── .DS_Store │ │ │ ├── hf10_icon_fcd_rgb.png │ │ │ ├── hf10_icon_fcl_rgb.png │ │ │ ├── hf10_icon_scd_rgb.png │ │ │ └── hf10_icon_scl_rgb.png │ └── hf10_vertical_logos │ │ ├── .DS_Store │ │ ├── cmyk │ │ ├── .DS_Store │ │ ├── hf10_vert_fcd_cmyk.png │ │ ├── hf10_vert_fcl_cmyk.png │ │ ├── hf10_vert_scd_cmyk.png │ │ └── hf10_vert_scl_cmyk.png │ │ └── rgb │ │ ├── .DS_Store │ │ ├── hf10_vert_fcd_rgb.png │ │ ├── hf10_vert_fcl_rgb.png │ │ ├── hf10_vert_scd_rgb.png │ │ └── hf10_vert_scl_rgb.png ├── 06_banners │ ├── .DS_Store │ ├── hf10_banner │ │ ├── .DS_Store │ │ ├── hf10_banner_1032x600.png │ │ └── hf10_banner_sponsors_1032x600.png │ ├── hf10_email_assets │ │ ├── .DS_Store │ │ ├── hf10_email_header_600x360px.jpg │ │ └── hf10_email_header_600x360px.png │ └── hf10_logo_wall │ │ ├── .DS_Store │ │ ├── hf10_logo_wall_1920x1080.jpg │ │ └── hf10_logo_wall_1920x1080.png └── GitHub_Cheat_Sheet.pdf ├── README.md └── producthunt_pro ├── accounts ├── __init__.py ├── admin.py ├── apps.py ├── migrations │ └── __init__.py ├── models.py ├── templates │ └── accounts │ │ ├── login.html │ │ └── signup.html ├── tests.py ├── urls.py └── views.py ├── build_files.sh ├── code_editor ├── __init__.py ├── admin.py ├── apps.py ├── migrations │ └── __init__.py ├── models.py ├── static │ └── code_editor │ │ └── script.js ├── templates │ └── code_editor │ │ └── editor.html ├── tests.py ├── urls.py └── views.py ├── db.sqlite3 ├── manage.py ├── package-lock.json ├── producthunt ├── __init__.py ├── asgi.py ├── settings.py ├── static │ ├── Django_Logo.png │ ├── Django_Logo2.png │ ├── IntegrateHTML_CSS.png │ ├── Plogo.png │ ├── Python_Keywords │ │ ├── Keywords.css │ │ ├── Loops.css │ │ ├── doc.css │ │ ├── string.css │ │ └── style.css │ ├── coverpython.png │ ├── dictionary.png │ ├── function.jpg │ ├── keywords.jpg │ ├── plogo1.png │ ├── py3version.png │ ├── pylogo.jpg │ ├── python-flow-control-statements.webp │ ├── sets.png │ ├── step1.jpg │ ├── step2.jpg │ ├── step3.jpg │ ├── step4.jpg │ ├── tuple.png │ ├── variables.jpg │ └── variables_main.jpg ├── templates │ └── base.html ├── urls.py └── wsgi.py ├── products ├── __init__.py ├── admin.py ├── apps.py ├── migrations │ └── __init__.py ├── models.py ├── templates │ └── products │ │ ├── Keywords.html │ │ ├── PythonLoops.html │ │ ├── Python_Intro.html │ │ ├── comments.html │ │ ├── dictionaries.html │ │ ├── errors_exceptions_debugging.html │ │ ├── file.html │ │ ├── functions.html │ │ ├── home.html │ │ ├── index.html │ │ ├── installation.html │ │ ├── lists.html │ │ ├── polymorphism.html │ │ ├── python_data_types.html │ │ ├── sets.html │ │ ├── statements.html │ │ ├── string.html │ │ ├── tuples.html │ │ └── variables.html ├── tests.py ├── urls.py └── views.py ├── requirements.txt ├── static └── 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 └── vercel.json /.gitignore: -------------------------------------------------------------------------------- 1 | ### Django ### 2 | *.log 3 | *.pot 4 | *.pyc 5 | __pycache__/ 6 | local_settings.py 7 | db.sqlite3-journal 8 | /media 9 | /static 10 | staticfiles_build 11 | 12 | # Environments 13 | .env 14 | .venv 15 | env/ 16 | venv/ 17 | ENV/ 18 | env.bak/ 19 | venv.bak/ 20 | myenv -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | # Editor-based HTTP Client requests 5 | /httpRequests/ 6 | # Datasource local storage ignored files 7 | /dataSources/ 8 | /dataSources.local.xml 9 | -------------------------------------------------------------------------------- /.idea/Python_Hunt.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 12 | 13 | 19 | 20 | -------------------------------------------------------------------------------- /.idea/inspectionProfiles/Project_Default.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /.idea/inspectionProfiles/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | 2 | My Image 3 | 4 | 5 |

Python Hunt Hacktoberfest 2023 Contribution Guidelines 💙

6 |

Hello open-source enthusiasts! Welcome to Python Hunt, a platform dedicated to making learning Python even more accessible. This Django project provides a space for contributors to create web pages explaining various Python concepts, as outlined in the existing issues. To maintain a consistent design, please ensure that your templates follow the established style guide. Refer to the documentation below for instructions on running the website on your local system.

7 |

Don't forget to show your support by leaving a ⭐ if you find this repository helpful!

8 |

Prerequisites

9 |

Before you proceed with the installation, make sure you have the following prerequisites installed on your system:

10 | 14 |

Installation Steps

15 |

Create a Virtual Environment (Optional)

16 |

It's recommended to create a virtual environment to isolate your Django project's dependencies. Open your terminal or command prompt and execute the following command:

17 | python3 -m venv myenv 18 |

Replace myenv with your desired name for the virtual environment.

19 |

Activate the Virtual Environment (Optional)

20 |

Activate the virtual environment based on your operating system:

21 |

Windows:

22 | myenv\Scripts\activate 23 |

Unix or Linux:

24 | source myenv/bin/activate 25 |

Install Django

26 |

With your virtual environment activated, install Django using pip:

27 | pip install django 28 |

This command will download and install the latest stable version of Django.

29 |

Verify the Installation

30 |

To verify that Django is successfully installed, run the following command:

31 | django-admin --version 32 |

You should see the installed Django version printed in the console.

33 |

Congratulations! You have successfully installed Django on your system. You are now ready to start building your Django web applications.

34 |

Running the System on Your Local System

35 |
    36 |
  1. Fork this repository and move inside it:
  2. 37 | git clone https://github.com/X-Evolve/Python_Hunt.git && cd Python_Hunt/producthunt_pro 38 |
  3. Migrate the necessary data for the models:
  4. 39 | python manage.py migrate 40 |
  5. Run the website on your local host:
  6. 41 | python manage.py runserver 42 |
  7. Click on the URL produced, and it will open in your default browser.
  8. 43 |
44 |

Congratulations! You have successfully set up your Django Web Server on your local host. You are now ready to contribute!

45 |

Getting Started with Contribution

46 |
    47 |
  1. Create a new branch to work on an issue:
  2. 48 | git checkout -b new_work 49 |
  3. Once you have completed your code, open a Pull Request (PR).
  4. 50 |

    From the root of the project, run the following commands:

    51 | git add . 52 | git commit -m "Description of your work (short one is preferred)" 53 | git push origin new_work 54 |
  5. Open your forked repository in your browser and then raise a Pull Request (PR) to the main branch of this repository!
  6. 55 |
56 |

How to Add Your Files in the Project

57 |

If you want to add CSS, JavaScript, or image files to this project, place them in the static folder:

58 | producthunt_pro/producthunt/static/ 59 |

Import them into the code using the following:

60 |

(At the top of the HTML File)

61 | {% load static %} 62 |

(To use your CSS / JavaScript file)

63 | href="{% static 'name of the file' %}" 64 |

(To use your image file)

65 | src="{% static 'name of the file' %}" 66 |

Additional Resources

67 | 72 |

Happy coding with Django! 🐍💙

73 |
74 | 75 | My Image 76 | 77 | -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/.DS_Store -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/05_logo_set/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/05_logo_set/.DS_Store -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/05_logo_set/hf10_horizontal_logos/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/05_logo_set/hf10_horizontal_logos/.DS_Store -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/05_logo_set/hf10_horizontal_logos/cmyk/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/05_logo_set/hf10_horizontal_logos/cmyk/.DS_Store -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/05_logo_set/hf10_horizontal_logos/cmyk/hf10_horz_fcd_cmyk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/05_logo_set/hf10_horizontal_logos/cmyk/hf10_horz_fcd_cmyk.png -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/05_logo_set/hf10_horizontal_logos/cmyk/hf10_horz_fcl_cmyk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/05_logo_set/hf10_horizontal_logos/cmyk/hf10_horz_fcl_cmyk.png -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/05_logo_set/hf10_horizontal_logos/cmyk/hf10_horz_scd_cmyk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/05_logo_set/hf10_horizontal_logos/cmyk/hf10_horz_scd_cmyk.png -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/05_logo_set/hf10_horizontal_logos/cmyk/hf10_horz_scl_cmyk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/05_logo_set/hf10_horizontal_logos/cmyk/hf10_horz_scl_cmyk.png -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/05_logo_set/hf10_horizontal_logos/rgb/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/05_logo_set/hf10_horizontal_logos/rgb/.DS_Store -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/05_logo_set/hf10_horizontal_logos/rgb/hf10_horz_fcd_rgb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/05_logo_set/hf10_horizontal_logos/rgb/hf10_horz_fcd_rgb.png -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/05_logo_set/hf10_horizontal_logos/rgb/hf10_horz_fcl_rgb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/05_logo_set/hf10_horizontal_logos/rgb/hf10_horz_fcl_rgb.png -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/05_logo_set/hf10_horizontal_logos/rgb/hf10_horz_scd_rgb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/05_logo_set/hf10_horizontal_logos/rgb/hf10_horz_scd_rgb.png -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/05_logo_set/hf10_horizontal_logos/rgb/hf10_horz_scl_rgb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/05_logo_set/hf10_horizontal_logos/rgb/hf10_horz_scl_rgb.png -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/05_logo_set/hf10_logomark_icon/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/05_logo_set/hf10_logomark_icon/.DS_Store -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/05_logo_set/hf10_logomark_icon/cmyk/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/05_logo_set/hf10_logomark_icon/cmyk/.DS_Store -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/05_logo_set/hf10_logomark_icon/cmyk/hf10_icon_fcd_cmyk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/05_logo_set/hf10_logomark_icon/cmyk/hf10_icon_fcd_cmyk.png -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/05_logo_set/hf10_logomark_icon/cmyk/hf10_icon_fcl_cmyk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/05_logo_set/hf10_logomark_icon/cmyk/hf10_icon_fcl_cmyk.png -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/05_logo_set/hf10_logomark_icon/cmyk/hf10_icon_scd_cmyk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/05_logo_set/hf10_logomark_icon/cmyk/hf10_icon_scd_cmyk.png -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/05_logo_set/hf10_logomark_icon/cmyk/hf10_icon_scl_cmyk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/05_logo_set/hf10_logomark_icon/cmyk/hf10_icon_scl_cmyk.png -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/05_logo_set/hf10_logomark_icon/rgb/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/05_logo_set/hf10_logomark_icon/rgb/.DS_Store -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/05_logo_set/hf10_logomark_icon/rgb/hf10_icon_fcd_rgb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/05_logo_set/hf10_logomark_icon/rgb/hf10_icon_fcd_rgb.png -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/05_logo_set/hf10_logomark_icon/rgb/hf10_icon_fcl_rgb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/05_logo_set/hf10_logomark_icon/rgb/hf10_icon_fcl_rgb.png -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/05_logo_set/hf10_logomark_icon/rgb/hf10_icon_scd_rgb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/05_logo_set/hf10_logomark_icon/rgb/hf10_icon_scd_rgb.png -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/05_logo_set/hf10_logomark_icon/rgb/hf10_icon_scl_rgb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/05_logo_set/hf10_logomark_icon/rgb/hf10_icon_scl_rgb.png -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/05_logo_set/hf10_vertical_logos/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/05_logo_set/hf10_vertical_logos/.DS_Store -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/05_logo_set/hf10_vertical_logos/cmyk/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/05_logo_set/hf10_vertical_logos/cmyk/.DS_Store -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/05_logo_set/hf10_vertical_logos/cmyk/hf10_vert_fcd_cmyk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/05_logo_set/hf10_vertical_logos/cmyk/hf10_vert_fcd_cmyk.png -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/05_logo_set/hf10_vertical_logos/cmyk/hf10_vert_fcl_cmyk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/05_logo_set/hf10_vertical_logos/cmyk/hf10_vert_fcl_cmyk.png -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/05_logo_set/hf10_vertical_logos/cmyk/hf10_vert_scd_cmyk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/05_logo_set/hf10_vertical_logos/cmyk/hf10_vert_scd_cmyk.png -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/05_logo_set/hf10_vertical_logos/cmyk/hf10_vert_scl_cmyk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/05_logo_set/hf10_vertical_logos/cmyk/hf10_vert_scl_cmyk.png -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/05_logo_set/hf10_vertical_logos/rgb/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/05_logo_set/hf10_vertical_logos/rgb/.DS_Store -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/05_logo_set/hf10_vertical_logos/rgb/hf10_vert_fcd_rgb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/05_logo_set/hf10_vertical_logos/rgb/hf10_vert_fcd_rgb.png -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/05_logo_set/hf10_vertical_logos/rgb/hf10_vert_fcl_rgb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/05_logo_set/hf10_vertical_logos/rgb/hf10_vert_fcl_rgb.png -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/05_logo_set/hf10_vertical_logos/rgb/hf10_vert_scd_rgb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/05_logo_set/hf10_vertical_logos/rgb/hf10_vert_scd_rgb.png -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/05_logo_set/hf10_vertical_logos/rgb/hf10_vert_scl_rgb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/05_logo_set/hf10_vertical_logos/rgb/hf10_vert_scl_rgb.png -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/06_banners/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/06_banners/.DS_Store -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/06_banners/hf10_banner/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/06_banners/hf10_banner/.DS_Store -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/06_banners/hf10_banner/hf10_banner_1032x600.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/06_banners/hf10_banner/hf10_banner_1032x600.png -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/06_banners/hf10_banner/hf10_banner_sponsors_1032x600.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/06_banners/hf10_banner/hf10_banner_sponsors_1032x600.png -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/06_banners/hf10_email_assets/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/06_banners/hf10_email_assets/.DS_Store -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/06_banners/hf10_email_assets/hf10_email_header_600x360px.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/06_banners/hf10_email_assets/hf10_email_header_600x360px.jpg -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/06_banners/hf10_email_assets/hf10_email_header_600x360px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/06_banners/hf10_email_assets/hf10_email_header_600x360px.png -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/06_banners/hf10_logo_wall/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/06_banners/hf10_logo_wall/.DS_Store -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/06_banners/hf10_logo_wall/hf10_logo_wall_1920x1080.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/06_banners/hf10_logo_wall/hf10_logo_wall_1920x1080.jpg -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/06_banners/hf10_logo_wall/hf10_logo_wall_1920x1080.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/06_banners/hf10_logo_wall/hf10_logo_wall_1920x1080.png -------------------------------------------------------------------------------- /HacktoberFest2023_Resources/GitHub_Cheat_Sheet.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/HacktoberFest2023_Resources/GitHub_Cheat_Sheet.pdf -------------------------------------------------------------------------------- /producthunt_pro/accounts/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/producthunt_pro/accounts/__init__.py -------------------------------------------------------------------------------- /producthunt_pro/accounts/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /producthunt_pro/accounts/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class AccountsConfig(AppConfig): 5 | default_auto_field = 'django.db.models.BigAutoField' 6 | name = 'accounts' 7 | -------------------------------------------------------------------------------- /producthunt_pro/accounts/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/producthunt_pro/accounts/migrations/__init__.py -------------------------------------------------------------------------------- /producthunt_pro/accounts/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | # Create your models here. 4 | -------------------------------------------------------------------------------- /producthunt_pro/accounts/templates/accounts/login.html: -------------------------------------------------------------------------------- 1 | {% extends 'base.html' %} 2 | 3 | {% block content %} 4 | {% load static %} 5 |
6 |
7 | 8 |
9 | 10 | 11 |
12 | {% if error %} 13 | 16 | {% endif %} 17 |

Log in to python hunt!

18 |
19 | {% csrf_token %} 20 |
21 | 22 | 23 |
24 |
25 | 26 | 27 |
28 | 29 | 30 |
31 |
32 | 33 |
Don't have an account? Signup!
34 | 35 |
36 | {% endblock %} 37 | -------------------------------------------------------------------------------- /producthunt_pro/accounts/templates/accounts/signup.html: -------------------------------------------------------------------------------- 1 | {% extends 'base.html' %} 2 | 3 | {% block content %} 4 | {% load static %} 5 |
6 |
7 | 8 |
9 | 10 |
11 | {% if errors %} 12 | 19 | {% endif %} 20 | 21 |

Sign up to Python Hunt!

22 |
23 | {% csrf_token %} 24 | 25 |
26 | 27 | 28 |
29 | 30 |
31 | 32 | 33 |
34 | 35 |
36 | 37 | 38 |
39 | 40 |
41 |
42 | 43 |
Already Registered? Log in!
44 | 45 |
46 | 47 | {% endblock %} 48 | -------------------------------------------------------------------------------- /producthunt_pro/accounts/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /producthunt_pro/accounts/urls.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | from django.urls import path,include 3 | from . import views 4 | 5 | urlpatterns = [ 6 | path('signup/',views.signup,name='signup'), 7 | path('login/',views.login,name='login'), 8 | path('logout/',views.logout,name='logout'), 9 | 10 | ] 11 | -------------------------------------------------------------------------------- /producthunt_pro/accounts/views.py: -------------------------------------------------------------------------------- 1 | from django.shortcuts import render, redirect 2 | from django.contrib.auth.models import User 3 | from django.contrib import auth 4 | from django.contrib.auth.password_validation import validate_password 5 | from django.core.exceptions import ValidationError 6 | 7 | # Create your views here. 8 | def signup(request): 9 | if request.method == 'POST': 10 | username = request.POST['username'] 11 | password = request.POST['passwd'] 12 | cpassword = request.POST['cpasswd'] 13 | error_message = [] 14 | 15 | if password == cpassword: 16 | if User.objects.filter(username=username).exists(): 17 | error_message.append("Username already taken, Please try a different one!") 18 | return render(request,'accounts/signup.html',{'errors': error_message}) 19 | 20 | try: 21 | # Use Django's validate_password to check password complexity 22 | validate_password(password) 23 | 24 | user = User.objects.create_user(username=username, password = password) 25 | auth.login(request,user) 26 | return redirect('home') 27 | except ValidationError as e: 28 | error_message = list(e) 29 | 30 | return render(request,'accounts/signup.html',{'errors': error_message}) 31 | 32 | else: 33 | error_message.append("Passwords must match!") 34 | return render(request,'accounts/signup.html',{'errors':error_message}) 35 | else: 36 | return render(request,'accounts/signup.html') 37 | 38 | def login(request): 39 | if request.method == 'POST': 40 | user = auth.authenticate(username = request.POST['username'], password = request.POST['password']) 41 | if user is not None: 42 | auth.login(request,user) 43 | return redirect('home') 44 | 45 | else: 46 | return render(request,'accounts/login.html',{'error':"Your username or password is incorrect!"}) 47 | else: 48 | return render(request,'accounts/login.html') 49 | 50 | def logout(request): 51 | if request.method == 'POST': 52 | auth.logout(request) 53 | return redirect('home') 54 | -------------------------------------------------------------------------------- /producthunt_pro/build_files.sh: -------------------------------------------------------------------------------- 1 | # build_files.sh 2 | pip install -r requirements.txt 3 | python3.9 manage.py collectstatic -------------------------------------------------------------------------------- /producthunt_pro/code_editor/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/producthunt_pro/code_editor/__init__.py -------------------------------------------------------------------------------- /producthunt_pro/code_editor/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /producthunt_pro/code_editor/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class CodeEditorConfig(AppConfig): 5 | default_auto_field = 'django.db.models.BigAutoField' 6 | name = 'code_editor' 7 | -------------------------------------------------------------------------------- /producthunt_pro/code_editor/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/producthunt_pro/code_editor/migrations/__init__.py -------------------------------------------------------------------------------- /producthunt_pro/code_editor/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | # Create your models here. 4 | -------------------------------------------------------------------------------- /producthunt_pro/code_editor/static/code_editor/script.js: -------------------------------------------------------------------------------- 1 | // Any changes in Stucture of Code Editor can be added here -------------------------------------------------------------------------------- /producthunt_pro/code_editor/templates/code_editor/editor.html: -------------------------------------------------------------------------------- 1 | {% extends 'base.html' %} 2 | {% load static %} 3 | {% block content %} 4 | 5 | {% if user.is_authenticated %} 6 | 7 |
8 | 9 |
10 |
11 |
12 |
Python Code Editor
13 | 14 |
15 | 16 |
17 |
18 |
19 |
20 | 21 |
22 | 23 | 24 | 25 | {% else %} 26 | 27 | 28 | 29 |
30 | 31 |
32 |

Error 403: Unauthorized Access

33 |

Oops! It seems like you don't have the necessary permissions to view this page.

34 |

To access this content, please sign in or create an account.

35 |

If you already have an account, Login Here.

36 |

If you need to create an account, Signup Here.

37 | 38 | 39 |
40 | 41 | {% endif %} 42 | 43 | {% endblock %} 44 | -------------------------------------------------------------------------------- /producthunt_pro/code_editor/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /producthunt_pro/code_editor/urls.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | from django.urls import path,include 3 | from . import views 4 | urlpatterns = [ 5 | path('editor/', views.python_editor, name='editor'), 6 | ] 7 | -------------------------------------------------------------------------------- /producthunt_pro/code_editor/views.py: -------------------------------------------------------------------------------- 1 | from django.shortcuts import render 2 | 3 | def python_editor(request): 4 | return render(request, 'code_editor/editor.html') 5 | -------------------------------------------------------------------------------- /producthunt_pro/db.sqlite3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/producthunt_pro/db.sqlite3 -------------------------------------------------------------------------------- /producthunt_pro/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', 'producthunt.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() -------------------------------------------------------------------------------- /producthunt_pro/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "producthunt_pro", 3 | "lockfileVersion": 3, 4 | "requires": true, 5 | "packages": {} 6 | } 7 | -------------------------------------------------------------------------------- /producthunt_pro/producthunt/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/producthunt_pro/producthunt/__init__.py -------------------------------------------------------------------------------- /producthunt_pro/producthunt/asgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | ASGI config for producthunt 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', 'producthunt.settings') 15 | 16 | application = get_asgi_application() 17 | -------------------------------------------------------------------------------- /producthunt_pro/producthunt/settings.py: -------------------------------------------------------------------------------- 1 | """ 2 | Django settings for producthunt project. 3 | 4 | Generated by 'django-admin startproject' using Django 3.2.6. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/3.2/topics/settings/ 8 | 9 | For the full list of settings and their values, see 10 | https://docs.djangoproject.com/en/3.2/ref/settings/ 11 | """ 12 | 13 | from pathlib import Path 14 | import os 15 | from decouple import config 16 | # Build paths inside the project like this: BASE_DIR / 'subdir'. 17 | BASE_DIR = Path(__file__).resolve().parent.parent 18 | 19 | # Quick-start development settings - unsuitable for production 20 | # See https://docs.djangoproject.com/en/3.2/howto/deployment/checklist/ 21 | 22 | # SECURITY WARNING: keep the secret key used in production secret! 23 | SECRET_KEY = config('SECRET_KEY') 24 | 25 | # SECURITY WARNING: don't run with debug turned on in production! 26 | DEBUG = False 27 | 28 | ALLOWED_HOSTS = ['.vercel.app','127.0.0.1','.now.sh','*'] 29 | 30 | 31 | # Application definition 32 | 33 | INSTALLED_APPS = [ 34 | 'products.apps.ProductsConfig', 35 | 'accounts.apps.AccountsConfig', 36 | 'code_editor.apps.CodeEditorConfig', 37 | 'django.contrib.admin', 38 | 'django.contrib.auth', 39 | 'django.contrib.contenttypes', 40 | 'django.contrib.sessions', 41 | 'django.contrib.messages', 42 | 'django.contrib.staticfiles', 43 | 'django_advanced_password_validation', 44 | ] 45 | 46 | MIDDLEWARE = [ 47 | 'django.middleware.security.SecurityMiddleware', 48 | 'django.contrib.sessions.middleware.SessionMiddleware', 49 | 'django.middleware.common.CommonMiddleware', 50 | 'django.middleware.csrf.CsrfViewMiddleware', 51 | 'django.contrib.auth.middleware.AuthenticationMiddleware', 52 | 'django.contrib.messages.middleware.MessageMiddleware', 53 | 'django.middleware.clickjacking.XFrameOptionsMiddleware', 54 | ] 55 | 56 | ROOT_URLCONF = 'producthunt.urls' 57 | 58 | TEMPLATES = [ 59 | { 60 | 'BACKEND': 'django.template.backends.django.DjangoTemplates', 61 | 'DIRS': ['producthunt/templates'], 62 | 'APP_DIRS': True, 63 | 'OPTIONS': { 64 | 'context_processors': [ 65 | 'django.template.context_processors.debug', 66 | 'django.template.context_processors.request', 67 | 'django.contrib.auth.context_processors.auth', 68 | 'django.contrib.messages.context_processors.messages', 69 | ], 70 | }, 71 | }, 72 | ] 73 | 74 | WSGI_APPLICATION = 'producthunt.wsgi.application' 75 | 76 | 77 | # Database 78 | # https://docs.djangoproject.com/en/3.2/ref/settings/#databases 79 | DATABASES = { 80 | 'default': { 81 | 'ENGINE': 'django.db.backends.postgresql_psycopg2', 82 | 'NAME': config("DEV_DATABASE_NAME"), 83 | 'USER': config("DEV_DATABASE_USER"), 84 | 'PASSWORD': config("DEV_DATABASE_PASSWORD"), 85 | 'HOST': config("DEV_DATABASE_HOST"), 86 | 'PORT': config("DEV_DATABASE_PORT"), 87 | 'OPTIONS': { 88 | 'sslmode': 'require', 89 | }, 90 | } 91 | } 92 | 93 | 94 | # Password validation 95 | # https://docs.djangoproject.com/en/3.2/ref/settings/#auth-password-validators 96 | 97 | AUTH_PASSWORD_VALIDATORS = [ 98 | { 99 | 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', 100 | 'OPTIONS': { 101 | 'min_length': 8, 102 | }, 103 | }, 104 | { 105 | 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', 106 | }, 107 | { 108 | 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', 109 | }, 110 | { 111 | 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', 112 | }, 113 | { 114 | 'NAME': 'django_advanced_password_validation.advanced_password_validation.ContainsUppercaseValidator', 115 | 'OPTIONS': { 116 | 'min_uppercase': 1 117 | } 118 | }, 119 | { 120 | 'NAME': 'django_advanced_password_validation.advanced_password_validation.ContainsLowercaseValidator', 121 | 'OPTIONS': { 122 | 'min_lowercase': 1 123 | } 124 | }, 125 | { 126 | 'NAME': 'django_advanced_password_validation.advanced_password_validation.ContainsSpecialCharactersValidator', 127 | 'OPTIONS': { 128 | 'min_characters': 1 129 | } 130 | }, 131 | ] 132 | 133 | 134 | # Internationalization 135 | # https://docs.djangoproject.com/en/3.2/topics/i18n/ 136 | 137 | LANGUAGE_CODE = 'en-us' 138 | 139 | TIME_ZONE = 'UTC' 140 | 141 | USE_I18N = True 142 | 143 | USE_L10N = True 144 | 145 | USE_TZ = True 146 | 147 | 148 | # Static files (CSS, JavaScript, Images) 149 | # https://docs.djangoproject.com/en/3.2/howto/static-files/ 150 | STATICFILES_DIRS = [ 151 | os.path.join(BASE_DIR,'producthunt/static/') 152 | ] 153 | 154 | STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles_build', 'static') 155 | STATIC_URL = '/static/' 156 | 157 | # Default primary key field type 158 | # https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field 159 | 160 | DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' 161 | 162 | 163 | MEDIA_ROOT = os.path.join(BASE_DIR,'media') 164 | MEDIA_URL = '/media/' -------------------------------------------------------------------------------- /producthunt_pro/producthunt/static/Django_Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/producthunt_pro/producthunt/static/Django_Logo.png -------------------------------------------------------------------------------- /producthunt_pro/producthunt/static/Django_Logo2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/producthunt_pro/producthunt/static/Django_Logo2.png -------------------------------------------------------------------------------- /producthunt_pro/producthunt/static/IntegrateHTML_CSS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/producthunt_pro/producthunt/static/IntegrateHTML_CSS.png -------------------------------------------------------------------------------- /producthunt_pro/producthunt/static/Plogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/producthunt_pro/producthunt/static/Plogo.png -------------------------------------------------------------------------------- /producthunt_pro/producthunt/static/Python_Keywords/Keywords.css: -------------------------------------------------------------------------------- 1 | @import url("https://fonts.googleapis.com/css2?family=Noto+Naskh+Arabic&display=swap"); 2 | .container { 3 | width: 90%; 4 | margin: auto; 5 | text-align: center; 6 | margin-bottom: 10%; 7 | } 8 | table { 9 | width: 800px; 10 | border-collapse: collapse; 11 | overflow: hidden; 12 | } 13 | th, 14 | td { 15 | padding: 15px; 16 | text-align: left; 17 | } 18 | tbody td:hover::before { 19 | content: ""; 20 | position: absolute; 21 | background-color: #f1f1f1; 22 | z-index: -1; 23 | } 24 | .heading { 25 | display: flex; 26 | justify-content: center; 27 | align-items: center; 28 | margin-top: 2%; 29 | font-size: 14px; 30 | font-style: normal; 31 | font-family: "Droid Sans Mono", "Inconsolata", "Menlo", "Consolas", 32 | "Bitstream Vera Sans Mono", "Courier", monospace; 33 | } 34 | .codes { 35 | width: min(92%, 1200px); 36 | margin: 3% auto; 37 | display: grid; 38 | grid-template-columns: 1fr; 39 | gap: 2rem; 40 | } 41 | .code-snippet { 42 | padding: 10px; 43 | font-size: 14px; 44 | overflow-x: auto; 45 | font-style: normal; 46 | font-family: "Droid Sans Mono", "Inconsolata", "Menlo", "Consolas", 47 | "Bitstream Vera Sans Mono", "Courier", monospace; 48 | background-color: #141b29; 49 | color: white; 50 | padding: 40px; 51 | border-radius: 10px; 52 | font-size: large; 53 | } 54 | table { 55 | width: 100%; 56 | border-collapse: collapse; 57 | } 58 | th, 59 | td { 60 | border: 1px solid black; 61 | padding: 10px; 62 | } 63 | tr:nth-child(odd) { 64 | background-color: rgba(0, 0, 0, 0.731); 65 | } 66 | tr:nth-child(even) { 67 | background-color: #000000; 68 | } 69 | td { 70 | font-size: large; 71 | font-family: "Lobster", cursive; 72 | font-family: "Montserrat", sans-serif; 73 | font-family: "Tilt Prism", cursive; 74 | } 75 | .code-font { 76 | font-size: large; 77 | color: #abb2bf; 78 | } 79 | thead { 80 | font-size: xx-large; 81 | } 82 | .details { 83 | padding: 3rem; 84 | border-radius: 10px; 85 | font-family: "Noto Naskh Arabic", serif; 86 | margin: 4rem auto; 87 | font-size: large; 88 | max-width: 70rem; 89 | width: 90%; 90 | border-style: solid; 91 | border-radius: 3rem; 92 | } 93 | @media (min-width: 768px) { 94 | .details { 95 | width: 70%; 96 | /* Adjust width for larger screens */ 97 | } 98 | .codes { 99 | grid-template-columns: 1fr 1fr; 100 | /* Switch to double column on larger screens */ 101 | } 102 | } 103 | -------------------------------------------------------------------------------- /producthunt_pro/producthunt/static/Python_Keywords/Loops.css: -------------------------------------------------------------------------------- 1 | pre{ 2 | background:beige; 3 | } 4 | -------------------------------------------------------------------------------- /producthunt_pro/producthunt/static/Python_Keywords/doc.css: -------------------------------------------------------------------------------- 1 | header { 2 | background-color: #2e2e2e; 3 | color: #ffffff; 4 | padding: 10px; 5 | text-align: center; 6 | } 7 | 8 | section { 9 | width: 80%; 10 | margin: 0 auto; 11 | padding: 20px; 12 | background-color: #ffffffbb; 13 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); 14 | transition: 0.6s; 15 | } 16 | 17 | body { 18 | background-color: #ffffff; 19 | color: #2e2e2e; 20 | font-family: sans-serif; 21 | } 22 | 23 | pre code { 24 | display: block; 25 | background-color: #2e2e2e; 26 | color: #ffffff; 27 | } 28 | 29 | .comment { 30 | color: #888888 31 | } 32 | 33 | .string { 34 | color: #77ff00 35 | } 36 | 37 | .number { 38 | color: #56ffdd 39 | } 40 | 41 | .var { 42 | color: #bb7bff; 43 | font-weight: 700; 44 | } 45 | 46 | .literal { 47 | color: #78A960 48 | } 49 | 50 | .built_in { 51 | color: #00d181 52 | } 53 | 54 | .function { 55 | color: #6bb8ff; 56 | font-weight: 500; 57 | } 58 | -------------------------------------------------------------------------------- /producthunt_pro/producthunt/static/Python_Keywords/string.css: -------------------------------------------------------------------------------- 1 | pre{ 2 | background:beige; 3 | } 4 | 5 | table { 6 | width: 100%; 7 | border-collapse: collapse; 8 | } 9 | 10 | th, 11 | td { 12 | border: 1px solid black; 13 | padding: 10px; 14 | } 15 | 16 | tr:nth-child(odd) { 17 | background-color: rgba(0, 0, 0, 0.731); 18 | 19 | } 20 | 21 | tr:nth-child(even) { 22 | background-color: #000000; 23 | } 24 | 25 | /* td { 26 | font-size: large; 27 | font-family: 'Lobster', cursive; 28 | font-family: 'Montserrat', sans-serif; 29 | font-family: 'Tilt Prism', cursive; 30 | } */ 31 | -------------------------------------------------------------------------------- /producthunt_pro/producthunt/static/Python_Keywords/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | background-color: rgb(255, 255, 255) !important; 3 | } 4 | 5 | h1 { 6 | text-align: center; 7 | margin-top: 0; 8 | color: #333; 9 | } 10 | h2, 11 | h3 { 12 | color: #333; 13 | } 14 | 15 | .container { 16 | margin-top: 20px; 17 | width: 100vw; 18 | } 19 | 20 | .flowchart { 21 | display: flex; 22 | justify-content: center; 23 | align-items: flex-start; 24 | /* Updated alignment to avoid overlapping */ 25 | flex-wrap: wrap; 26 | /* Allow wrapping of flowchart boxes */ 27 | margin-bottom: 20px; 28 | /* Add margin at the bottom */ 29 | } 30 | 31 | .box { 32 | width: 200px; 33 | padding: 10px; 34 | border: 1px solid #333; 35 | border-radius: 5px; 36 | background-color: #f5f5f5; 37 | text-align: center; 38 | margin: 20px; 39 | } 40 | 41 | .box:before { 42 | content: ""; 43 | display: block; 44 | border-top: 1px solid #333; 45 | margin-top: -1px; 46 | } 47 | 48 | .box:first-child:before { 49 | display: none; 50 | } 51 | 52 | .arrow { 53 | display: flex; 54 | justify-content: center; 55 | align-items: center; 56 | position: relative; 57 | margin-top: 10px; 58 | } 59 | 60 | .arrow:before { 61 | content: ""; 62 | position: absolute; 63 | border: 2px solid #333; 64 | border-width: 0 2px 2px 0; 65 | width: 10px; 66 | height: 10px; 67 | transform: rotate(45deg); 68 | top: 50%; 69 | left: -15px; 70 | margin-top: -5px; 71 | } 72 | 73 | .number { 74 | background-color: #a1c3f2; 75 | } 76 | 77 | .boolean { 78 | background-color: #a0e0a0; 79 | } 80 | 81 | .sets-mappings { 82 | background-color: #f7d7a0; 83 | } 84 | 85 | .sequences { 86 | background-color: #f7a0a0; 87 | } 88 | 89 | p { 90 | line-height: 1.5; 91 | } 92 | 93 | pre { 94 | background-color: #f5f5f5; 95 | padding: 10px; 96 | border-radius: 5px; 97 | overflow-x: auto; 98 | font-family: Consolas, monospace; 99 | color: #333; 100 | } 101 | .number { 102 | background-color: #a1c3f2; 103 | animation: fade-in-left 0.5s ease-in-out; 104 | } 105 | 106 | .boolean { 107 | background-color: #a0e0a0; 108 | animation: fade-in-left 0.5s ease-in-out; 109 | } 110 | 111 | .sets-mappings { 112 | background-color: #f7d7a0; 113 | animation: fade-in-right 0.5s ease-in-out; 114 | } 115 | 116 | .sequences { 117 | background-color: #f7a0a0; 118 | animation: fade-in-right 0.5s ease-in-out; 119 | } 120 | @keyframes fade-in-left { 121 | from { 122 | opacity: 0; 123 | transform: translateX(-20px); 124 | } 125 | 126 | to { 127 | opacity: 1; 128 | transform: translateX(0); 129 | } 130 | } 131 | 132 | @keyframes fade-in-right { 133 | from { 134 | opacity: 0; 135 | transform: translateX(20px); 136 | } 137 | 138 | to { 139 | opacity: 1; 140 | transform: translateX(0); 141 | } 142 | } 143 | 144 | h2 { 145 | text-align: center; 146 | margin-bottom: 10px; 147 | } 148 | 149 | h3 { 150 | color: #333; 151 | } 152 | 153 | p { 154 | line-height: 1.5; 155 | } 156 | 157 | pre { 158 | background-color: #f5f5f5; 159 | padding: 10px; 160 | border-radius: 5px; 161 | overflow-x: auto; 162 | } 163 | 164 | code { 165 | font-family: Consolas, monospace; 166 | color: #333; 167 | } 168 | -------------------------------------------------------------------------------- /producthunt_pro/producthunt/static/coverpython.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/producthunt_pro/producthunt/static/coverpython.png -------------------------------------------------------------------------------- /producthunt_pro/producthunt/static/dictionary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/producthunt_pro/producthunt/static/dictionary.png -------------------------------------------------------------------------------- /producthunt_pro/producthunt/static/function.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/producthunt_pro/producthunt/static/function.jpg -------------------------------------------------------------------------------- /producthunt_pro/producthunt/static/keywords.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/producthunt_pro/producthunt/static/keywords.jpg -------------------------------------------------------------------------------- /producthunt_pro/producthunt/static/plogo1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/producthunt_pro/producthunt/static/plogo1.png -------------------------------------------------------------------------------- /producthunt_pro/producthunt/static/py3version.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/producthunt_pro/producthunt/static/py3version.png -------------------------------------------------------------------------------- /producthunt_pro/producthunt/static/pylogo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/producthunt_pro/producthunt/static/pylogo.jpg -------------------------------------------------------------------------------- /producthunt_pro/producthunt/static/python-flow-control-statements.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/producthunt_pro/producthunt/static/python-flow-control-statements.webp -------------------------------------------------------------------------------- /producthunt_pro/producthunt/static/sets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/producthunt_pro/producthunt/static/sets.png -------------------------------------------------------------------------------- /producthunt_pro/producthunt/static/step1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/producthunt_pro/producthunt/static/step1.jpg -------------------------------------------------------------------------------- /producthunt_pro/producthunt/static/step2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/producthunt_pro/producthunt/static/step2.jpg -------------------------------------------------------------------------------- /producthunt_pro/producthunt/static/step3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/producthunt_pro/producthunt/static/step3.jpg -------------------------------------------------------------------------------- /producthunt_pro/producthunt/static/step4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/producthunt_pro/producthunt/static/step4.jpg -------------------------------------------------------------------------------- /producthunt_pro/producthunt/static/tuple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/producthunt_pro/producthunt/static/tuple.png -------------------------------------------------------------------------------- /producthunt_pro/producthunt/static/variables.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/producthunt_pro/producthunt/static/variables.jpg -------------------------------------------------------------------------------- /producthunt_pro/producthunt/static/variables_main.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/producthunt_pro/producthunt/static/variables_main.jpg -------------------------------------------------------------------------------- /producthunt_pro/producthunt/urls.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | from django.urls import path, include 3 | from django.conf import settings # Import settings module 4 | from django.conf.urls.static import static # Import static function 5 | 6 | import products.views 7 | import accounts 8 | import products 9 | 10 | urlpatterns = [ 11 | path('admin/', admin.site.urls), 12 | path('', products.views.home, name='home'), 13 | path('accounts/', include('accounts.urls')), 14 | path('products/', include('products.urls')), 15 | path('editor/', include('code_editor.urls')), # For Text Editor 16 | ] 17 | 18 | # Serve media and static files during development 19 | 20 | urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 21 | urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) 22 | -------------------------------------------------------------------------------- /producthunt_pro/producthunt/wsgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | WSGI config for producthunt 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', 'producthunt.settings') 15 | 16 | application = get_wsgi_application() 17 | 18 | app = application 19 | -------------------------------------------------------------------------------- /producthunt_pro/products/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/producthunt_pro/products/__init__.py -------------------------------------------------------------------------------- /producthunt_pro/products/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /producthunt_pro/products/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class ProductsConfig(AppConfig): 5 | default_auto_field = 'django.db.models.BigAutoField' 6 | name = 'products' 7 | -------------------------------------------------------------------------------- /producthunt_pro/products/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/producthunt_pro/products/migrations/__init__.py -------------------------------------------------------------------------------- /producthunt_pro/products/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | # Create your models here. 4 | -------------------------------------------------------------------------------- /producthunt_pro/products/templates/products/Python_Intro.html: -------------------------------------------------------------------------------- 1 | {% extends 'base.html' %} 2 | {% block content %} 3 | {% load static %} 4 | 5 | History of Python 6 | 25 | 26 | 27 |
28 |
29 |

30 | 31 |
32 |

The History of Python: A Brief Overview

33 |
34 |

HTML and CSS, as the foundational technologies of the World Wide Web, have played a crucial role in the dissemination of information and the development of interactive user interfaces. Python, on the other hand, is a high-level programming language known for its simplicity, readability, and versatility. Although Python and web technologies like HTML and CSS are distinct, they often intersect in web development, particularly in the backend processes.

35 |
36 |
37 |
38 | 39 |

Python in Web Development

40 |
41 |

In the early days of the web, dynamic web pages were created using languages like Perl and CGI scripts. However, as web applications grew in complexity, the need for more structured and powerful languages became apparent.Python emerged as a formidable contender for web development due to its simplicity, readability, and extensive standard library. With the advent of frameworks like Django and Flask in the early 2000s, Python gained significant traction in web development. Python emerged as a formidable contender for web development due to its simplicity, readability, and extensive standard library. With the advent of frameworks like Django and Flask in the early 2000s, Python gained significant traction in web development.

42 |
43 |
44 |
45 | 46 |

Integration with HTML and CSS

47 |
48 |

HTML and CSS, as the foundational technologies of the World Wide Web, have played a crucial role in the dissemination of information and the development of interactive user interfaces. Python, on the other hand, is a high-level programming language known for its simplicity, readability, and versatility. Although Python and web technologies like HTML and CSS are distinct, they often intersect in web development, particularly in the backend processes.

49 |
50 |
51 |
52 | 91 |
92 |
93 |

Conclusion

94 |
95 |

While Python is not inherently a markup or styling language, its versatility and simplicity have made it an invaluable tool in web development. Through server-side scripting, templating engines, and automation, Python seamlessly integrates with HTML and CSS to create dynamic and visually appealing web applications. This convergence of technologies has contributed to the continued success and popularity of Python in the ever-evolving landscape of web development.

96 |
97 |
98 |
99 |
100 | 101 | 102 | {% endblock %} -------------------------------------------------------------------------------- /producthunt_pro/products/templates/products/comments.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Python Comments - Page 4 5 | 6 | 7 |

Python Comments - Page 4

8 | 9 |

Single-line Comments

10 |

11 | In Python, single-line comments are created using the hash symbol (#). Anything written after the hash symbol on the same line is considered a comment and is ignored by the Python interpreter. 12 | Single-line comments are typically used to add explanations or notes to the code for better understanding. 13 |

14 | 15 |

Example:

16 |
17 |     
18 |       # This is a single-line comment
19 |       print("Hello, World!")  # This line prints a greeting
20 |     
21 |   
22 | 23 |

Multi-line Comments

24 |

25 | Unlike some other programming languages, Python doesn't have a built-in syntax for multi-line comments. However, you can use triple quotes (either single or double) to create multi-line strings, which can act as multi-line comments. 26 | These multi-line strings are not assigned to any variable, so they are essentially treated as comments by the interpreter. 27 |

28 | 29 |

Example:

30 |
31 |     
32 |       '''
33 |       This is a multi-line comment.
34 |       It spans multiple lines.
35 |       '''
36 |       print("Hello, World!")
37 |     
38 |   
39 | 40 |

Conclusion

41 |

42 | Comments are useful for documenting your code and making it more readable. They help you and others understand the purpose and functionality of different parts of the code. 43 | By using single-line and multi-line comments effectively, you can improve the maintainability of your Python programs. 44 |

45 | 46 | -------------------------------------------------------------------------------- /producthunt_pro/products/templates/products/errors_exceptions_debugging.html: -------------------------------------------------------------------------------- 1 | {% extends 'base.html' %} 2 | {% load static %} 3 | {% block content %} 4 | 5 | Python Errors, Exceptions, and Debugging 6 | 62 | 63 | 64 |
65 |
66 |

Python Errors, Exceptions, and Debugging

67 |
68 |
69 | 70 |
71 |

Syntax Errors

72 |

73 | These occur when the code violates the rules of Python's syntax. 74 |

75 |
76 | 77 |
78 |

Runtime Errors (Exceptions)

79 |

80 | These occur during the execution of the program. Some common exceptions include: 81 |

82 |
    83 |
  • ZeroDivisionError
  • 84 |
  • NameError
  • 85 |
  • TypeError
  • 86 |
  • ValueError
  • 87 |
  • IndexError
  • 88 |
89 |
90 | 91 |
92 |

Handling Exceptions

93 |

94 | This involves using try, except, else, and finally blocks to handle exceptions gracefully. 95 |

96 |
97 | 98 |
99 |

Raising Exceptions

100 |

101 | You can manually raise exceptions using the raise keyword. 102 |

103 |
104 | 105 |
106 |

Custom Exceptions

107 |

108 | Creating your own exception classes to handle specific situations. 109 |

110 |
111 | 112 |
113 |

Assertion Errors

114 |

115 | These occur when an assert statement fails. 116 |

117 |
118 | 119 |
120 |

Debugging Tools

121 |

122 | Utilizing tools like pdb (Python debugger) to step through code and identify issues. 123 |

124 |
125 | 126 |
127 |

Tracebacks

128 |

129 | Understanding the information provided in the traceback to locate the source of an error. 130 |

131 |
132 | 133 |
134 |

Logging

135 |

136 | Using the logging module to record information about program behavior. 137 |

138 |
139 | 140 |
141 |

Unit Testing and Test Cases

142 |

143 | Writing and executing tests to verify the correctness of your code. 144 |

145 |
146 | 147 |
148 |

Static Code Analysis (Optional)

149 |

150 | Tools like pylint or flake8 that help identify potential issues in your code. 151 |

152 |
153 | 154 |
155 |

Common Debugging Techniques

156 |

157 | Techniques like print statements, logging, and using a debugger to find and fix bugs. 158 |

159 |
160 | 161 |
162 |

Handling Multiple Exceptions

163 |

164 | Dealing with situations where multiple types of exceptions can occur. 165 |

166 |
167 | 168 |
169 |

Resource Cleanup with Context Managers (Optional)

170 |

171 | Using with statements and context managers to ensure resources are properly released. 172 |

173 |
174 | 175 |
176 |

Debugging in Specific Environments (Optional)

177 |

178 | Understanding how to debug in environments like Jupyter notebooks or web frameworks. 179 |

180 |
181 | 182 |
183 |
184 | 185 | 186 | -------------------------------------------------------------------------------- /producthunt_pro/products/templates/products/home.html: -------------------------------------------------------------------------------- 1 | {% extends 'base.html' %} 2 | 3 | {% block content %} 4 | {% load static %} 5 |
6 |
7 |
8 |

9 | 10 |

11 |

Welcome to Python Hunt!

12 |
13 |

14 | Learn Python from Scratch for Free! 15 |

16 | 17 | 18 | 46 | 47 |
48 |
49 | 50 |
51 |
52 |
53 | 54 |
55 |
56 |

Learn Basics of Python Here!

57 |

Python Hunt has excellent content in python which is very easy to learn!

58 | 59 | {% if user.is_authenticated %} 60 | Start your Learning! 61 | {% else %} 62 | Start your Learning! 63 | {% endif %} 64 |
65 |
66 | 67 |
68 |
69 |

Play With the Web Integrated Python IDE!

70 |

Python Hunt uses excellent editor from Brython where you can practice codes

71 | 72 | {% if user.is_authenticated %} 73 | Code Now! 74 | {% else %} 75 | Code Now! 76 | {% endif %} 77 |
78 |
79 |
80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | {% endblock %} 91 | -------------------------------------------------------------------------------- /producthunt_pro/products/templates/products/index.html: -------------------------------------------------------------------------------- 1 | {% extends 'base.html' %} 2 | 3 | {% block content %} 4 | {% load static %} 5 | 6 | 7 |
8 |

What is Python Hunt ?

9 |
10 |
11 |

Python Hunt is a open source website created to make python learning easier and faster. 12 |

This is a Django project where you can contribute web pages explaining various concepts in python to X-Evolve , a organisation in Github which aims in fostering open-source projects that tackle real-life problems

13 | 18 |
19 |
20 |
21 | 22 |
23 |
24 |
25 | 26 | 27 | 28 |
29 |
30 |
31 | 32 | 33 | Bootstrap Themes 34 |
35 |
36 |

Whats Python ??

37 |
38 |

Python is a widely used general-purpose, high level programming language. It was created by Guido van Rossum in 1991 and further developed by the Python Software Foundation.

39 | 40 |

It was designed with an emphasis on code readability, and its syntax allows programmers to express their concepts in fewer lines of code.

41 |
42 | 47 |
48 |
49 |
50 |
51 | 52 | 53 | 54 |

Don't have python in your PC?!


55 |
Check out our Python3 installation page to install Python!

56 |

57 | Installation Page 58 |

59 |
60 | {% endblock %} 61 | -------------------------------------------------------------------------------- /producthunt_pro/products/templates/products/installation.html: -------------------------------------------------------------------------------- 1 | {% extends 'base.html' %} 2 | {% load static %} 3 | {% block content %} 4 |
5 |

Python3 Installation

6 |

Here we are gonna install Python (3.9.7 on Windows and 3.8.10 on MacOS)!
7 |
8 |
9 |
10 |
11 | 12 |
13 |
14 |
15 | Bootstrap Themes 16 |
17 |
18 |

Install Python directly on your PC!

19 |

The installation of python is simple! Just click the download button (Direct link to install from python.org website) below and download the latest python 3.9.7!

20 | 24 |
25 |
26 |
27 | 28 |
29 |
30 |
31 |

Follow the steps Below!

32 |
33 |
34 |
35 |
36 |
37 | 38 |
39 |
40 |

Step 1:

Open Python from your downloads

41 |

Click on the Install Now button to get python installed on your computer!

42 | 43 |
44 |
45 |
46 |
47 | 48 |
49 |
50 |
51 | 52 |
53 |
54 |

Step 2:

Wait for the Installation

55 |

Give sufficient time for the installation

56 | 57 |
58 |
59 |
60 |
61 | 62 |
63 |
64 |
65 | 66 |
67 |
68 |

Step 3:

Click on Close button

69 |

Now open start menu and type IDLE on the search box and open it!

70 | 71 |
72 |
73 |
74 | 75 |
76 | 77 |
78 |
79 |
80 | 81 |
82 |
83 |

Boom! You Have installed python successfully on your PC!

84 |

Congrats once again!

85 | 86 |
87 |
88 |
89 |
90 | 91 |

92 | Go to HomePage! 93 |

94 | {% endblock %} 95 | -------------------------------------------------------------------------------- /producthunt_pro/products/templates/products/python_data_types.html: -------------------------------------------------------------------------------- 1 | {% extends 'base.html' %} 2 | {% block content %} 3 | 4 | {% load static %} 5 | 6 | 7 | Python Data Types 8 | 9 | 10 | 11 |
12 |

Python Data Types

13 |
14 |
15 |

Number

16 |
17 |
18 |

Integer

19 |
20 |
21 |

Float

22 |
23 |
24 |
25 |
26 |

Boolean

27 |
28 |
29 |

Sets & Mappings

30 |
31 |
32 |

Sets

33 |
34 |
35 |

Dictionary

36 |
37 |
38 |
39 |
40 |

Sequences

41 |
42 |
43 |

List

44 |
45 |
46 |

Tuple

47 |
48 |
49 |

String

50 |
51 |
52 |
53 |
54 | 55 |

Introduction

56 |

57 | In programming, a data type is an attribute of a variable that determines the type of data it can store. It 58 | helps the computer understand the nature of the data and how to process it. Understanding data types is crucial 59 | in programming as it affects the behavior and operations that can be performed on variables. 60 |

61 | 62 |

Different Data Types

63 | 64 |

1. Integer (int)

65 |

66 | An integer is a whole number without a fractional part. It represents numerical values like 1, 2, -5, etc. 67 |

68 |

 69 |         # Example code for integers
 70 |         x = 5
 71 |         y = 10
 72 |         sum = x + y
 73 |         print("Sum:", sum)
 74 |     
75 | 76 |

2. Float (float)

77 |

78 | A float represents a floating-point number with a fractional part. It is used for decimal values like 3.14, 79 | -0.5, etc. 80 |

81 |

 82 |         # Example code for floats
 83 |         pi = 3.14
 84 |         radius = 2.5
 85 |         area = pi * (radius ** 2)
 86 |         print("Area:", area)
 87 |     
88 | 89 |

3. String (str)

90 |

91 | A string is a sequence of characters enclosed in quotes. It is used to represent text data. 92 |

93 |

 94 |         # Example code for strings
 95 |         name = "John Doe"
 96 |         greeting = "Hello, " + name
 97 |         print(greeting)
 98 |     
99 | 100 |

4. Boolean (bool)

101 |

102 | A boolean represents a logical value that can be either True or False. It is used for conditional statements and 103 | logical operations. 104 |

105 |

106 |         # Example code for booleans
107 |         is_valid = True
108 |         is_logged_in = False
109 |         print("Is Valid:", is_valid)
110 |         print("Is Logged In:", is_logged_in)
111 |     
112 | 113 |

5. List (list)

114 |

115 | A list is an ordered collection of items. It can store different types of data and allows for modification of 116 | its elements. 117 |

118 |

119 |         # Example code for lists
120 |         numbers = [1, 2, 3, 4, 5]
121 |         names = ["John", "Jane", "Alice"]
122 |         print("Numbers:", numbers)
123 |         print("Names:", names)
124 |     
125 |
126 | 127 | {% endblock %} 128 | -------------------------------------------------------------------------------- /producthunt_pro/products/templates/products/variables.html: -------------------------------------------------------------------------------- 1 | {% extends 'base.html' %} 2 | {% load static %} 3 | {% block content %} 4 | 5 | 6 | 7 |
8 |

What are Variables in Python ?

9 |
10 |
11 |

Python variables are essential components in Python programming. They serve as containers for data, allowing you to store various types of information in your programs.

12 |

Python's dynamic typing system automatically determines the data type based on the value you assign to the variable, providing flexibility and ease of use.

13 |
14 | dictionary 15 |
16 |
17 |
18 | 19 | 20 |
21 |
22 |
23 |

Type Cating

24 |

25 | Type casting, also known as data type conversion, is the process of changing the data type of a variable. Python provides functions to facilitate type casting. Let's look at an example where we convert an integer into a string using the str() function. 26 |

27 |

28 | num = 42 29 | num_str = str(num) 30 |

31 |
32 |
33 |
34 | 35 | 36 | 37 | 38 |
39 |
40 |
41 |

Case Sensitivity

42 |

43 | Python is case-sensitive, meaning it distinguishes between lowercase and uppercase letters in variable names. This sensitivity results in different variables when capitalization varies. For instance, my_var and my_Var are considered as two separate variables. 44 |

45 |
46 |
47 |
48 |
49 | 50 | 51 |
52 |
53 |
54 | Bootstrap Themes 55 |
56 |
57 |

Example code

58 |

Let's explore Python variables with some example code:

59 | 60 |
name = "John"
61 |
age = 30
62 |
is_student = False
63 | 64 |
print("Name:", name)
65 |
print("Age:", age)
66 |
print("Is Student:", is_student)
67 | 68 |
# Type Casting: Changing an Integer to a String
69 |
num = 42
70 |
num_str = str(num)
71 | 72 |
# Case-Sensitive Variable Names
73 |
my_var = "Hello"
74 |
my_Var = "World"
75 | 76 |
print(my_var) # Outputs: "Hello"
77 |
print(my_Var) # Outputs: "World"
78 | 79 |
80 |
81 |
82 | {% endblock %} 83 | -------------------------------------------------------------------------------- /producthunt_pro/products/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /producthunt_pro/products/urls.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | from django.urls import path,include 3 | from . import views 4 | 5 | urlpatterns = [ 6 | path('basicpy/',views.basicpy,name='basicpy' ), 7 | path('installpy/',views.installpy,name='installpy'), 8 | path('aboutpython/',views.aboutpython,name='aboutpython'), 9 | path('keywords/',views.keywords, name='keywords'), 10 | path('variables/', views.variables, name='variables'), 11 | path('datatypes/',views.datatypes, name='datatypes'), 12 | path('sets/',views.sets, name='sets'), 13 | path('statements/',views.statements, name='statements'), 14 | path('tuples/', views.tuples, name='tuples'), 15 | path('string/',views.string,name='string'), 16 | path('lists/', views.lists, name='lists'), 17 | path('dicts/', views.dicts, name='dicts'), 18 | path('PythonLoops/',views.PythonLoops,name='PythonLoops'), 19 | path('file/',views.file,name='file'), 20 | path('polymorphism/',views.polymorphism,name='polymorphism'), 21 | 22 | ] 23 | -------------------------------------------------------------------------------- /producthunt_pro/products/views.py: -------------------------------------------------------------------------------- 1 | from django.shortcuts import render 2 | 3 | # URLS: 4 | 5 | urls = { 6 | 'basicpy/': 'Python Basics', 7 | 'installpy/': 'Install Python', 8 | 'aboutpython/': 'About Python', 9 | 'keywords/': 'Keywords', 10 | 'variables/': 'Variables', 11 | 'datatypes/': 'Data Types', 12 | 'sets/': 'Sets', 13 | 'statements/': 'Statements', 14 | 'tuples/': 'Tuples', 15 | 'string/': 'Strings', 16 | 'lists/': 'Lists', 17 | 'dicts/': 'Dictionaries', 18 | 'PythonLoops/':'Loops', 19 | 'file/':'file', 20 | 'polymorphism/':'Polymorphism', 21 | } 22 | context = { 23 | 'urls' : urls 24 | } 25 | # Create your views here. 26 | def home(request): 27 | return render(request,'products/home.html', context) 28 | 29 | def basicpy(request): 30 | return render(request,'products/index.html', context) 31 | 32 | def installpy(request): 33 | return render(request,'products/installation.html', context) 34 | 35 | def aboutpython(request): 36 | return render(request, 'products/Python_Intro.html', context) 37 | 38 | def keywords(request): 39 | return render(request, 'products/Keywords.html', context) 40 | 41 | def datatypes(request): 42 | return render(request, 'products/python_data_types.html', context) 43 | 44 | def statements(request): 45 | return render(request, 'products/statements.html', context) 46 | 47 | def sets(request): 48 | return render(request, 'products/sets.html', context) 49 | 50 | def tuples(request): 51 | return render(request, 'products/tuples.html', context) 52 | 53 | def lists(request): 54 | return render(request, 'products/lists.html', context) 55 | 56 | def string(request): 57 | return render(request,'products/string.html', context) 58 | 59 | def variables(request): 60 | return render(request,'products/variables.html', context) 61 | 62 | def dicts(request): 63 | return render(request,'products/dictionaries.html', context) 64 | 65 | def PythonLoops(request): 66 | return render(request,'products/PythonLoops.html', context) 67 | 68 | def file(request): 69 | return render(request,'products/file.html', context) 70 | def polymorphism(request): 71 | return render(request,'products/polymorphism.html', context) 72 | 73 | -------------------------------------------------------------------------------- /producthunt_pro/requirements.txt: -------------------------------------------------------------------------------- 1 | asgiref==3.7.2 2 | attrs==23.1.0 3 | click==8.0.3 4 | Django==4.1.3 5 | dj-database-url==2.1.0 6 | django-crispy-forms==1.12.0 7 | django-environ==0.7.0 8 | djangorestframework==3.14.0 9 | numpy==1.22.0 10 | pandas==2.0.3 11 | Pillow==10.0.1 12 | psycopg2-binary==2.9.1 13 | PyYAML==5.4.1 14 | python-dotenv==1.0.0 15 | sqlparse==0.4.4 16 | typing_extensions==4.8.0 17 | tzdata==2023.3 18 | django-advanced-password-validation==1.1.1 19 | python-decouple 20 | boto3 21 | django-storages 22 | whitenoise -------------------------------------------------------------------------------- /producthunt_pro/static/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 | -------------------------------------------------------------------------------- /producthunt_pro/static/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 | -------------------------------------------------------------------------------- /producthunt_pro/static/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 | -------------------------------------------------------------------------------- /producthunt_pro/static/admin/css/nav_sidebar.css: -------------------------------------------------------------------------------- 1 | .sticky { 2 | position: sticky; 3 | top: 0; 4 | max-height: 100vh; 5 | } 6 | 7 | .toggle-nav-sidebar { 8 | z-index: 20; 9 | left: 0; 10 | display: flex; 11 | align-items: center; 12 | justify-content: center; 13 | flex: 0 0 23px; 14 | width: 23px; 15 | border: 0; 16 | border-right: 1px solid var(--hairline-color); 17 | background-color: var(--body-bg); 18 | cursor: pointer; 19 | font-size: 20px; 20 | color: var(--link-fg); 21 | padding: 0; 22 | } 23 | 24 | [dir="rtl"] .toggle-nav-sidebar { 25 | border-left: 1px solid var(--hairline-color); 26 | border-right: 0; 27 | } 28 | 29 | .toggle-nav-sidebar:hover, 30 | .toggle-nav-sidebar:focus { 31 | background-color: var(--darkened-bg); 32 | } 33 | 34 | #nav-sidebar { 35 | z-index: 15; 36 | flex: 0 0 275px; 37 | left: -276px; 38 | margin-left: -276px; 39 | border-top: 1px solid transparent; 40 | border-right: 1px solid var(--hairline-color); 41 | background-color: var(--body-bg); 42 | overflow: auto; 43 | } 44 | 45 | [dir="rtl"] #nav-sidebar { 46 | border-left: 1px solid var(--hairline-color); 47 | border-right: 0; 48 | left: 0; 49 | margin-left: 0; 50 | right: -276px; 51 | margin-right: -276px; 52 | } 53 | 54 | .toggle-nav-sidebar::before { 55 | content: '\00BB'; 56 | } 57 | 58 | .main.shifted .toggle-nav-sidebar::before { 59 | content: '\00AB'; 60 | } 61 | 62 | .main.shifted > #nav-sidebar { 63 | left: 24px; 64 | margin-left: 0; 65 | } 66 | 67 | [dir="rtl"] .main.shifted > #nav-sidebar { 68 | left: 0; 69 | right: 24px; 70 | margin-right: 0; 71 | } 72 | 73 | #nav-sidebar .module th { 74 | width: 100%; 75 | overflow-wrap: anywhere; 76 | } 77 | 78 | #nav-sidebar .module th, 79 | #nav-sidebar .module caption { 80 | padding-left: 16px; 81 | } 82 | 83 | #nav-sidebar .module td { 84 | white-space: nowrap; 85 | } 86 | 87 | [dir="rtl"] #nav-sidebar .module th, 88 | [dir="rtl"] #nav-sidebar .module caption { 89 | padding-left: 8px; 90 | padding-right: 16px; 91 | } 92 | 93 | #nav-sidebar .current-app .section:link, 94 | #nav-sidebar .current-app .section:visited { 95 | color: var(--header-color); 96 | font-weight: bold; 97 | } 98 | 99 | #nav-sidebar .current-model { 100 | background: var(--selected-row); 101 | } 102 | 103 | .main > #nav-sidebar + .content { 104 | max-width: calc(100% - 23px); 105 | } 106 | 107 | .main.shifted > #nav-sidebar + .content { 108 | max-width: calc(100% - 299px); 109 | } 110 | 111 | @media (max-width: 767px) { 112 | #nav-sidebar, #toggle-nav-sidebar { 113 | display: none; 114 | } 115 | 116 | .main > #nav-sidebar + .content, 117 | .main.shifted > #nav-sidebar + .content { 118 | max-width: 100%; 119 | } 120 | } 121 | -------------------------------------------------------------------------------- /producthunt_pro/static/admin/css/responsive_rtl.css: -------------------------------------------------------------------------------- 1 | /* TABLETS */ 2 | 3 | @media (max-width: 1024px) { 4 | [dir="rtl"] .colMS { 5 | margin-right: 0; 6 | } 7 | 8 | [dir="rtl"] #user-tools { 9 | text-align: right; 10 | } 11 | 12 | [dir="rtl"] #changelist .actions label { 13 | padding-left: 10px; 14 | padding-right: 0; 15 | } 16 | 17 | [dir="rtl"] #changelist .actions select { 18 | margin-left: 0; 19 | margin-right: 15px; 20 | } 21 | 22 | [dir="rtl"] .change-list .filtered .results, 23 | [dir="rtl"] .change-list .filtered .paginator, 24 | [dir="rtl"] .filtered #toolbar, 25 | [dir="rtl"] .filtered div.xfull, 26 | [dir="rtl"] .filtered .actions, 27 | [dir="rtl"] #changelist-filter { 28 | margin-left: 0; 29 | } 30 | 31 | [dir="rtl"] .inline-group ul.tools a.add, 32 | [dir="rtl"] .inline-group div.add-row a, 33 | [dir="rtl"] .inline-group .tabular tr.add-row td a { 34 | padding: 8px 26px 8px 10px; 35 | background-position: calc(100% - 8px) 9px; 36 | } 37 | 38 | [dir="rtl"] .related-widget-wrapper-link + .selector { 39 | margin-right: 0; 40 | margin-left: 15px; 41 | } 42 | 43 | [dir="rtl"] .selector .selector-filter label { 44 | margin-right: 0; 45 | margin-left: 8px; 46 | } 47 | 48 | [dir="rtl"] .object-tools li { 49 | float: right; 50 | } 51 | 52 | [dir="rtl"] .object-tools li + li { 53 | margin-left: 0; 54 | margin-right: 15px; 55 | } 56 | 57 | [dir="rtl"] .dashboard .module table td a { 58 | padding-left: 0; 59 | padding-right: 16px; 60 | } 61 | } 62 | 63 | /* MOBILE */ 64 | 65 | @media (max-width: 767px) { 66 | [dir="rtl"] .aligned .related-lookup, 67 | [dir="rtl"] .aligned .datetimeshortcuts { 68 | margin-left: 0; 69 | margin-right: 15px; 70 | } 71 | 72 | [dir="rtl"] .aligned ul { 73 | margin-right: 0; 74 | } 75 | 76 | [dir="rtl"] #changelist-filter { 77 | margin-left: 0; 78 | margin-right: 0; 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /producthunt_pro/static/admin/css/rtl.css: -------------------------------------------------------------------------------- 1 | /* GLOBAL */ 2 | 3 | th { 4 | text-align: right; 5 | } 6 | 7 | .module h2, .module caption { 8 | text-align: right; 9 | } 10 | 11 | .module ul, .module ol { 12 | margin-left: 0; 13 | margin-right: 1.5em; 14 | } 15 | 16 | .viewlink, .addlink, .changelink { 17 | padding-left: 0; 18 | padding-right: 16px; 19 | background-position: 100% 1px; 20 | } 21 | 22 | .deletelink { 23 | padding-left: 0; 24 | padding-right: 16px; 25 | background-position: 100% 1px; 26 | } 27 | 28 | .object-tools { 29 | float: left; 30 | } 31 | 32 | thead th:first-child, 33 | tfoot td:first-child { 34 | border-left: none; 35 | } 36 | 37 | /* LAYOUT */ 38 | 39 | #user-tools { 40 | right: auto; 41 | left: 0; 42 | text-align: left; 43 | } 44 | 45 | div.breadcrumbs { 46 | text-align: right; 47 | } 48 | 49 | #content-main { 50 | float: right; 51 | } 52 | 53 | #content-related { 54 | float: left; 55 | margin-left: -300px; 56 | margin-right: auto; 57 | } 58 | 59 | .colMS { 60 | margin-left: 300px; 61 | margin-right: 0; 62 | } 63 | 64 | /* SORTABLE TABLES */ 65 | 66 | table thead th.sorted .sortoptions { 67 | float: left; 68 | } 69 | 70 | thead th.sorted .text { 71 | padding-right: 0; 72 | padding-left: 42px; 73 | } 74 | 75 | /* dashboard styles */ 76 | 77 | .dashboard .module table td a { 78 | padding-left: .6em; 79 | padding-right: 16px; 80 | } 81 | 82 | /* changelists styles */ 83 | 84 | .change-list .filtered table { 85 | border-left: none; 86 | border-right: 0px none; 87 | } 88 | 89 | #changelist-filter { 90 | border-left: none; 91 | border-right: none; 92 | margin-left: 0; 93 | margin-right: 30px; 94 | } 95 | 96 | #changelist-filter li.selected { 97 | border-left: none; 98 | padding-left: 10px; 99 | margin-left: 0; 100 | border-right: 5px solid var(--hairline-color); 101 | padding-right: 10px; 102 | margin-right: -15px; 103 | } 104 | 105 | #changelist table tbody td:first-child, #changelist table tbody th:first-child { 106 | border-right: none; 107 | border-left: none; 108 | } 109 | 110 | /* FORMS */ 111 | 112 | .aligned label { 113 | padding: 0 0 3px 1em; 114 | float: right; 115 | } 116 | 117 | .submit-row { 118 | text-align: left 119 | } 120 | 121 | .submit-row p.deletelink-box { 122 | float: right; 123 | } 124 | 125 | .submit-row input.default { 126 | margin-left: 0; 127 | } 128 | 129 | .vDateField, .vTimeField { 130 | margin-left: 2px; 131 | } 132 | 133 | .aligned .form-row input { 134 | margin-left: 5px; 135 | } 136 | 137 | form .aligned p.help, form .aligned div.help { 138 | clear: right; 139 | } 140 | 141 | form .aligned ul { 142 | margin-right: 163px; 143 | margin-left: 0; 144 | } 145 | 146 | form ul.inline li { 147 | float: right; 148 | padding-right: 0; 149 | padding-left: 7px; 150 | } 151 | 152 | input[type=submit].default, .submit-row input.default { 153 | float: left; 154 | } 155 | 156 | fieldset .fieldBox { 157 | float: right; 158 | margin-left: 20px; 159 | margin-right: 0; 160 | } 161 | 162 | .errorlist li { 163 | background-position: 100% 12px; 164 | padding: 0; 165 | } 166 | 167 | .errornote { 168 | background-position: 100% 12px; 169 | padding: 10px 12px; 170 | } 171 | 172 | /* WIDGETS */ 173 | 174 | .calendarnav-previous { 175 | top: 0; 176 | left: auto; 177 | right: 10px; 178 | } 179 | 180 | .calendarnav-next { 181 | top: 0; 182 | right: auto; 183 | left: 10px; 184 | } 185 | 186 | .calendar caption, .calendarbox h2 { 187 | text-align: center; 188 | } 189 | 190 | .selector { 191 | float: right; 192 | } 193 | 194 | .selector .selector-filter { 195 | text-align: right; 196 | } 197 | 198 | .inline-deletelink { 199 | float: left; 200 | } 201 | 202 | form .form-row p.datetime { 203 | overflow: hidden; 204 | } 205 | 206 | .related-widget-wrapper { 207 | float: right; 208 | } 209 | 210 | /* MISC */ 211 | 212 | .inline-related h2, .inline-group h2 { 213 | text-align: right 214 | } 215 | 216 | .inline-related h3 span.delete { 217 | padding-right: 20px; 218 | padding-left: inherit; 219 | left: 10px; 220 | right: inherit; 221 | float:left; 222 | } 223 | 224 | .inline-related h3 span.delete label { 225 | margin-left: inherit; 226 | margin-right: 2px; 227 | } 228 | -------------------------------------------------------------------------------- /producthunt_pro/static/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 | -------------------------------------------------------------------------------- /producthunt_pro/static/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 | -------------------------------------------------------------------------------- /producthunt_pro/static/admin/fonts/Roboto-Bold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/producthunt_pro/static/admin/fonts/Roboto-Bold-webfont.woff -------------------------------------------------------------------------------- /producthunt_pro/static/admin/fonts/Roboto-Light-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/producthunt_pro/static/admin/fonts/Roboto-Light-webfont.woff -------------------------------------------------------------------------------- /producthunt_pro/static/admin/fonts/Roboto-Regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Evolve/Python_Hunt/19cc60e73beb0446c11e26c3db1971885381b16b/producthunt_pro/static/admin/fonts/Roboto-Regular-webfont.woff -------------------------------------------------------------------------------- /producthunt_pro/static/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 | -------------------------------------------------------------------------------- /producthunt_pro/static/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 | -------------------------------------------------------------------------------- /producthunt_pro/static/admin/img/calendar-icons.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /producthunt_pro/static/admin/img/gis/move_vertex_off.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /producthunt_pro/static/admin/img/gis/move_vertex_on.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /producthunt_pro/static/admin/img/icon-addlink.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /producthunt_pro/static/admin/img/icon-alert.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /producthunt_pro/static/admin/img/icon-calendar.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /producthunt_pro/static/admin/img/icon-changelink.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /producthunt_pro/static/admin/img/icon-clock.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /producthunt_pro/static/admin/img/icon-deletelink.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /producthunt_pro/static/admin/img/icon-no.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /producthunt_pro/static/admin/img/icon-unknown-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /producthunt_pro/static/admin/img/icon-unknown.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /producthunt_pro/static/admin/img/icon-viewlink.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /producthunt_pro/static/admin/img/icon-yes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /producthunt_pro/static/admin/img/inline-delete.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /producthunt_pro/static/admin/img/search.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /producthunt_pro/static/admin/img/selector-icons.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /producthunt_pro/static/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 | -------------------------------------------------------------------------------- /producthunt_pro/static/admin/img/tooltag-add.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /producthunt_pro/static/admin/img/tooltag-arrowright.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /producthunt_pro/static/admin/js/SelectBox.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | { 3 | const SelectBox = { 4 | cache: {}, 5 | init: function(id) { 6 | const box = document.getElementById(id); 7 | SelectBox.cache[id] = []; 8 | const cache = SelectBox.cache[id]; 9 | for (const node of box.options) { 10 | cache.push({value: node.value, text: node.text, displayed: 1}); 11 | } 12 | }, 13 | redisplay: function(id) { 14 | // Repopulate HTML select box from cache 15 | const box = document.getElementById(id); 16 | const scroll_value_from_top = box.scrollTop; 17 | box.innerHTML = ''; 18 | for (const node of SelectBox.cache[id]) { 19 | if (node.displayed) { 20 | const new_option = new Option(node.text, node.value, false, false); 21 | // Shows a tooltip when hovering over the option 22 | new_option.title = node.text; 23 | box.appendChild(new_option); 24 | } 25 | } 26 | box.scrollTop = scroll_value_from_top; 27 | }, 28 | filter: function(id, text) { 29 | // Redisplay the HTML select box, displaying only the choices containing ALL 30 | // the words in text. (It's an AND search.) 31 | const tokens = text.toLowerCase().split(/\s+/); 32 | for (const node of SelectBox.cache[id]) { 33 | node.displayed = 1; 34 | const node_text = node.text.toLowerCase(); 35 | for (const token of tokens) { 36 | if (!node_text.includes(token)) { 37 | node.displayed = 0; 38 | break; // Once the first token isn't found we're done 39 | } 40 | } 41 | } 42 | SelectBox.redisplay(id); 43 | }, 44 | delete_from_cache: function(id, value) { 45 | let delete_index = null; 46 | const cache = SelectBox.cache[id]; 47 | for (const [i, node] of cache.entries()) { 48 | if (node.value === value) { 49 | delete_index = i; 50 | break; 51 | } 52 | } 53 | cache.splice(delete_index, 1); 54 | }, 55 | add_to_cache: function(id, option) { 56 | SelectBox.cache[id].push({value: option.value, text: option.text, displayed: 1}); 57 | }, 58 | cache_contains: function(id, value) { 59 | // Check if an item is contained in the cache 60 | for (const node of SelectBox.cache[id]) { 61 | if (node.value === value) { 62 | return true; 63 | } 64 | } 65 | return false; 66 | }, 67 | move: function(from, to) { 68 | const from_box = document.getElementById(from); 69 | for (const option of from_box.options) { 70 | const option_value = option.value; 71 | if (option.selected && SelectBox.cache_contains(from, option_value)) { 72 | SelectBox.add_to_cache(to, {value: option_value, text: option.text, displayed: 1}); 73 | SelectBox.delete_from_cache(from, option_value); 74 | } 75 | } 76 | SelectBox.redisplay(from); 77 | SelectBox.redisplay(to); 78 | }, 79 | move_all: function(from, to) { 80 | const from_box = document.getElementById(from); 81 | for (const option of from_box.options) { 82 | const option_value = option.value; 83 | if (SelectBox.cache_contains(from, option_value)) { 84 | SelectBox.add_to_cache(to, {value: option_value, text: option.text, displayed: 1}); 85 | SelectBox.delete_from_cache(from, option_value); 86 | } 87 | } 88 | SelectBox.redisplay(from); 89 | SelectBox.redisplay(to); 90 | }, 91 | sort: function(id) { 92 | SelectBox.cache[id].sort(function(a, b) { 93 | a = a.text.toLowerCase(); 94 | b = b.text.toLowerCase(); 95 | if (a > b) { 96 | return 1; 97 | } 98 | if (a < b) { 99 | return -1; 100 | } 101 | return 0; 102 | } ); 103 | }, 104 | select_all: function(id) { 105 | const box = document.getElementById(id); 106 | for (const option of box.options) { 107 | option.selected = true; 108 | } 109 | } 110 | }; 111 | window.SelectBox = SelectBox; 112 | } 113 | -------------------------------------------------------------------------------- /producthunt_pro/static/admin/js/autocomplete.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | { 3 | const $ = django.jQuery; 4 | const init = function($element, options) { 5 | const settings = $.extend({ 6 | ajax: { 7 | data: function(params) { 8 | return { 9 | term: params.term, 10 | page: params.page, 11 | app_label: $element.data('app-label'), 12 | model_name: $element.data('model-name'), 13 | field_name: $element.data('field-name') 14 | }; 15 | } 16 | } 17 | }, options); 18 | $element.select2(settings); 19 | }; 20 | 21 | $.fn.djangoAdminSelect2 = function(options) { 22 | const settings = $.extend({}, options); 23 | $.each(this, function(i, element) { 24 | const $element = $(element); 25 | init($element, settings); 26 | }); 27 | return this; 28 | }; 29 | 30 | $(function() { 31 | // Initialize all autocomplete widgets except the one in the template 32 | // form used when a new formset is added. 33 | $('.admin-autocomplete').not('[name*=__prefix__]').djangoAdminSelect2(); 34 | }); 35 | 36 | $(document).on('formset:added', (function() { 37 | return function(event, $newFormset) { 38 | return $newFormset.find('.admin-autocomplete').djangoAdminSelect2(); 39 | }; 40 | })(this)); 41 | } 42 | -------------------------------------------------------------------------------- /producthunt_pro/static/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 | -------------------------------------------------------------------------------- /producthunt_pro/static/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 | -------------------------------------------------------------------------------- /producthunt_pro/static/admin/js/collapse.js: -------------------------------------------------------------------------------- 1 | /*global gettext*/ 2 | 'use strict'; 3 | { 4 | window.addEventListener('load', function() { 5 | // Add anchor tag for Show/Hide link 6 | const fieldsets = document.querySelectorAll('fieldset.collapse'); 7 | for (const [i, elem] of fieldsets.entries()) { 8 | // Don't hide if fields in this fieldset have errors 9 | if (elem.querySelectorAll('div.errors, ul.errorlist').length === 0) { 10 | elem.classList.add('collapsed'); 11 | const h2 = elem.querySelector('h2'); 12 | const link = document.createElement('a'); 13 | link.id = 'fieldsetcollapser' + i; 14 | link.className = 'collapse-toggle'; 15 | link.href = '#'; 16 | link.textContent = gettext('Show'); 17 | h2.appendChild(document.createTextNode(' (')); 18 | h2.appendChild(link); 19 | h2.appendChild(document.createTextNode(')')); 20 | } 21 | } 22 | // Add toggle to hide/show anchor tag 23 | const toggleFunc = function(ev) { 24 | if (ev.target.matches('.collapse-toggle')) { 25 | ev.preventDefault(); 26 | ev.stopPropagation(); 27 | const fieldset = ev.target.closest('fieldset'); 28 | if (fieldset.classList.contains('collapsed')) { 29 | // Show 30 | ev.target.textContent = gettext('Hide'); 31 | fieldset.classList.remove('collapsed'); 32 | } else { 33 | // Hide 34 | ev.target.textContent = gettext('Show'); 35 | fieldset.classList.add('collapsed'); 36 | } 37 | } 38 | }; 39 | document.querySelectorAll('fieldset.module').forEach(function(el) { 40 | el.addEventListener('click', toggleFunc); 41 | }); 42 | }); 43 | } 44 | -------------------------------------------------------------------------------- /producthunt_pro/static/admin/js/core.js: -------------------------------------------------------------------------------- 1 | // Core javascript helper functions 2 | 'use strict'; 3 | 4 | // quickElement(tagType, parentReference [, textInChildNode, attribute, attributeValue ...]); 5 | function quickElement() { 6 | const obj = document.createElement(arguments[0]); 7 | if (arguments[2]) { 8 | const textNode = document.createTextNode(arguments[2]); 9 | obj.appendChild(textNode); 10 | } 11 | const len = arguments.length; 12 | for (let i = 3; i < len; i += 2) { 13 | obj.setAttribute(arguments[i], arguments[i + 1]); 14 | } 15 | arguments[1].appendChild(obj); 16 | return obj; 17 | } 18 | 19 | // "a" is reference to an object 20 | function removeChildren(a) { 21 | while (a.hasChildNodes()) { 22 | a.removeChild(a.lastChild); 23 | } 24 | } 25 | 26 | // ---------------------------------------------------------------------------- 27 | // Find-position functions by PPK 28 | // See https://www.quirksmode.org/js/findpos.html 29 | // ---------------------------------------------------------------------------- 30 | function findPosX(obj) { 31 | let curleft = 0; 32 | if (obj.offsetParent) { 33 | while (obj.offsetParent) { 34 | curleft += obj.offsetLeft - obj.scrollLeft; 35 | obj = obj.offsetParent; 36 | } 37 | } else if (obj.x) { 38 | curleft += obj.x; 39 | } 40 | return curleft; 41 | } 42 | 43 | function findPosY(obj) { 44 | let curtop = 0; 45 | if (obj.offsetParent) { 46 | while (obj.offsetParent) { 47 | curtop += obj.offsetTop - obj.scrollTop; 48 | obj = obj.offsetParent; 49 | } 50 | } else if (obj.y) { 51 | curtop += obj.y; 52 | } 53 | return curtop; 54 | } 55 | 56 | //----------------------------------------------------------------------------- 57 | // Date object extensions 58 | // ---------------------------------------------------------------------------- 59 | { 60 | Date.prototype.getTwelveHours = function() { 61 | return this.getHours() % 12 || 12; 62 | }; 63 | 64 | Date.prototype.getTwoDigitMonth = function() { 65 | return (this.getMonth() < 9) ? '0' + (this.getMonth() + 1) : (this.getMonth() + 1); 66 | }; 67 | 68 | Date.prototype.getTwoDigitDate = function() { 69 | return (this.getDate() < 10) ? '0' + this.getDate() : this.getDate(); 70 | }; 71 | 72 | Date.prototype.getTwoDigitTwelveHour = function() { 73 | return (this.getTwelveHours() < 10) ? '0' + this.getTwelveHours() : this.getTwelveHours(); 74 | }; 75 | 76 | Date.prototype.getTwoDigitHour = function() { 77 | return (this.getHours() < 10) ? '0' + this.getHours() : this.getHours(); 78 | }; 79 | 80 | Date.prototype.getTwoDigitMinute = function() { 81 | return (this.getMinutes() < 10) ? '0' + this.getMinutes() : this.getMinutes(); 82 | }; 83 | 84 | Date.prototype.getTwoDigitSecond = function() { 85 | return (this.getSeconds() < 10) ? '0' + this.getSeconds() : this.getSeconds(); 86 | }; 87 | 88 | Date.prototype.getAbbrevMonthName = function() { 89 | return typeof window.CalendarNamespace === "undefined" 90 | ? this.getTwoDigitMonth() 91 | : window.CalendarNamespace.monthsOfYearAbbrev[this.getMonth()]; 92 | }; 93 | 94 | Date.prototype.getFullMonthName = function() { 95 | return typeof window.CalendarNamespace === "undefined" 96 | ? this.getTwoDigitMonth() 97 | : window.CalendarNamespace.monthsOfYear[this.getMonth()]; 98 | }; 99 | 100 | Date.prototype.strftime = function(format) { 101 | const fields = { 102 | b: this.getAbbrevMonthName(), 103 | B: this.getFullMonthName(), 104 | c: this.toString(), 105 | d: this.getTwoDigitDate(), 106 | H: this.getTwoDigitHour(), 107 | I: this.getTwoDigitTwelveHour(), 108 | m: this.getTwoDigitMonth(), 109 | M: this.getTwoDigitMinute(), 110 | p: (this.getHours() >= 12) ? 'PM' : 'AM', 111 | S: this.getTwoDigitSecond(), 112 | w: '0' + this.getDay(), 113 | x: this.toLocaleDateString(), 114 | X: this.toLocaleTimeString(), 115 | y: ('' + this.getFullYear()).substr(2, 4), 116 | Y: '' + this.getFullYear(), 117 | '%': '%' 118 | }; 119 | let result = '', i = 0; 120 | while (i < format.length) { 121 | if (format.charAt(i) === '%') { 122 | result = result + fields[format.charAt(i + 1)]; 123 | ++i; 124 | } 125 | else { 126 | result = result + format.charAt(i); 127 | } 128 | ++i; 129 | } 130 | return result; 131 | }; 132 | 133 | // ---------------------------------------------------------------------------- 134 | // String object extensions 135 | // ---------------------------------------------------------------------------- 136 | String.prototype.strptime = function(format) { 137 | const split_format = format.split(/[.\-/]/); 138 | const date = this.split(/[.\-/]/); 139 | let i = 0; 140 | let day, month, year; 141 | while (i < split_format.length) { 142 | switch (split_format[i]) { 143 | case "%d": 144 | day = date[i]; 145 | break; 146 | case "%m": 147 | month = date[i] - 1; 148 | break; 149 | case "%Y": 150 | year = date[i]; 151 | break; 152 | case "%y": 153 | // A %y value in the range of [00, 68] is in the current 154 | // century, while [69, 99] is in the previous century, 155 | // according to the Open Group Specification. 156 | if (parseInt(date[i], 10) >= 69) { 157 | year = date[i]; 158 | } else { 159 | year = (new Date(Date.UTC(date[i], 0))).getUTCFullYear() + 100; 160 | } 161 | break; 162 | } 163 | ++i; 164 | } 165 | // Create Date object from UTC since the parsed value is supposed to be 166 | // in UTC, not local time. Also, the calendar uses UTC functions for 167 | // date extraction. 168 | return new Date(Date.UTC(year, month, day)); 169 | }; 170 | } 171 | -------------------------------------------------------------------------------- /producthunt_pro/static/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 | -------------------------------------------------------------------------------- /producthunt_pro/static/admin/js/nav_sidebar.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | { 3 | const toggleNavSidebar = document.getElementById('toggle-nav-sidebar'); 4 | if (toggleNavSidebar !== null) { 5 | const navLinks = document.querySelectorAll('#nav-sidebar a'); 6 | function disableNavLinkTabbing() { 7 | for (const navLink of navLinks) { 8 | navLink.tabIndex = -1; 9 | } 10 | } 11 | function enableNavLinkTabbing() { 12 | for (const navLink of navLinks) { 13 | navLink.tabIndex = 0; 14 | } 15 | } 16 | 17 | const main = document.getElementById('main'); 18 | let navSidebarIsOpen = localStorage.getItem('django.admin.navSidebarIsOpen'); 19 | if (navSidebarIsOpen === null) { 20 | navSidebarIsOpen = 'true'; 21 | } 22 | if (navSidebarIsOpen === 'false') { 23 | disableNavLinkTabbing(); 24 | } 25 | main.classList.toggle('shifted', navSidebarIsOpen === 'true'); 26 | 27 | toggleNavSidebar.addEventListener('click', function() { 28 | if (navSidebarIsOpen === 'true') { 29 | navSidebarIsOpen = 'false'; 30 | disableNavLinkTabbing(); 31 | } else { 32 | navSidebarIsOpen = 'true'; 33 | enableNavLinkTabbing(); 34 | } 35 | localStorage.setItem('django.admin.navSidebarIsOpen', navSidebarIsOpen); 36 | main.classList.toggle('shifted'); 37 | }); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /producthunt_pro/static/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 | -------------------------------------------------------------------------------- /producthunt_pro/static/admin/js/prepopulate.js: -------------------------------------------------------------------------------- 1 | /*global URLify*/ 2 | 'use strict'; 3 | { 4 | const $ = django.jQuery; 5 | $.fn.prepopulate = function(dependencies, maxLength, allowUnicode) { 6 | /* 7 | Depends on urlify.js 8 | Populates a selected field with the values of the dependent fields, 9 | URLifies and shortens the string. 10 | dependencies - array of dependent fields ids 11 | maxLength - maximum length of the URLify'd string 12 | allowUnicode - Unicode support of the URLify'd string 13 | */ 14 | return this.each(function() { 15 | const prepopulatedField = $(this); 16 | 17 | const populate = function() { 18 | // Bail if the field's value has been changed by the user 19 | if (prepopulatedField.data('_changed')) { 20 | return; 21 | } 22 | 23 | const values = []; 24 | $.each(dependencies, function(i, field) { 25 | field = $(field); 26 | if (field.val().length > 0) { 27 | values.push(field.val()); 28 | } 29 | }); 30 | prepopulatedField.val(URLify(values.join(' '), maxLength, allowUnicode)); 31 | }; 32 | 33 | prepopulatedField.data('_changed', false); 34 | prepopulatedField.on('change', function() { 35 | prepopulatedField.data('_changed', true); 36 | }); 37 | 38 | if (!prepopulatedField.val()) { 39 | $(dependencies.join(',')).on('keyup change focus', populate); 40 | } 41 | }); 42 | }; 43 | } 44 | -------------------------------------------------------------------------------- /producthunt_pro/static/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 | -------------------------------------------------------------------------------- /producthunt_pro/static/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 | -------------------------------------------------------------------------------- /producthunt_pro/static/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 | -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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}(); -------------------------------------------------------------------------------- /producthunt_pro/static/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 | -------------------------------------------------------------------------------- /producthunt_pro/vercel.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 2, 3 | "builds": [ 4 | { 5 | "src": "producthunt/wsgi.py", 6 | "use": "@vercel/python", 7 | "config": { "maxLambdaSize": "15mb", "runtime": "python3.9" } 8 | }, 9 | { 10 | "src": "build_files.sh", 11 | "use": "@vercel/static-build", 12 | "config": { 13 | "distDir": "staticfiles_build" 14 | } 15 | } 16 | ], 17 | "routes": [ 18 | { 19 | "src": "/static/(.*)", 20 | "dest": "/static/$1" 21 | }, 22 | { 23 | "src": "/(.*)", 24 | "dest": "producthunt/wsgi.py" 25 | } 26 | ] 27 | } --------------------------------------------------------------------------------