diff options
author | 2024-07-18 22:30:15 +0200 | |
---|---|---|
committer | 2024-07-18 22:30:15 +0200 | |
commit | 9ac9ef90cc14e684fd40c534a36a430968d85e9b (patch) | |
tree | e859e884a287952210f2abd24562c956dd6375ec /pydis_site | |
parent | Merge pull request #1365 from python-discord/more-frameworks (diff) | |
parent | Merge branch 'main' into feat/timeline-from-yaml (diff) |
Merge pull request #1293 from python-discord/feat/timeline-from-yaml
Markdown + YAML for the timeline
Diffstat (limited to 'pydis_site')
69 files changed, 783 insertions, 994 deletions
diff --git a/pydis_site/apps/home/README.md b/pydis_site/apps/home/README.md index 34c1e367..1296ea3f 100644 --- a/pydis_site/apps/home/README.md +++ b/pydis_site/apps/home/README.md @@ -1,8 +1,7 @@ # The "home" app This Django application takes care of serving the homepage of our website, that -is, the first page that you see when you open pythondiscord.com. It also -manages the timeline page showcasing the history of our community. +is, the first page that you see when you open pythondiscord.com. ## Directory structure diff --git a/pydis_site/apps/home/urls.py b/pydis_site/apps/home/urls.py index 30321ece..ccbb5824 100644 --- a/pydis_site/apps/home/urls.py +++ b/pydis_site/apps/home/urls.py @@ -1,9 +1,8 @@ from django_distill import distill_path -from .views import HomeView, timeline +from .views import HomeView app_name = 'home' urlpatterns = [ distill_path('', HomeView.as_view(), name='home'), - distill_path('timeline/', timeline, name="timeline"), ] diff --git a/pydis_site/apps/home/views.py b/pydis_site/apps/home/views.py index bfa9e02d..71f95293 100644 --- a/pydis_site/apps/home/views.py +++ b/pydis_site/apps/home/views.py @@ -153,8 +153,3 @@ class HomeView(View): """Collect repo data and render the homepage view.""" repo_data = self._get_repo_data() return render(request, "home/index.html", {"repo_data": repo_data}) - - -def timeline(request: WSGIRequest) -> HttpResponse: - """Render timeline view.""" - return render(request, 'home/timeline.html') diff --git a/pydis_site/apps/timeline/README.md b/pydis_site/apps/timeline/README.md new file mode 100644 index 00000000..0b639261 --- /dev/null +++ b/pydis_site/apps/timeline/README.md @@ -0,0 +1,45 @@ +# The "timeline" app + +The [timeline page](https://www.pythondiscord.com/timeline/) on our website is +powered by this Django application. + +## The entries + +Timeline entries are written in markdown files with YAML frontmatter under the +`entries` directory. + +Each file represents a timeline entry. The file names have the format +`<date>_<name>.md`, where: +- `date` is in `YYYY-MM-DD` for easy sorting of files in directory listings, + also used for sorting of the entries displayed on the timeline page. +- `name` is an arbitrary slug in `kebab-case`, used for linking to individual + timeline entries on the page, which will be set in the `id` attribute for each + timeline item. + +Each file contains: +- A YAML frontmatter, which defines some metadata shown next to each entry in + the timeline, including: + - `date`: User-facing date label. + - `icon`: The CSS class used for the icon, e.g. "fa fa-snowflake". Set to + `pydis` to use the pydis logo image. + - `icon_color`: The CSS class that sets the background color of the icon, e.g. + "pastel-red". List of available colors can be found in [the CSS + file](../../static/css/timeline/timeline.css). This can be omitted if the + pydis logo is used. +- Markdown content. + + +## Directory structure + +The app has a single view in `views.py` that renders the template using the list +of parsed entries from `apps.py`, which reads the markdown files on startup. +This is a standard Django view, mounted in `urls.py` as usual. + +The `tests` directory validates that the page renders successfully as expected. +If you made changes to the app and are looking for guidance on adding new tests, +the [Django tutorial introducing automated +testing](https://docs.djangoproject.com/en/dev/intro/tutorial05/) is a good +place to start. + +This application does not use the database and as such does not have models nor +migrations. diff --git a/pydis_site/apps/timeline/__init__.py b/pydis_site/apps/timeline/__init__.py new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/pydis_site/apps/timeline/__init__.py diff --git a/pydis_site/apps/timeline/apps.py b/pydis_site/apps/timeline/apps.py new file mode 100644 index 00000000..37a61e93 --- /dev/null +++ b/pydis_site/apps/timeline/apps.py @@ -0,0 +1,50 @@ +from pathlib import Path + +from django.apps import AppConfig +import frontmatter +import markdown + +from pydis_site import settings + + +ENTRIES_PATH = Path(settings.BASE_DIR, "pydis_site", "apps", "timeline", "entries") + + +class TimelineConfig(AppConfig): + """AppConfig instance for Timeline app.""" + + name = 'pydis_site.apps.timeline' + + def ready(self) -> None: + """Fetch all the timeline entries.""" + self.entries = [] + + for path in ENTRIES_PATH.rglob("*.md"): + metadata, content = frontmatter.parse(path.read_text(encoding="utf-8")) + + md = markdown.Markdown() + html = str(md.convert(content)) + + # Strip `.md` file extension from filename and split it into the + # date (for sorting) and slug (for linking). + key, slug = path.name[:-3].split("_") + + icon_color = metadata.get("icon_color") + # Use the pydis blurple as the default background color. + if not icon_color or metadata["icon"] == "pydis": + icon_color = "has-background-primary" + + entry = { + "key": key, + "slug": slug, + "title": metadata["title"], + "date": metadata["date"], + "icon": metadata["icon"], + "icon_color": icon_color, + "content": html, + } + + self.entries.append(entry) + + # Sort the entries in reverse-chronological order. + self.entries.sort(key=lambda e: e['key'], reverse=True) diff --git a/pydis_site/apps/timeline/entries/2017-01-08_python-discord-is-created.md b/pydis_site/apps/timeline/entries/2017-01-08_python-discord-is-created.md new file mode 100644 index 00000000..31775b3b --- /dev/null +++ b/pydis_site/apps/timeline/entries/2017-01-08_python-discord-is-created.md @@ -0,0 +1,9 @@ +--- +title: Python Discord is created +date: Jan 8th, 2017 +icon: pydis +--- + +**Joe Banks** becomes one of the owners around 3 days after it is created, and +**Leon Sandøy** (lemon) joins the owner team later in the year, when the +community has around 300 members. diff --git a/pydis_site/apps/timeline/entries/2017-11-10_1000-members.md b/pydis_site/apps/timeline/entries/2017-11-10_1000-members.md new file mode 100644 index 00000000..dd4ec829 --- /dev/null +++ b/pydis_site/apps/timeline/entries/2017-11-10_1000-members.md @@ -0,0 +1,10 @@ +--- +title: Python Discord hits 1,000 members +date: Nov 10th, 2017 +icon: fa fa-users +icon_color: pastel-dark-blue +--- + +Our main source of new users at this point is a post on Reddit that happens to +get very good SEO. We are one of the top 10 search engine hits for the search +term "python discord". diff --git a/pydis_site/apps/timeline/entries/2018-02-03_our-logo-is-born.md b/pydis_site/apps/timeline/entries/2018-02-03_our-logo-is-born.md new file mode 100644 index 00000000..1cb2edb1 --- /dev/null +++ b/pydis_site/apps/timeline/entries/2018-02-03_our-logo-is-born.md @@ -0,0 +1,9 @@ +--- +title: Our logo is born. Thanks @Aperture! +date: Feb 3rd, 2018 +icon: pydis +--- + +<p style="background-color: #7289DA; border-radius: 10px;"> + <img style="padding-right: 20px;" src="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_banner/logo_site_banner.svg"> +</p> diff --git a/pydis_site/apps/timeline/entries/2018-03-04_pydis-hits-2000-members-pythondiscord-com-and-python-are-live.md b/pydis_site/apps/timeline/entries/2018-03-04_pydis-hits-2000-members-pythondiscord-com-and-python-are-live.md new file mode 100644 index 00000000..31ee1578 --- /dev/null +++ b/pydis_site/apps/timeline/entries/2018-03-04_pydis-hits-2000-members-pythondiscord-com-and-python-are-live.md @@ -0,0 +1,11 @@ +--- +title: PyDis hits 2,000 members; pythondiscord.com and @Python are live +date: Mar 4th, 2018 +icon: fa fa-users +icon_color: pastel-dark-blue +--- + +The public moderation bot we're using at the time, Rowboat, announces it will be +shutting down. We decide that we'll write our own bot to handle moderation, so +that we can have more control over its features. We also buy a domain and start +making a website in Flask. diff --git a/pydis_site/apps/timeline/entries/2018-03-23_first-code-jam-with-the-theme-snakes.md b/pydis_site/apps/timeline/entries/2018-03-23_first-code-jam-with-the-theme-snakes.md new file mode 100644 index 00000000..48b301e3 --- /dev/null +++ b/pydis_site/apps/timeline/entries/2018-03-23_first-code-jam-with-the-theme-snakes.md @@ -0,0 +1,12 @@ +--- +title: First code jam with the theme “snakes” +date: Mar 23rd, 2018 +icon: fa fa-dice +icon_color: pastel-blue +--- + +Our very first Code Jam attracts a handful of users who work in random teams of +2. We ask our participants to write a snake-themed Discord bot. Most of the code +written for this jam still lives on in Sir Lancebot, and you can play with it by +using the `.snakes` command. For more information on this event, see [the event +page](https://pythondiscord.com/pages/code-jams/code-jam-1-snakes-bot/) diff --git a/pydis_site/apps/timeline/entries/2018-05-21_privacy-policy-created.md b/pydis_site/apps/timeline/entries/2018-05-21_privacy-policy-created.md new file mode 100644 index 00000000..2202a5a8 --- /dev/null +++ b/pydis_site/apps/timeline/entries/2018-05-21_privacy-policy-created.md @@ -0,0 +1,12 @@ +--- +title: The privacy policy is created +date: May 21st, 2018 +icon: fa fa-scroll +icon_color: pastel-lime +--- + +Since data privacy is quite important to us, we create a privacy page pretty +much as soon as our new bot and site starts collecting some data. To this day, +we keep [our privacy policy](https://pythondiscord.com/pages/privacy/) up to +date with all changes, and since April 2020 we've started doing [monthly data +reviews](https://pythondiscord.notion.site/6784e3a9752444e89d19e65fd4510d8d). diff --git a/pydis_site/apps/timeline/entries/2018-06-09_do-you-even-python-and-pydis-merger.md b/pydis_site/apps/timeline/entries/2018-06-09_do-you-even-python-and-pydis-merger.md new file mode 100644 index 00000000..4390708e --- /dev/null +++ b/pydis_site/apps/timeline/entries/2018-06-09_do-you-even-python-and-pydis-merger.md @@ -0,0 +1,13 @@ +--- +title: Do You Even Python and PyDis merger +date: Jun 9th, 2018 +icon: fa fa-handshake +icon_color: pastel-pink +--- + +At this point in time, there are only two serious Python communities on Discord +- Ours, and one called Do You Even Python. We approach the owners of DYEP with a +bold proposal - let's shut down their community, replace it with links to ours, +and in return we will let their staff join our staff. This gives us a big boost +in members, and eventually leads to @eivl and @Mr. Hemlock joining our Admin +team diff --git a/pydis_site/apps/timeline/entries/2018-06-20_pydis-hits-5000-members-and-partners-with-r-python.md b/pydis_site/apps/timeline/entries/2018-06-20_pydis-hits-5000-members-and-partners-with-r-python.md new file mode 100644 index 00000000..c0a1d391 --- /dev/null +++ b/pydis_site/apps/timeline/entries/2018-06-20_pydis-hits-5000-members-and-partners-with-r-python.md @@ -0,0 +1,10 @@ +--- +title: PyDis hits 5,000 members and partners with r/Python +date: Jun 20th, 2018 +icon: fa fa-users +icon_color: pastel-dark-blue +--- + +As we continue to grow, we approach the r/Python subreddit and ask to become +their official Discord community. They agree, and we become listed in their +sidebar, giving us yet another source of new members. diff --git a/pydis_site/apps/timeline/entries/2018-07-10_pydis-is-now-partnered-with-discord.md b/pydis_site/apps/timeline/entries/2018-07-10_pydis-is-now-partnered-with-discord.md new file mode 100644 index 00000000..f8bf226f --- /dev/null +++ b/pydis_site/apps/timeline/entries/2018-07-10_pydis-is-now-partnered-with-discord.md @@ -0,0 +1,10 @@ +--- +title: PyDis is now partnered with Discord; the vanity URL discord.gg/python is created +date: Jul 10th, 2018 +icon: fa fa-handshake +icon_color: pastel-pink +--- + +After being rejected for their Partner program several times, we finally get +approved. The recent partnership with the r/Python subreddit plays a significant +role in qualifying us for this partnership. diff --git a/pydis_site/apps/timeline/entries/2018-10-01_first-hacktoberfest-pydis-event.md b/pydis_site/apps/timeline/entries/2018-10-01_first-hacktoberfest-pydis-event.md new file mode 100644 index 00000000..305bc8df --- /dev/null +++ b/pydis_site/apps/timeline/entries/2018-10-01_first-hacktoberfest-pydis-event.md @@ -0,0 +1,12 @@ +--- +title: First Hacktoberfest PyDis event; @Sir Lancebot is created +date: Oct 1st, 2018 +icon: fa fa-dice +icon_color: pastel-blue +--- + +We create a second bot for our community and fill it up with simple, fun and +relatively easy issues. The idea is to create an approachable arena for our +members to cut their open-source teeth on, and to provide lots of help and hand- +holding for those who get stuck. We're training our members to be productive +contributors in the open-source ecosystem. diff --git a/pydis_site/apps/timeline/entries/2018-11-24_10000-members.md b/pydis_site/apps/timeline/entries/2018-11-24_10000-members.md new file mode 100644 index 00000000..4eca7453 --- /dev/null +++ b/pydis_site/apps/timeline/entries/2018-11-24_10000-members.md @@ -0,0 +1,9 @@ +--- +title: PyDis hits 10,000 members +date: Nov 24th, 2018 +icon: fa fa-users +icon_color: pastel-dark-blue +--- + +We partner with RLBot, move from GitLab to GitHub, and start putting together +the first Advent of Code event. diff --git a/pydis_site/apps/timeline/entries/2018-12-19_django-simple-bulma-is-released-on-pypi.md b/pydis_site/apps/timeline/entries/2018-12-19_django-simple-bulma-is-released-on-pypi.md new file mode 100644 index 00000000..a262b000 --- /dev/null +++ b/pydis_site/apps/timeline/entries/2018-12-19_django-simple-bulma-is-released-on-pypi.md @@ -0,0 +1,11 @@ +--- +title: django-simple-bulma is released on PyPi +date: Dec 19th, 2018 +icon: fa fa-code +icon_color: pastel-orange +--- + +Our very first package on PyPI, [django-simple- +bulma](https://pypi.org/project/django-simple-bulma/) is a package that sets up +the Bulma CSS framework for your Django application and lets you configure +everything in settings.py. diff --git a/pydis_site/apps/timeline/entries/2019-04-08_15000-members.md b/pydis_site/apps/timeline/entries/2019-04-08_15000-members.md new file mode 100644 index 00000000..330bbd15 --- /dev/null +++ b/pydis_site/apps/timeline/entries/2019-04-08_15000-members.md @@ -0,0 +1,10 @@ +--- +title: PyDis hits 15,000 members; the “hot ones special” video is released +date: Apr 8th, 2019 +icon: fa fa-users +icon_color: pastel-dark-blue +--- + +<div class="force-aspect-container"> +<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" class="force-aspect-content" frameborder="0" src="https://www.youtube.com/embed/DIBXg8Qh7bA"></iframe> +</div> diff --git a/pydis_site/apps/timeline/entries/2019-09-15_the-django-rewrite-of-pythondiscord-com.md b/pydis_site/apps/timeline/entries/2019-09-15_the-django-rewrite-of-pythondiscord-com.md new file mode 100644 index 00000000..b18975a8 --- /dev/null +++ b/pydis_site/apps/timeline/entries/2019-09-15_the-django-rewrite-of-pythondiscord-com.md @@ -0,0 +1,10 @@ +--- +title: The Django rewrite of pythondiscord.com is now live! +date: Sep 15, 2019 +icon: fa fa-code +icon_color: pastel-orange +--- + +The site is getting more and more complex, and it's time for a rewrite. We +decide to go for a different stack, and build a website based on Django, DRF, +Bulma and PostgreSQL. diff --git a/pydis_site/apps/timeline/entries/2019-09-22_sebastiaan-zeef-becomes-an-owner.md b/pydis_site/apps/timeline/entries/2019-09-22_sebastiaan-zeef-becomes-an-owner.md new file mode 100644 index 00000000..504c06e1 --- /dev/null +++ b/pydis_site/apps/timeline/entries/2019-09-22_sebastiaan-zeef-becomes-an-owner.md @@ -0,0 +1,9 @@ +--- +title: Sebastiaan Zeef becomes an owner +date: Sept 22nd, 2019 +icon: pydis +--- + +After being a long time active contributor to our projects and the driving force +behind many of our events, Sebastiaan Zeef joins the Owners Team alongside Joe & +Leon. diff --git a/pydis_site/apps/timeline/entries/2019-10-26_code-of-conduct-created.md b/pydis_site/apps/timeline/entries/2019-10-26_code-of-conduct-created.md new file mode 100644 index 00000000..a4559c31 --- /dev/null +++ b/pydis_site/apps/timeline/entries/2019-10-26_code-of-conduct-created.md @@ -0,0 +1,10 @@ +--- +title: The code of conduct is created +date: Oct 26th, 2019 +icon: fa fa-scroll +icon_color: pastel-lime +--- + +Inspired by the Adafruit, Rust and Django communities, an essential community +pillar is created; Our [Code of Conduct.](https://pythondiscord.com/pages/code- +of-conduct/) diff --git a/pydis_site/apps/timeline/entries/2019-12-22_30000-members.md b/pydis_site/apps/timeline/entries/2019-12-22_30000-members.md new file mode 100644 index 00000000..273f46ad --- /dev/null +++ b/pydis_site/apps/timeline/entries/2019-12-22_30000-members.md @@ -0,0 +1,10 @@ +--- +title: PyDis hits 30,000 members +date: Dec 22nd, 2019 +icon: fa fa-users +icon_color: pastel-dark-blue +--- + +More than tripling in size since the year before, the community hits 30000 +users. At this point, we're probably the largest Python chat community on the +planet. diff --git a/pydis_site/apps/timeline/entries/2020-01-17_pydis-sixth-code-jam.md b/pydis_site/apps/timeline/entries/2020-01-17_pydis-sixth-code-jam.md new file mode 100644 index 00000000..45048a8f --- /dev/null +++ b/pydis_site/apps/timeline/entries/2020-01-17_pydis-sixth-code-jam.md @@ -0,0 +1,16 @@ +--- +title: PyDis sixth code jam with the theme “Ancient technology” and the technology Kivy +date: Jan 17, 2020 +icon: fa fa-dice +icon_color: pastel-blue +--- + +Our Code Jams are becoming an increasingly big deal, and the Kivy core +developers join us to judge the event and help out our members during the event. +One of them, @tshirtman, even joins our staff! + +<div class="force-aspect-container"> +<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" +allowfullscreen="" class="force-aspect-content" frameborder="0" +src="https://www.youtube.com/embed/8fbZsGrqBzo"></iframe> +</div> diff --git a/pydis_site/apps/timeline/entries/2020-04-05_new-help-channel-system.md b/pydis_site/apps/timeline/entries/2020-04-05_new-help-channel-system.md new file mode 100644 index 00000000..62db5434 --- /dev/null +++ b/pydis_site/apps/timeline/entries/2020-04-05_new-help-channel-system.md @@ -0,0 +1,11 @@ +--- +title: The new help channel system is live +date: Apr 5th, 2020 +icon: fa fa-comments +icon_color: pastel-green +--- + +We release our dynamic help-channel system, which allows you to claim your very +own help channel instead of fighting over the static help channels. We release a +[Help Channel Guide](https://pythondiscord.com/pages/resources/guides/help- +channels/) to help our members fully understand how the system works. diff --git a/pydis_site/apps/timeline/entries/2020-04-14_40000-members.md b/pydis_site/apps/timeline/entries/2020-04-14_40000-members.md new file mode 100644 index 00000000..db9e40fe --- /dev/null +++ b/pydis_site/apps/timeline/entries/2020-04-14_40000-members.md @@ -0,0 +1,8 @@ +--- +title: Python Discord hits 40,000 members, and is now bigger than Liechtenstein. +date: Apr 14, 2020 +icon: fa fa-users +icon_color: pastel-dark-blue +--- + + diff --git a/pydis_site/apps/timeline/entries/2020-04-17_pydis-game-jam-2020.md b/pydis_site/apps/timeline/entries/2020-04-17_pydis-game-jam-2020.md new file mode 100644 index 00000000..b3b215ac --- /dev/null +++ b/pydis_site/apps/timeline/entries/2020-04-17_pydis-game-jam-2020.md @@ -0,0 +1,15 @@ +--- +title: PyDis Game Jam 2020 with the “Three of a Kind” theme and Arcade as the technology +date: Apr 17th, 2020 +icon: fa fa-gamepad +icon_color: pastel-purple +--- + +The creator of Arcade, Paul Vincent Craven, joins us as a judge. Several of the +Code Jam participants also end up getting involved contributing to the Arcade +repository. + +<div class="force-aspect-container"> +<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" class="force-aspect-content" frameborder="0" +src="https://www.youtube.com/embed/KkLXMvKfEgs"></iframe> +</div> diff --git a/pydis_site/apps/timeline/entries/2020-05-25_modmail-is-now-live.md b/pydis_site/apps/timeline/entries/2020-05-25_modmail-is-now-live.md new file mode 100644 index 00000000..28a75d8b --- /dev/null +++ b/pydis_site/apps/timeline/entries/2020-05-25_modmail-is-now-live.md @@ -0,0 +1,11 @@ +--- +title: ModMail is now live +date: May 25th, 2020 +icon: fa fa-comments +icon_color: pastel-green +--- + +Having originally planned to write our own ModMail bot from scratch, we come +across an exceptionally good [ModMail bot by +kyb3r](https://github.com/kyb3r/modmail) and decide to just self-host that one +instead. diff --git a/pydis_site/apps/timeline/entries/2020-05-28_python-discord-is-now-listed-on-python-org.md b/pydis_site/apps/timeline/entries/2020-05-28_python-discord-is-now-listed-on-python-org.md new file mode 100644 index 00000000..e5b8f65f --- /dev/null +++ b/pydis_site/apps/timeline/entries/2020-05-28_python-discord-is-now-listed-on-python-org.md @@ -0,0 +1,11 @@ +--- +title: Python Discord is now listed on python.org/community +date: May 28th, 2020 +icon: fa fa-handshake +icon_color: pastel-pink +--- + +After working towards this goal for months, we finally work out an arrangement +with the PSF that allows us to be listed on that most holiest of websites: +https://python.org/. [There was much +rejoicing.](https://youtu.be/yciX2meIkXI?t=3) diff --git a/pydis_site/apps/timeline/entries/2020-06-04_python-discord-public-statistics-are-now-live.md b/pydis_site/apps/timeline/entries/2020-06-04_python-discord-public-statistics-are-now-live.md new file mode 100644 index 00000000..f92628d1 --- /dev/null +++ b/pydis_site/apps/timeline/entries/2020-06-04_python-discord-public-statistics-are-now-live.md @@ -0,0 +1,10 @@ +--- +title: Python Discord Public Statistics are now live +date: Jun 4th, 2020 +icon: fa fa-chart-bar +icon_color: pastel-red +--- + +After getting numerous requests to publish beautiful data on member count and +channel use, we create +[stats.pythondiscord.com](https://stats.pythondiscord.com/) for all to enjoy. diff --git a/pydis_site/apps/timeline/entries/2020-07-31_pydis-summer-code-jam-2020.md b/pydis_site/apps/timeline/entries/2020-07-31_pydis-summer-code-jam-2020.md new file mode 100644 index 00000000..0fe8df6b --- /dev/null +++ b/pydis_site/apps/timeline/entries/2020-07-31_pydis-summer-code-jam-2020.md @@ -0,0 +1,14 @@ +--- +title: PyDis summer code jam 2020 with the theme “Early Internet” and Django as the technology +date: Jul 31st, 2020 +icon: fa fa-dice +icon_color: pastel-blue +--- + +Sponsored by the Django Software Foundation and JetBrains, the Summer Code Jam +for 2020 attracts hundreds of participants, and sees the creation of some +fantastic projects. Check them out in our judge stream below: + +<div class="force-aspect-container"> +<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" class="force-aspect-content" frameborder="0" src="https://www.youtube.com/embed/OFtm8f2iu6c"></iframe> +</div> diff --git a/pydis_site/apps/timeline/entries/2020-08-16_python-discord-is-now-the-new-home-of-the-pyweek-event.md b/pydis_site/apps/timeline/entries/2020-08-16_python-discord-is-now-the-new-home-of-the-pyweek-event.md new file mode 100644 index 00000000..2fcd7ec5 --- /dev/null +++ b/pydis_site/apps/timeline/entries/2020-08-16_python-discord-is-now-the-new-home-of-the-pyweek-event.md @@ -0,0 +1,10 @@ +--- +title: Python Discord is now the new home of the PyWeek event! +date: Aug 16th, 2020 +icon: fa fa-handshake +icon_color: pastel-pink +--- + +PyWeek, a game jam that has been running since 2005, joins Python Discord as one +of our official events. Find more information about PyWeek on [their official +website](https://pyweek.org/). diff --git a/pydis_site/apps/timeline/entries/2020-10-21_2020-cpython-core-developer-q-a.md b/pydis_site/apps/timeline/entries/2020-10-21_2020-cpython-core-developer-q-a.md new file mode 100644 index 00000000..a7ddef89 --- /dev/null +++ b/pydis_site/apps/timeline/entries/2020-10-21_2020-cpython-core-developer-q-a.md @@ -0,0 +1,9 @@ +--- +title: Python Discord hosts the 2020 CPython Core Developer Q&A +date: Oct 21st, 2020 +icon: pydis +--- + +<div class="force-aspect-container"> +<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" class="force-aspect-content" frameborder="0" src="https://www.youtube.com/embed/gXMdfBTcOfQ"></iframe> +</div> diff --git a/pydis_site/apps/timeline/entries/2020-10-22_100000-members.md b/pydis_site/apps/timeline/entries/2020-10-22_100000-members.md new file mode 100644 index 00000000..3f196f2c --- /dev/null +++ b/pydis_site/apps/timeline/entries/2020-10-22_100000-members.md @@ -0,0 +1,10 @@ +--- +title: Python Discord hits 100,000 members! +date: Oct 22nd, 2020 +icon: fa fa-users +icon_color: pastel-dark-blue +--- + +Only six months after hitting 40,000 users, we hit 100,000 users. A monumental +milestone, and one we're very proud of. To commemorate it, we create this +timeline. diff --git a/pydis_site/apps/timeline/entries/2020-11-29_we-migrate-all-our-infrastructure-to-kubernetes.md b/pydis_site/apps/timeline/entries/2020-11-29_we-migrate-all-our-infrastructure-to-kubernetes.md new file mode 100644 index 00000000..00916c2a --- /dev/null +++ b/pydis_site/apps/timeline/entries/2020-11-29_we-migrate-all-our-infrastructure-to-kubernetes.md @@ -0,0 +1,10 @@ +--- +title: We migrate all our infrastructure to Kubernetes +date: Nov 29th, 2020 +icon: fa fa-wrench +icon_color: pastel-orange +--- + +As our tech stack grows, we decide to migrate all our services over to a +container orchestration paradigm via Kubernetes. This gives us better control +and scalability. **Joe Banks** takes on the role as DevOps Lead. diff --git a/pydis_site/apps/timeline/entries/2020-12-01_advent-of-code.md b/pydis_site/apps/timeline/entries/2020-12-01_advent-of-code.md new file mode 100644 index 00000000..d24e02a1 --- /dev/null +++ b/pydis_site/apps/timeline/entries/2020-12-01_advent-of-code.md @@ -0,0 +1,11 @@ +--- +title: Advent of Code attracts hundreds of participants +date: December 1st - 25th, 2020 +icon: fa fa-snowflake +icon_color: pastel-red +--- + +A total of 443 Python Discord members sign up to be part of [Eric Wastl's +excellent Advent of Code event](https://adventofcode.com/). As always, we +provide dedicated announcements, scoreboards, bot commands and channels for our +members to enjoy the event in. diff --git a/pydis_site/apps/timeline/entries/2021-02-08_we-release-the-pep-8-song.md b/pydis_site/apps/timeline/entries/2021-02-08_we-release-the-pep-8-song.md new file mode 100644 index 00000000..de97b1f4 --- /dev/null +++ b/pydis_site/apps/timeline/entries/2021-02-08_we-release-the-pep-8-song.md @@ -0,0 +1,14 @@ +--- +title: We release The PEP 8 song +date: February 8th, 2021 +icon: fa fa-music +icon_color: pastel-blue +--- + +We release the PEP 8 song on our YouTube channel, which finds tens of thousands +of listeners! + +<div class="force-aspect-container"> +<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" class="force-aspect-content" frameborder="0" +src="https://www.youtube.com/embed/hgI0p1zf31k"></iframe> +</div> diff --git a/pydis_site/apps/timeline/entries/2021-02-18_150000-members.md b/pydis_site/apps/timeline/entries/2021-02-18_150000-members.md new file mode 100644 index 00000000..9a252255 --- /dev/null +++ b/pydis_site/apps/timeline/entries/2021-02-18_150000-members.md @@ -0,0 +1,8 @@ +--- +title: We now have 150,000 members! +date: Feb 18th, 2021 +icon: fa fa-users +icon_color: pastel-dark-blue +--- + +Our growth continues to accelerate. diff --git a/pydis_site/apps/timeline/entries/2021-03-01_leon-sandoy-appears-on-talk-python-to-me.md b/pydis_site/apps/timeline/entries/2021-03-01_leon-sandoy-appears-on-talk-python-to-me.md new file mode 100644 index 00000000..0ea1eeaa --- /dev/null +++ b/pydis_site/apps/timeline/entries/2021-03-01_leon-sandoy-appears-on-talk-python-to-me.md @@ -0,0 +1,16 @@ +--- +title: Leon Sandøy appears on Talk Python To Me +date: Mar 1st, 2021 +icon: fa fa-microphone +icon_color: pastel-green +--- + +Leon goes on the Talk Python to Me podcast with Michael Kennedy to discuss the +history of Python Discord, the critical importance of culture, and how to run a +massive community. You can find the episode [at +talkpython.fm](https://talkpython.fm/episodes/show/305/python-community-at- +python-discord). + +<iframe width="100%" height="166" scrolling="no" frameborder="no" +src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/996083146&color=ff5500&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false"> +</iframe> diff --git a/pydis_site/apps/timeline/entries/2021-03-13_new-feature-weekly-discussion-channel.md b/pydis_site/apps/timeline/entries/2021-03-13_new-feature-weekly-discussion-channel.md new file mode 100644 index 00000000..f037aeba --- /dev/null +++ b/pydis_site/apps/timeline/entries/2021-03-13_new-feature-weekly-discussion-channel.md @@ -0,0 +1,16 @@ +--- +title: "New feature: Weekly discussion channel" +date: Mar 13th, 2021 +icon: fa fa-comment +icon_color: pastel-purple +--- + +Every week (or two weeks), we'll be posting a new topic to discuss in a channel +called **#weekly-topic-discussion**. Our inaugural topic is a PyCon talk by +Anthony Shaw called **Wily Python: Writing simpler and more maintainable +Python.**. + +<div class="force-aspect-container"> +<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" class="force-aspect-content" frameborder="0" +src="https://www.youtube.com/embed/dqdsNoApJ80"></iframe> +</div> diff --git a/pydis_site/apps/timeline/entries/2021-03-13_teaching-python-podcast.md b/pydis_site/apps/timeline/entries/2021-03-13_teaching-python-podcast.md new file mode 100644 index 00000000..ac2997d1 --- /dev/null +++ b/pydis_site/apps/timeline/entries/2021-03-13_teaching-python-podcast.md @@ -0,0 +1,14 @@ +--- +title: We're on the Teaching Python podcast! +date: Mar 13th, 2021 +icon: fa fa-microphone +icon_color: pastel-pink +--- + +Leon joins Sean and Kelly on the Teaching Python podcast to discuss how the +pandemic has changed the way we learn, and what role communities like Python +Discord can play in this new world. You can find the episode [at +teachingpython.fm](https://www.teachingpython.fm/63). + +<iframe width="100%" height="166" frameborder="0" scrolling="no" +src="https://player.fireside.fm/v2/UIYXtbeL+qOjGAsKi?theme=dark"></iframe> diff --git a/pydis_site/apps/timeline/entries/2021-03-21_summer-code-jam-2020-highlights.md b/pydis_site/apps/timeline/entries/2021-03-21_summer-code-jam-2020-highlights.md new file mode 100644 index 00000000..eebb69ff --- /dev/null +++ b/pydis_site/apps/timeline/entries/2021-03-21_summer-code-jam-2020-highlights.md @@ -0,0 +1,15 @@ +--- +title: Summer Code Jam 2020 Highlights +date: Mar 21st, 2021 +icon: fab fa-youtube +icon_color: pastel-red +--- + +We release a new video to our YouTube showing the best projects from the Summer +Code Jam 2020. Better late than never! + +<div class="force-aspect-container"> +<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" +allowfullscreen="" class="force-aspect-content" frameborder="0" +src="https://www.youtube.com/embed/g9cnp4W0P54"></iframe> +</div> diff --git a/pydis_site/apps/timeline/entries/2021-04-23_owners-become-psf-fellows.md b/pydis_site/apps/timeline/entries/2021-04-23_owners-become-psf-fellows.md new file mode 100644 index 00000000..9db51ac7 --- /dev/null +++ b/pydis_site/apps/timeline/entries/2021-04-23_owners-become-psf-fellows.md @@ -0,0 +1,10 @@ +--- +title: Owners become PSF Fellows +date: April 23, 2021 +icon: pydis +--- + +Joe, Leon, and Sebastiaan [are recognized as Python Software Foundation +Fellows](https://pyfound.blogspot.com/2021/04/python-software-foundation- +fellow.html) for their substantial contributions to the Python ecosystem by +fostering Python Discord. diff --git a/pydis_site/apps/timeline/entries/2021-05-24_inaugural-run-of-pixels.md b/pydis_site/apps/timeline/entries/2021-05-24_inaugural-run-of-pixels.md new file mode 100644 index 00000000..66ecf82e --- /dev/null +++ b/pydis_site/apps/timeline/entries/2021-05-24_inaugural-run-of-pixels.md @@ -0,0 +1,14 @@ +--- +title: Inaugural run of Pixels +date: May 24, 2021 +icon: fa fa-palette +icon_color: pastel-purple +--- + +Inspired by the subreddit, r/place, Pixels was our collaborative canvas event +held between May 25 to June 14, providing a beginner-friendly API to paint +pixels on a virtual canvas. + +Later, we released [a blog +post](https://blog.pythondiscord.com/pixels-summer-2021/) summarizing what +happened, our motives, and some stories from during development. diff --git a/pydis_site/apps/timeline/entries/2021-05-24_partnership-with-black.md b/pydis_site/apps/timeline/entries/2021-05-24_partnership-with-black.md new file mode 100644 index 00000000..e2240b65 --- /dev/null +++ b/pydis_site/apps/timeline/entries/2021-05-24_partnership-with-black.md @@ -0,0 +1,10 @@ +--- +title: Partnership with Black +date: May 24th, 2021 +icon: fa fa-handshake + +--- + +We partner with the uncompromising code formatter project, Black, who were +looking for a new home for their real-time chat. Python Discord ended up being +that home, resulting in the creation of the `#black-formatter` channel. diff --git a/pydis_site/apps/timeline/entries/2021-07-09_summer-code-jam-2021-cj8.md b/pydis_site/apps/timeline/entries/2021-07-09_summer-code-jam-2021-cj8.md new file mode 100644 index 00000000..a86f7da5 --- /dev/null +++ b/pydis_site/apps/timeline/entries/2021-07-09_summer-code-jam-2021-cj8.md @@ -0,0 +1,11 @@ +--- +title: Summer Code Jam 2021 (CJ8) +date: July 9, 2021 +icon: fa fa-dice +icon_color: pastel-orange +--- + +We host the 8th now-annual Code Jam. Teams had to create a program with an +text-based user interface (TUI), all designed around the theme of “think inside +the box.” Ultimately, 51 teams submitted projects. [The winning submissions are +listed on our website.](https://www.pythondiscord.com/events/code-jams/8/) diff --git a/pydis_site/apps/timeline/entries/2021-10-04_python-310-release-stream.md b/pydis_site/apps/timeline/entries/2021-10-04_python-310-release-stream.md new file mode 100644 index 00000000..3e7d3025 --- /dev/null +++ b/pydis_site/apps/timeline/entries/2021-10-04_python-310-release-stream.md @@ -0,0 +1,16 @@ +--- +title: We host the Python 3.10 Release Stream +date: Oct 4th, 2021 +icon: pydis +--- + +Leon and Pablo Galindo, CPython Core Developer and Release Manager, host the +Python 3.10 Release Stream, joined by other core devs Carol Willing, Irit +Katriel, Łukasz Langa, and Brandt Bucher. They talked in-depth about the new +features introduced in 3.10, the development of those features, and more! + +<div class="force-aspect-container"> +<iframe allowfullscreen="" class="force-aspect-content" +allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" +frameborder="0" src="https://www.youtube.com/embed/AHT2l3hcIJg"></iframe> +</div> diff --git a/pydis_site/apps/timeline/entries/2022-01-19_300000-members.md b/pydis_site/apps/timeline/entries/2022-01-19_300000-members.md new file mode 100644 index 00000000..9090a920 --- /dev/null +++ b/pydis_site/apps/timeline/entries/2022-01-19_300000-members.md @@ -0,0 +1,9 @@ +--- +title: We hit 300 000 members! +date: Jan 19, 2022 +icon: fa fa-users +icon_color: pastel-dark-blue +--- + +Thanks to an increasing growth rate, Python Discord's membership count doubled +from 150,000 to 300,000 in less than a year! diff --git a/pydis_site/apps/timeline/entries/2022-02-02_smarter-resources.md b/pydis_site/apps/timeline/entries/2022-02-02_smarter-resources.md new file mode 100644 index 00000000..137c0dab --- /dev/null +++ b/pydis_site/apps/timeline/entries/2022-02-02_smarter-resources.md @@ -0,0 +1,11 @@ +--- +title: Deployment of Smarter Resources +date: Feb 2nd, 2022 +icon: fa fa-code +icon_color: pastel-red +--- + +We gave our resources pages some much needed love and [reorganised them into a +single page](https://www.pythondiscord.com/resources/), complete with a shiny +new resource filter that allows you to more quickly find ones that relate to +your interests, experience, learning style, and ability to pay! diff --git a/pydis_site/apps/timeline/entries/2022-02-09_events-team.md b/pydis_site/apps/timeline/entries/2022-02-09_events-team.md new file mode 100644 index 00000000..51036918 --- /dev/null +++ b/pydis_site/apps/timeline/entries/2022-02-09_events-team.md @@ -0,0 +1,9 @@ +--- +title: Creation of Events Team +date: Feb 9th, 2022 +icon: pydis +--- + +We form the Events Team to organise and run future events. Led by Kat and +comprised by staff members, the goal of the team is to ultimately host more +events in a more sustainable way. diff --git a/pydis_site/apps/timeline/entries/2022-02-12_trivia-night.md b/pydis_site/apps/timeline/entries/2022-02-12_trivia-night.md new file mode 100644 index 00000000..7a4a1b8c --- /dev/null +++ b/pydis_site/apps/timeline/entries/2022-02-12_trivia-night.md @@ -0,0 +1,11 @@ +--- +title: Trivia Night +date: Feb 12th, 2022 +icon: fa fa-question +icon_color: pastel-green +--- + +How well do you know Python inside out? Members got to find out in a Trivia +Night event. Contestants were given questions about Python's internals, its +development, and more. To win, contestants had to get the most questions right +while being fast to answer. diff --git a/pydis_site/apps/timeline/entries/2022-02-21_sir-robin.md b/pydis_site/apps/timeline/entries/2022-02-21_sir-robin.md new file mode 100644 index 00000000..ac421acb --- /dev/null +++ b/pydis_site/apps/timeline/entries/2022-02-21_sir-robin.md @@ -0,0 +1,9 @@ +--- +title: Addition of @Sir Robin +date: Feb 21st, 2022 +icon: fa fa-robot +icon_color: pastel-blue +--- + +Our arsenal of bots grows! We add @Sir Robin to power and manage all of our +future events and to support the Events Team. diff --git a/pydis_site/apps/timeline/entries/2022-05-19_partnership-with-pyqtgraph.md b/pydis_site/apps/timeline/entries/2022-05-19_partnership-with-pyqtgraph.md new file mode 100644 index 00000000..7d738f4e --- /dev/null +++ b/pydis_site/apps/timeline/entries/2022-05-19_partnership-with-pyqtgraph.md @@ -0,0 +1,9 @@ +--- +title: Partnership with pyqtgraph +date: May 19th, 2022 +icon: fa fa-handshake + +--- + +The `#pyqtgraph` channel is created for the Scientific Graphics and GUI library +pyqtgraph, joining `#black-formatter`. diff --git a/pydis_site/apps/timeline/entries/2022-07-21_summer-code-jam-2022-cj9.md b/pydis_site/apps/timeline/entries/2022-07-21_summer-code-jam-2022-cj9.md new file mode 100644 index 00000000..a444338c --- /dev/null +++ b/pydis_site/apps/timeline/entries/2022-07-21_summer-code-jam-2022-cj9.md @@ -0,0 +1,17 @@ +--- +title: Summer Code Jam 2022 (CJ9) +date: July 21st, 2022 +icon: fa fa-dice +icon_color: pastel-lime +--- + +We host the 9th Code Jam. This year, teams had to use **websockets** to create a +project based on the theme, **It's not a bug, it's a feature**. In all, 24 teams +submitted their projects. At the end, we held a livestream demoing the top 10 +projects and announcing the winner! + +<div class="force-aspect-container"> +<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" +allowfullscreen="" class="force-aspect-content" frameborder="0" +src="https://www.youtube.com/embed/YZcVjFED6Hg"></iframe> +</div> diff --git a/pydis_site/apps/timeline/entries/2022-10-24_python-311-release-stream.md b/pydis_site/apps/timeline/entries/2022-10-24_python-311-release-stream.md new file mode 100644 index 00000000..21f6ab03 --- /dev/null +++ b/pydis_site/apps/timeline/entries/2022-10-24_python-311-release-stream.md @@ -0,0 +1,17 @@ +--- +title: Python 3.11 Release Stream +date: Oct 24th, 2022 +icon: pydis +--- + +With the Python 3.10 Release Stream being such a success, we brought it back for +the release of Python 3.11. Hosted by Leon, and CPython 3.11 Release Manager, +Pablo Galindo, they were joined by other CPython Core Developers. Together, they +discuss the specific features and the overall development process of the +release. + +<div class="force-aspect-container"> +<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" +allowfullscreen="" class="force-aspect-content" frameborder="0" +src="https://www.youtube.com/embed/PGZPSWZSkJI"></iframe> +</div> diff --git a/pydis_site/apps/timeline/entries/2022-11-25_switch-to-forum-based-help-system.md b/pydis_site/apps/timeline/entries/2022-11-25_switch-to-forum-based-help-system.md new file mode 100644 index 00000000..cfb920d2 --- /dev/null +++ b/pydis_site/apps/timeline/entries/2022-11-25_switch-to-forum-based-help-system.md @@ -0,0 +1,11 @@ +--- +title: Switch to forum-based help system +date: Nov 25th, 2022 +icon: fa fa-comments +icon_color: pastel-pink +--- + +We migrate our help system to use a forum channel, retiring our home-grown +rotating help system after 3 years of service and nearly 500,000 help sessions. +Forum channels offer a better experience as members can create their own +dedicated thread in a discoverable place. diff --git a/pydis_site/apps/timeline/entries/2023-01-30_retirement-of-joe-and-sebastiaan.md b/pydis_site/apps/timeline/entries/2023-01-30_retirement-of-joe-and-sebastiaan.md new file mode 100644 index 00000000..e1d699ed --- /dev/null +++ b/pydis_site/apps/timeline/entries/2023-01-30_retirement-of-joe-and-sebastiaan.md @@ -0,0 +1,12 @@ +--- +title: Retirement of Joe and Sebastiaan +date: Jan 30th, 2023 +icon: pydis +--- + +Having been at the helm of Python Discord for over 5 and 3 years respectively, +Joe and Sebastiaan retire and step down. They gain the @Founders role and +continue as advisors to the @Directors, the new name of the original @Owners +role. + +At the same time, Mina and Zig join Leon as co-directors. diff --git a/pydis_site/apps/timeline/entries/2023-07-11_new-paste-service.md b/pydis_site/apps/timeline/entries/2023-07-11_new-paste-service.md new file mode 100644 index 00000000..4cc7e7ce --- /dev/null +++ b/pydis_site/apps/timeline/entries/2023-07-11_new-paste-service.md @@ -0,0 +1,13 @@ +--- +title: Switch to new paste service +date: Jul 11th, 2023 +icon: fa-solid fa-clipboard +icon_color: pastel-pink +--- + +We migrate over to [pinnwand](https://github.com/supakeen/pinnwand) as the +service that powers our paste bin over at +[https://paste.pythondiscord.com/](https://paste.pythondiscord.com). We made the +switch as it comes with native light/dark modes, support for multi-file pastes, +additional support for text highlighting languages, and plus, it's written in +Python! diff --git a/pydis_site/apps/timeline/tests/__init__.py b/pydis_site/apps/timeline/tests/__init__.py new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/pydis_site/apps/timeline/tests/__init__.py diff --git a/pydis_site/apps/timeline/tests/test_views.py b/pydis_site/apps/timeline/tests/test_views.py new file mode 100644 index 00000000..a3e2e805 --- /dev/null +++ b/pydis_site/apps/timeline/tests/test_views.py @@ -0,0 +1,10 @@ +from django.test import TestCase +from django.urls import reverse + + +class TestIndexReturns200(TestCase): + def test_index_returns_200(self): + """Check that the index page returns a HTTP 200 response.""" + url = reverse('timeline:index') + resp = self.client.get(url) + self.assertEqual(resp.status_code, 200) diff --git a/pydis_site/apps/timeline/urls.py b/pydis_site/apps/timeline/urls.py new file mode 100644 index 00000000..e4f1d6c6 --- /dev/null +++ b/pydis_site/apps/timeline/urls.py @@ -0,0 +1,9 @@ +from django_distill import distill_path + +from .views import TimelineView + +app_name = "timeline" + +urlpatterns = [ + distill_path("", TimelineView.as_view(), name="index"), +] diff --git a/pydis_site/apps/timeline/views.py b/pydis_site/apps/timeline/views.py new file mode 100644 index 00000000..380dfe53 --- /dev/null +++ b/pydis_site/apps/timeline/views.py @@ -0,0 +1,20 @@ +from django.apps import apps +from django.core.handlers.wsgi import WSGIRequest +from django.http import HttpResponse +from django.shortcuts import render +from django.views import View + +APP_NAME = "timeline" + +class TimelineView(View): + """A vertical timeline showcasing milestones in the history of Python Discord.""" + + def get(self, request: WSGIRequest) -> HttpResponse: + """Render the timeline.""" + app = apps.get_app_config(APP_NAME) + + return render( + request, + template_name="timeline/timeline.html", + context={ "entries": app.entries }, + ) diff --git a/pydis_site/settings.py b/pydis_site/settings.py index f59b179a..dcb37b54 100644 --- a/pydis_site/settings.py +++ b/pydis_site/settings.py @@ -115,6 +115,7 @@ NON_STATIC_APPS = [ INSTALLED_APPS = [ *NON_STATIC_APPS, 'pydis_site.apps.home', + 'pydis_site.apps.timeline', 'pydis_site.apps.resources', 'pydis_site.apps.content', 'pydis_site.apps.events', diff --git a/pydis_site/static/css/home/timeline.css b/pydis_site/static/css/timeline/timeline.css index 7f6c4160..1970383f 100644 --- a/pydis_site/static/css/home/timeline.css +++ b/pydis_site/static/css/timeline/timeline.css @@ -145,6 +145,15 @@ flex-grow: 1; } +/* Don't make the titles show up as link colors before hover. */ +.timeline-content h3 a { + color: inherit; +} + +.timeline-content h3 a:hover { + color: #7289DA; +} + @media (min-width: 1023px) { .timeline-item:nth-child(odd) { flex-direction: row-reverse; diff --git a/pydis_site/templates/base/navbar.html b/pydis_site/templates/base/navbar.html index 2fcd8ad8..41f5fa10 100644 --- a/pydis_site/templates/base/navbar.html +++ b/pydis_site/templates/base/navbar.html @@ -88,7 +88,7 @@ <a class="navbar-item" href="{% url "content:page_category" location="guides" %}"> Guides </a> - <a class="navbar-item" href="{% url 'home:timeline' %}"> + <a class="navbar-item" href="{% url 'timeline:index' %}"> Timeline </a> <a class="navbar-item" href="{% url "content:page_category" location="rules" %}"> diff --git a/pydis_site/templates/home/index.html b/pydis_site/templates/home/index.html index 9ff6b393..c7d14fd6 100644 --- a/pydis_site/templates/home/index.html +++ b/pydis_site/templates/home/index.html @@ -110,7 +110,7 @@ </p> <div class="buttons are-large is-centered"> - <a href="{% url 'home:timeline' %}" class="button is-primary"> + <a href="{% url 'timeline:index' %}" class="button is-primary"> <span>Check it out!</span> <span class="icon"> <i class="fas fa-arrow-right"></i> diff --git a/pydis_site/templates/home/timeline.html b/pydis_site/templates/home/timeline.html deleted file mode 100644 index 6a7df522..00000000 --- a/pydis_site/templates/home/timeline.html +++ /dev/null @@ -1,983 +0,0 @@ -{% extends 'base/base.html' %} -{% load static %} - -{% block title %}Timeline{% endblock %} -{% block head %} - <link rel="stylesheet" href="{% static "css/home/timeline.css" %}"> -{% endblock %} - -{% block content %} - {% include "base/navbar.html" %} - - <section class="timeline"> - <div class="container"> - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-pink"> - <span class="icon"><i class="fa fa-comments"></i></span> - </div> - <span class="timeline-date">Jul 11th, 2023</span> - </div> - - <div class="timeline-content content box"> - <h3>Switch to new paste service</h3> - <p> - We migrate over to <a href="https://github.com/supakeen/pinnwand">pinnwand</a> - as the service that powers our paste bin over at - <a href="https://paste.pythondiscord.com">https://paste.pythondiscord.com/</a>. - We made the switch as it comes with native light/dark modes, support for multi-file - pastes, additional support for text highlighting languages, and plus, it's written in - Python! - </p> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon has-background-primary"> - <img class="pydis" src="{% static "images/timeline/cd-icon-pydis.svg" %}" alt="Logo"> - </div> - <span class="timeline-date">Jan 30th, 2023</span> - </div> - - <div class="timeline-content content box"> - <h3>Retirement of Joe and Sebastiaan</h3> - <p> - Having been at the helm of Python Discord for over 5 and 3 years respectively, Joe and - Sebastiaan retire and step down. They gain the @Founders role and continue as advisors - to the @Directors, the new name of the original @Owners role. - - At the same time, Mina and Zig join Leon as co-directors. - </p> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-pink"> - <span class="icon"><i class="fa fa-comments"></i></span> - </div> - <span class="timeline-date">Nov 25th, 2022</span> - </div> - - <div class="timeline-content content box"> - <h3>Switch to forum-based help system</h3> - <p> - We migrate our help system to use a forum channel, retiring our home-grown rotating help - system after 3 years of service and nearly 500,000 help sessions. Forum channels offer - a better experience as members can create their own dedicated thread in a discoverable place. - </p> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon has-background-primary"> - <img class="pydis" src="{% static "images/timeline/cd-icon-pydis.svg" %}" alt="Logo"> - </div> - <span class="timeline-date">Oct 24th, 2022</span> - </div> - - <div class="timeline-content content box"> - <h3>Python 3.11 Release Stream</h3> - <p> - With the Python 3.10 Release Stream being such a success, we brought it back for the - release of Python 3.11. Hosted by Leon, and CPython 3.11 Release Manager, Pablo Galindo, - they were joined by other CPython Core Developers. Together, they discuss the specific - features and the overall development process of the release. - </p> - - <div class="force-aspect-container"> - <iframe class="force-aspect-content" src="https://www.youtube.com/embed/PGZPSWZSkJI" frameborder="0" - allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" - allowfullscreen></iframe> - </div> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-lime"> - <span class="icon"><i class="fa fa-dice"></i></span> - </div> - <span class="timeline-date">July 21st, 2022</span> - </div> - - <div class="timeline-content content box"> - <h3>Summer Code Jam 2022 (CJ9)</h3> - <p> - We host the 9th Code Jam. This year, teams had to use <b>websockets</b> to create a - project based on the theme, <b>It's not a bug, it's a feature</b>. In all, 24 teams - submitted their projects. At the end, we held a livestream demoing the top 10 projects - and announcing the winner! - </p> - - <div class="force-aspect-container"> - <iframe class="force-aspect-content" src="https://www.youtube.com/embed/YZcVjFED6Hg" frameborder="0" - allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" - allowfullscreen></iframe> - </div> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div style="background-color: grey;" class="timeline-icon has-background-primary"> - <i class="fa fa-handshake"></i> - </div> - <span class="timeline-date">May 19th, 2022</span> - </div> - - <div class="timeline-content content box"> - <h3>Partnership with pyqtgraph</h3> - <p> - The <code>#pyqtgraph</code> channel is created for the Scientific Graphics and GUI - library pyqtgraph, joining <code>#black-formatter</code>. - </p> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-blue"> - <span class="icon"><i class="fa fa-robot"></i></span> - </div> - <span class="timeline-date">Feb 21st, 2022</span> - </div> - - <div class="timeline-content content box"> - <h3>Addition of @Sir Robin</h3> - <p> - Our arsenal of bots grows! We add @Sir Robin to power and manage all of our future - events and to support the Events Team. - </p> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-green"> - <span class="icon"><i class="fa fa-question"></i></span> - </div> - <span class="timeline-date">Feb 12th, 2022</span> - </div> - - <div class="timeline-content content box"> - <h3>Trivia Night</h3> - <p> - How well do you know Python inside out? Members got to find out in a Trivia Night event. - Contestants were given questions about Python's internals, its development, and more. - To win, contestants had to get the most questions right while being fast to answer. - </p> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon has-background-primary"> - <img class="pydis" src="{% static "images/timeline/cd-icon-pydis.svg" %}" alt="Logo"> - </div> - <span class="timeline-date">Feb 9th, 2022</span> - </div> - - <div class="timeline-content content box"> - <h3>Creation of Events Team</h3> - <p> - We form the Events Team to organise and run future events. Led by Kat and comprised by - staff members, the goal of the team is to ultimately host more events in a more - sustainable way. - </p> - </div> - </div> - - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-red"> - <span class="icon"><i class="fa fa-code"></i></span> - </div> - <span class="timeline-date">Feb 2nd, 2022</span> - </div> - - <div class="timeline-content content box"> - <h3>Deployment of Smarter Resources</h3> - <p> - We gave our resources pages some much needed love and - <a href="https://www.pythondiscord.com/resources/"> - reorganised them into a single page</a>, - complete with a shiny new resource filter that allows you to more quickly find - ones that relate to your interests, experience, learning style, and ability to pay! - </p> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-dark-blue"> - <span class="icon"><i class="fa fa-users"></i></span> - </div> - <span class="timeline-date">Jan 19, 2022</span> - </div> - - <div class="timeline-content content box"> - <h3>We hit 300 000 members!</h3> - <p> - Thanks to an increasing growth rate, Python Discord's membership count doubled from - 150,000 to 300,000 in less than a year! - </p> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon has-background-primary"> - <img class="pydis" src="{% static "images/timeline/cd-icon-pydis.svg" %}" alt="Logo"> - </div> - <span class="timeline-date">Oct 4th, 2021</span> - </div> - - <div class="timeline-content content box"> - <h3>We host the Python 3.10 Release Stream</h3> - <p> - Leon and Pablo Galindo, CPython Core Developer and Release Manager, host the Python 3.10 - Release Stream, joined by other core devs Carol Willing, Irit Katriel, Łukasz Langa, and - Brandt Bucher. They talked in-depth about the new features introduced in 3.10, the - development of those features, and more! - </p> - - <div class="force-aspect-container"> - <iframe class="force-aspect-content" src="https://www.youtube.com/embed/AHT2l3hcIJg" frameborder="0" - allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" - allowfullscreen></iframe> - </div> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div style="background-color: grey;" class="timeline-icon has-background-primary"> - <i class="fa fa-handshake"></i> - </div> - <span class="timeline-date">May 24th, 2021</span> - </div> - - <div class="timeline-content content box"> - <h3>Partnership with Black</h3> - <p> - We partner with the uncompromising code formatter project, Black, who were looking for a - new home for their real-time chat. Python Discord ended up being that home, resulting in - the creation of the <code>#black-formatter</code> channel. - </p> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-orange"> - <span class="icon"><i class="fa fa-dice"></i></span> - </div> - <span class="timeline-date">July 9, 2021</span> - </div> - - <div class="timeline-content content box"> - <h3>Summer Code Jam 2021 (CJ8)</h3> - <p> - We host the 8th now-annual Code Jam. Teams had to create a program with an text-based user - interface (TUI), all designed around the theme of “think inside the box.” Ultimately, 51 - teams submitted projects. - <a href="https://www.pythondiscord.com/events/code-jams/8/"> - The winning submissions are listed on our website. - </a> - </p> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-purple"> - <span class="icon"><i class="fa fa-palette"></i></span> - </div> - <span class="timeline-date">May 24, 2021</span> - </div> - - <div class="timeline-content content box"> - <h3>Inaugural run of Pixels</h3> - <p> - Inspired by the subreddit, r/place, Pixels was our collaborative canvas event held - between May 25 to June 14, providing a beginner-friendly API to paint pixels on a - virtual canvas. - </p> - <p> - Later, we released <a href="https://blog.pythondiscord.com/pixels-summer-2021/">a blog post</a> - summarizing what happened, our motives, and some stories from during development. - </p> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon has-background-primary"> - <img class="pydis" src="{% static "images/timeline/cd-icon-pydis.svg" %}" alt="Logo"> - </div> - <span class="timeline-date">April 23, 2021</span> - </div> - - <div class="timeline-content content box"> - <h3>Owners become PSF Fellows</h3> - <p>Joe, Leon, and Sebastiaan - <a href="https://pyfound.blogspot.com/2021/04/python-software-foundation-fellow.html"> - are recognized as Python Software Foundation Fellows - </a> - for their substantial contributions to the Python ecosystem by fostering - Python Discord. - </p> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-red"> - <span class="icon"><i class="fab fa-youtube"></i></span> - </div> - <span class="timeline-date">Mar 21st, 2021</span> - </div> - - <div class="timeline-content content box"> - <h3>Summer Code Jam 2020 Highlights</h3> - <p> - We release a new video to our YouTube showing the best projects from the Summer Code Jam 2020. - Better late than never! - </p> - - <div class="force-aspect-container"> - <iframe class="force-aspect-content" src="https://www.youtube.com/embed/g9cnp4W0P54" frameborder="0" - allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" - allowfullscreen></iframe> - </div> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-purple"> - <span class="icon"><i class="fa fa-comment"></i></span> - </div> - <span class="timeline-date">Mar 13th, 2021</span> - </div> - - <div class="timeline-content content box"> - <h3>New feature: Weekly discussion channel</h3> - <p>Every week (or two weeks), we'll be posting a new topic to discuss in a - channel called <b>#weekly-topic-discussion</b>. Our inaugural topic is a PyCon talk by Anthony Shaw called - <b>Wily Python: Writing simpler and more maintainable Python.</b></a>. - </p> - - <div class="force-aspect-container"> - <iframe class="force-aspect-content" src="https://www.youtube.com/embed/dqdsNoApJ80" frameborder="0" - allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" - allowfullscreen></iframe> - </div> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-pink"> - <span class="icon"><i class="fa fa-microphone"></i></span> - </div> - <span class="timeline-date">Mar 13th, 2021</span> - </div> - - <div class="timeline-content content box"> - <h3>We're on the Teaching Python podcast!</h3> - <p>Leon joins Sean and Kelly on the Teaching Python podcast to discuss how the pandemic has - changed the way we learn, and what role communities like Python Discord can play in this new world. - You can find the episode <a href="https://www.teachingpython.fm/63">at teachingpython.fm</a>. - </p> - - <iframe width="100%" height="166" frameborder="0" scrolling="no" - src="https://player.fireside.fm/v2/UIYXtbeL+qOjGAsKi?theme=dark"></iframe> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-green"> - <span class="icon"><i class="fa fa-microphone"></i></span> - </div> - <span class="timeline-date">Mar 1st, 2021</span> - </div> - - <div class="timeline-content content box"> - <h3>Leon Sandøy appears on Talk Python To Me</h3> - <p>Leon goes on the Talk Python to Me podcast with Michael Kennedy - to discuss the history of Python Discord, the critical importance of culture, and how to run a massive - community. You can find the episode <a href="https://talkpython.fm/episodes/show/305/python-community-at-python-discord"> at talkpython.fm</a>. - </p> - - <iframe width="100%" height="166" scrolling="no" frameborder="no" - src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/996083146&color=ff5500&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false"> - </iframe> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-dark-blue"> - <span class="icon"><i class="fa fa-users"></i></span> - </div> - <span class="timeline-date">Feb 18th, 2021</span> - </div> - - <div class="timeline-content content box"> - <h3>We now have 150,000 members!</h3> - <p>Our growth continues to accelerate.</p> - - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-blue"> - <span class="icon"><i class="fa fa-music"></i></span> - </div> - <span class="timeline-date">February 8th, 2021</span> - </div> - - <div class="timeline-content content box"> - <h3>We release The PEP 8 song</h3> - <p>We release the PEP 8 song on our YouTube channel, which finds tens of - thousands of listeners!</p> - - <div class="force-aspect-container"> - <iframe class="force-aspect-content" src="https://www.youtube.com/embed/hgI0p1zf31k" frameborder="0" - allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" - allowfullscreen></iframe> - </div> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-red"> - <span class="icon"><i class="fa fa-snowflake"></i></span> - </div> - <span class="timeline-date">December 1st - 25th, 2020</span> - </div> - - <div class="timeline-content content box"> - <h3>Advent of Code attracts hundreds of participants</h3> - <p> - A total of 443 Python Discord members sign up to be part of - <a href="https://adventofcode.com/">Eric Wastl's excellent Advent of Code event</a>. - As always, we provide dedicated announcements, scoreboards, bot commands and channels for our members - to enjoy the event in. - </p> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-orange"> - <span class="icon"><i class="fa fa-wrench"></i></span> - </div> - <span class="timeline-date">Nov 29th, 2020</span> - </div> - - <div class="timeline-content content box"> - <h3>We migrate all our infrastructure to Kubernetes</h3> - <p>As our tech stack grows, we decide to migrate all our services over to a - container orchestration paradigm via Kubernetes. This gives us better control and scalability. - <b>Joe Banks</b> takes on the role as DevOps Lead. - </p> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-dark-blue"> - <span class="icon"><i class="fa fa-users"></i></span> - </div> - <span class="timeline-date">Oct 22nd, 2020</span> - </div> - - <div class="timeline-content content box"> - <h3>Python Discord hits 100,000 members!</h3> - <p>Only six months after hitting 40,000 users, we hit 100,000 users. A - monumental milestone, and one we're very proud of. To commemorate - it, we create this timeline.</p> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon has-background-primary"> - <img class="pydis" src="{% static "images/timeline/cd-icon-pydis.svg" %}" alt="Logo"> - </div> - <span class="timeline-date">Oct 21st, 2020</span> - </div> - - <div class="timeline-content content box"> - <h3>Python Discord hosts the 2020 CPython Core Developer Q&A</h3> - <div class="force-aspect-container"> - <iframe class="force-aspect-content" src="https://www.youtube.com/embed/gXMdfBTcOfQ" frameborder="0" - allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" - allowfullscreen></iframe> - </div> - - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-pink"> - <span class="icon"><i class="fa fa-handshake"></i></span> - </div> - <span class="timeline-date">Aug 16th, 2020</span> - </div> - - <div class="timeline-content content box"> - <h3>Python Discord is now the new home of the PyWeek event!</h3> - <p>PyWeek, a game jam that has been running since 2005, joins Python - Discord as one of our official events. Find more information about PyWeek on - <a href="https://pyweek.org/">their official website</a>.</p> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-blue"> - <span class="icon"><i class="fa fa-dice"></i></span> - </div> - <span class="timeline-date">Jul 31st, 2020</span> - </div> - - <div class="timeline-content content box"> - <h3>PyDis summer code jam 2020 with the theme “Early Internet” and Django as the technology</h3> - <p>Sponsored by the Django Software Foundation and JetBrains, the Summer - Code Jam for 2020 attracts hundreds of participants, and sees the creation of some fantastic - projects. Check them out in our judge stream below:</p> - - <div class="force-aspect-container"> - <iframe class="force-aspect-content" src="https://www.youtube.com/embed/OFtm8f2iu6c" frameborder="0" - allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" - allowfullscreen></iframe> - </div> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-red"> - <span class="icon"><i class="fa fa-chart-bar"></i></span> - </div> - <span class="timeline-date">Jun 4th, 2020</span> - </div> - - <div class="timeline-content content box"> - <h3>Python Discord Public Statistics are now live</h3> - <p>After getting numerous requests to publish beautiful data on member - count and channel use, we create <a href="https://stats.pythondiscord.com/">stats.pythondiscord.com</a> for - all to enjoy.</p> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-pink"> - <span class="icon"><i class="fa fa-handshake"></i></span> - </div> - <span class="timeline-date">May 28th, 2020</span> - </div> - - <div class="timeline-content content box"> - <h3>Python Discord is now listed on python.org/community</h3> - <p>After working towards this goal for months, we finally work out an - arrangement with the PSF that allows us to be listed on that most holiest of websites: - https://python.org/. <a href="https://youtu.be/yciX2meIkXI?t=3">There was much rejoicing.</a> - </p> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-green"> - <span class="icon"><i class="fa fa-comments"></i></span> - </div> - <span class="timeline-date">May 25th, 2020</span> - </div> - - <div class="timeline-content content box"> - <h3>ModMail is now live</h3> - <p> - Having originally planned to write our own ModMail bot from scratch, we - come across an exceptionally good <a href="https://github.com/kyb3r/modmail">ModMail bot by - kyb3r</a> and decide to just self-host that one instead. - </p> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-purple"> - <span class="icon"><i class="fa fa-gamepad"></i></span> - </div> - <span class="timeline-date">Apr 17th, 2020</span> - </div> - - <div class="timeline-content content box"> - <h3>PyDis Game Jam 2020 with the “Three of a Kind” theme and Arcade as the technology</h3> - <p>The creator of Arcade, Paul Vincent Craven, joins us as a judge. - Several of the Code Jam participants also end up getting involved contributing to the Arcade - repository.</p> - - <div class="force-aspect-container"> - <iframe class="force-aspect-content" src="https://www.youtube.com/embed/KkLXMvKfEgs" frameborder="0" - allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" - allowfullscreen></iframe> - </div> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-dark-blue"> - <span class="icon"><i class="fa fa-users"></i></span> - </div> - <span class="timeline-date">Apr 14, 2020</span> - </div> - - <div class="timeline-content content box"> - <h3>Python Discord hits 40,000 members, and is now bigger than Liechtenstein.</h3> - <p> - <img src="https://raw.githubusercontent.com/python-discord/branding/main/wallpapers/bigger%20than%20liechtenstein/pydis%20postcard.png"> - </p> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-green"> - <span class="icon"><i class="fa fa-comments"></i></span> - </div> - <span class="timeline-date">Apr 5th, 2020</span> - </div> - - <div class="timeline-content content box"> - <h3>The new help channel system is live</h3> - <p>We release our dynamic help-channel system, which allows you to claim - your very own help channel instead of fighting over the static help channels. We release a <a - href="https://pythondiscord.com/pages/resources/guides/help-channels/">Help Channel Guide</a> to - help our members fully understand how the system works.</p> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-blue"> - <span class="icon"><i class="fa fa-dice"></i></span> - </div> - <span class="timeline-date">Jan 17, 2020</span> - </div> - - <div class="timeline-content content box"> - <h3>PyDis sixth code jam with the theme “Ancient technology” and the technology Kivy</h3> - <p>Our Code Jams are becoming an increasingly big deal, and the Kivy core - developers join us to judge the event and help out our members during the event. One of them, - @tshirtman, even joins our staff!</p> - - <div class="force-aspect-container"> - <iframe class="force-aspect-content" src="https://www.youtube.com/embed/8fbZsGrqBzo" frameborder="0" - allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" - allowfullscreen></iframe> - </div> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-dark-blue"> - <span class="icon"><i class="fa fa-users"></i></span> - </div> - <span class="timeline-date">Dec 22nd, 2019</span> - </div> - - <div class="timeline-content content box"> - <h3>PyDis hits 30,000 members</h3> - <p>More than tripling in size since the year before, the community hits - 30000 users. At this point, we're probably the largest Python chat community on the planet.</p> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon has-background-primary"> - <img class="pydis" src={% static "images/timeline/cd-icon-pydis.svg" %} alt="Logo"> - </div> - <span class="timeline-date">Sept 22nd, 2019</span> - </div> - - <div class="timeline-content content box"> - <h3>Sebastiaan Zeef becomes an owner</h3> - <p>After being a long time active contributor to our projects and the driving - force behind many of our events, Sebastiaan Zeef joins the Owners Team alongside Joe & Leon.</p> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-lime"> - <span class="icon"><i class="fa fa-scroll"></i></span> - </div> - <span class="timeline-date">Oct 26th, 2019</span> - </div> - - <div class="timeline-content content box"> - <h3>The code of conduct is created</h3> - <p>Inspired by the Adafruit, Rust and Django communities, an essential - community pillar is created; Our <a href="https://pythondiscord.com/pages/code-of-conduct/">Code of - Conduct.</a></p> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-orange"> - <span class="icon"><i class="fa fa-code"></i></span> - </div> - <span class="timeline-date">Sep 15, 2019</span> - </div> - - <div class="timeline-content content box"> - <h3>The Django rewrite of pythondiscord.com is now live!</h3> - <p>The site is getting more and more complex, and it's time for a rewrite. - We decide to go for a different stack, and build a website based on Django, DRF, Bulma and - PostgreSQL.</p> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-dark-blue"> - <span class="icon"><i class="fa fa-users"></i></span> - </div> - <span class="timeline-date">Apr 8th, 2019</span> - </div> - - <div class="timeline-content content box"> - <h3>PyDis hits 15,000 members; the “hot ones special” video is released</h3> - <div class="force-aspect-container"> - <iframe class="force-aspect-content" src="https://www.youtube.com/embed/DIBXg8Qh7bA" frameborder="0" - allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" - allowfullscreen></iframe> - </div> - - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-orange"> - <span class="icon"><i class="fa fa-code"></i></span> - </div> - <span class="timeline-date">Dec 19th, 2018</span> - </div> - - <div class="timeline-content content box"> - <h3>django-simple-bulma is released on PyPi</h3> - <p>Our very first package on PyPI, <a - href="https://pypi.org/project/django-simple-bulma/">django-simple-bulma</a> is a package that - sets up the Bulma CSS framework for your Django application and lets you configure everything in - settings.py.</p> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-dark-blue"> - <span class="icon"><i class="fa fa-users"></i></span> - </div> - <span class="timeline-date">Nov 24th, 2018</span> - </div> - - <div class="timeline-content content box"> - <h3>PyDis hits 10,000 members</h3> - <p>We partner with RLBot, move from GitLab to GitHub, and start putting - together the first Advent of Code event.</p> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-blue"> - <span class="icon"><i class="fa fa-dice"></i></span> - </div> - <span class="timeline-date">Oct 1st, 2018</span> - </div> - - <div class="timeline-content content box"> - <h3>First Hacktoberfest PyDis event; @Sir Lancebot is created</h3> - <p>We create a second bot for our community and fill it up with simple, - fun and relatively easy issues. The idea is to create an approachable arena for our members to cut - their open-source teeth on, and to provide lots of help and hand-holding for those who get stuck. - We're training our members to be productive contributors in the open-source ecosystem.</p> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-pink"> - <span class="icon"><i class="fa fa-handshake"></i></span> - </div> - <span class="timeline-date">Jul 10th, 2018</span> - </div> - - <div class="timeline-content content box"> - <h3>PyDis is now partnered with Discord; the vanity URL discord.gg/python is created</h3> - <p>After being rejected for their Partner program several times, we - finally get approved. The recent partnership with the r/Python subreddit plays a significant role in - qualifying us for this partnership.</p> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-dark-blue"> - <span class="icon"><i class="fa fa-users"></i></span> - </div> - <span class="timeline-date">Jun 20th, 2018</span> - </div> - - <div class="timeline-content content box"> - <h3>PyDis hits 5,000 members and partners with r/Python</h3> - <p>As we continue to grow, we approach the r/Python subreddit and ask to - become their official Discord community. They agree, and we become listed in their sidebar, giving - us yet another source of new members.</p> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-pink"> - <span class="icon"><i class="fa fa-handshake"></i></span> - </div> - <span class="timeline-date">Jun 9th, 2018</span> - </div> - - <div class="timeline-content content box"> - <h3>Do You Even Python and PyDis merger</h3> - <p>At this point in time, there are only two serious Python communities on - Discord - Ours, and one called Do You Even Python. We approach the owners of DYEP with a bold - proposal - let's shut down their community, replace it with links to ours, and in return we will let - their staff join our staff. This gives us a big boost in members, and eventually leads to @eivl and - @Mr. Hemlock joining our Admin team</p> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-lime"> - <span class="icon"><i class="fa fa-scroll"></i></span> - </div> - <span class="timeline-date">May 21st, 2018</span> - </div> - - <div class="timeline-content content box"> - <h3>The privacy policy is created</h3> - <p>Since data privacy is quite important to us, we create a privacy page - pretty much as soon as our new bot and site starts collecting some data. To this day, we keep <a - href="https://pythondiscord.com/pages/privacy/">our privacy policy</a> up to date with all - changes, and since April 2020 we've started doing <a - href="https://pythondiscord.notion.site/6784e3a9752444e89d19e65fd4510d8d">monthly data reviews</a>. - </p> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-blue"> - <span class="icon"><i class="fa fa-dice"></i></span> - </div> - <span class="timeline-date">Mar 23rd, 2018</span> - </div> - - <div class="timeline-content content box"> - <h3>First code jam with the theme “snakes”</h3> - <p>Our very first Code Jam attracts a handful of users who work in random - teams of 2. We ask our participants to write a snake-themed Discord bot. Most of the code written - for this jam still lives on in Sir Lancebot, and you can play with it by using the - <code>.snakes</code> command. For more information on this event, see <a - href="https://pythondiscord.com/pages/code-jams/code-jam-1-snakes-bot/">the event page</a></p> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-dark-blue"> - <span class="icon"><i class="fa fa-users"></i></span> - </div> - <span class="timeline-date">Mar 4th, 2018</span> - </div> - - <div class="timeline-content content box"> - <h3>PyDis hits 2,000 members; pythondiscord.com and @Python are live</h3> - <p>The public moderation bot we're using at the time, Rowboat, announces - it will be shutting down. We decide that we'll write our own bot to handle moderation, so that we - can have more control over its features. We also buy a domain and start making a website in Flask. - </p> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon has-background-primary"> - <img class="pydis" src={% static "images/timeline/cd-icon-pydis.svg" %} alt="Logo"> - </div> - <span class="timeline-date">Feb 3rd, 2018</span> - </div> - - <div class="timeline-content content box"> - <h3>Our logo is born. Thanks @Aperture!</h3> - <p style="background-color: #7289DA; border-radius: 10px;"> - <img style="padding-right: 20px;" src="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_banner/logo_site_banner.svg"> - </p> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon pastel-dark-blue"> - <span class="icon"><i class="fa fa-users"></i></span> - </div> - <span class="timeline-date">Nov 10th, 2017</span> - </div> - - <div class="timeline-content content box"> - <h3>Python Discord hits 1,000 members</h3> - <p>Our main source of new users at this point is a post on Reddit that - happens to get very good SEO. We are one of the top 10 search engine hits for the search term - "python discord".</p> - </div> - </div> - - <div class="timeline-item"> - <div class="timeline-icon-date"> - <div class="timeline-icon has-background-primary"> - <img class="pydis" src="{% static "images/timeline/cd-icon-pydis.svg" %}" alt="Logo"> - </div> - <span class="timeline-date">Jan 8th, 2017</span> - </div> - - <div class="timeline-content content box"> - <h3>Python Discord is created</h3> - <p><strong>Joe Banks</strong> becomes one of the owners around 3 days after it - is created, and <strong>Leon Sandøy</strong> (lemon) joins the owner team later in the year, - when the community has around 300 members.</p> - </div> - </div> - - </div> - </section> - - <script src="{% static "js/timeline/main.js" %}"></script> -{% endblock %} diff --git a/pydis_site/templates/timeline/timeline.html b/pydis_site/templates/timeline/timeline.html new file mode 100644 index 00000000..6bd85f31 --- /dev/null +++ b/pydis_site/templates/timeline/timeline.html @@ -0,0 +1,39 @@ +{% extends 'base/base.html' %} +{% load static %} + +{% block title %}Timeline{% endblock %} +{% block head %} + <link rel="stylesheet" href="{% static "css/timeline/timeline.css" %}"> +{% endblock %} + +{% block content %} + {% include "base/navbar.html" %} + + <section class="timeline"> + <div class="container"> + + {% for entry in entries %} + <div class="timeline-item" id="{{ entry.slug }}"> + <div class="timeline-icon-date"> + <div class="timeline-icon {{ entry.icon_color }}"> + {% if entry.icon == "pydis" %} + <img class="pydis" src="{% static "images/timeline/cd-icon-pydis.svg" %}" alt="Logo"> + {% else %} + <span class="icon"><i class="{{ entry.icon }}"></i></span> + {% endif %} + </div> + <span class="timeline-date">{{ entry.date }}</span> + </div> + + <div class="timeline-content content box"> + <h3><a href="#{{ entry.slug }}">{{ entry.title }}</a></h3> + {{ entry.content|safe }} + </div> + </div> + {% endfor %} + + </div> + </section> + + <script src="{% static "js/timeline/main.js" %}"></script> +{% endblock %} diff --git a/pydis_site/urls.py b/pydis_site/urls.py index 0f2f6aeb..799e8600 100644 --- a/pydis_site/urls.py +++ b/pydis_site/urls.py @@ -25,6 +25,7 @@ urlpatterns = ( path('pages/', include('pydis_site.apps.content.urls', namespace='content')), path('resources/', include('pydis_site.apps.resources.urls')), path('events/', include('pydis_site.apps.events.urls', namespace='events')), + path('timeline/', include('pydis_site.apps.timeline.urls', namespace='timeline')), path('', include('pydis_site.apps.home.urls', namespace='home')), ) |