diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..78ec9b2 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,11 @@ +repos: + - repo: git@github.com:astral-sh/ruff-pre-commit + rev: v0.4.4 + hooks: + - id: ruff + + - repo: git@github.com:pre-commit/pre-commit-hooks + rev: v4.5.0 + hooks: + - id: end-of-file-fixer + - id: trailing-whitespace diff --git a/Dockerfile b/Dockerfile index ff6e66a..94f3258 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,12 +1,17 @@ -FROM python:3.8.1 +FROM python:3.8.18 -RUN curl -sL https://deb.nodesource.com/setup_12.x | bash - -RUN apt-get -y install nodejs -RUN apt-get -y install libcairo-dev +# Install dependencies for node +RUN apt-get update && \ + apt-get install -y curl ca-certificates && \ + curl -fsSL https://deb.nodesource.com/setup_22.x | bash - && \ + apt-get install -y nodejs && \ + node --version && npm --version +RUN apt-get -y install libcairo-dev RUN mkdir -p /usr/src/app COPY package.json /usr/src/app/ +RUN npm --version RUN npm install --prefix /usr/src/app/ COPY requirements.txt /usr/src/app diff --git a/LICENSE b/LICENSE index 1d2f9c3..c798866 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2021 pythonph +Copyright (c) 2025 pythonph Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/common/templates/base.html b/common/templates/base.html index 8c112d1..6ac9e2b 100644 --- a/common/templates/base.html +++ b/common/templates/base.html @@ -12,7 +12,8 @@ {% block css %} - + + {% compress css %} {% endcompress %} diff --git a/docker-compose-dev.yml b/docker-compose-dev.yml index bede0c3..ff77733 100644 --- a/docker-compose-dev.yml +++ b/docker-compose-dev.yml @@ -1,38 +1,41 @@ -source: - image: pythonph/pythonph - volumes: - - /usr/src/app/venv - - /usr/src/app/node_modules - - /usr/src/app/bower_components - - /usr/src/app/static - environment: - - ENV=DEV - env_file: dev.env - command: bin/install +version: "3" -db: - image: postgres:latest - environment: - - ENV=DEV - env_file: dev.env - -web: - image: pythonph/pythonph - volumes_from: - - source - environment: - - ENV=DEV - env_file: dev.env - ports: - - 8000:8000 - links: - - db:db - command: gunicorn -b 0.0.0.0:8000 --access-logfile - --error-logfile - pythonph.wsgi - -nginx: - build: nginx - ports: - - 8080:80 - - 443:443 - links: - - web:web +services: + source: + image: pythonph/pythonph + volumes: + - /usr/src/app/venv + - /usr/src/app/node_modules + - /usr/src/app/bower_components + - /usr/src/app/static + environment: + - ENV=DEV + env_file: dev.env + command: bin/install + + db: + image: postgres:latest + environment: + - ENV=DEV + env_file: dev.env + + web: + image: pythonph/pythonph + volumes_from: + - source + environment: + - ENV=DEV + env_file: dev.env + ports: + - 8000:8000 + links: + - db:db + command: gunicorn -b 0.0.0.0:8000 --access-logfile - --error-logfile - pythonph.wsgi + + nginx: + build: nginx + ports: + - 8080:80 + - 443:443 + links: + - web:web diff --git a/docker-compose-prod.yml b/docker-compose-prod.yml index b6fa456..c1d0626 100644 --- a/docker-compose-prod.yml +++ b/docker-compose-prod.yml @@ -1,28 +1,32 @@ -source: - image: pythonph/pythonph - volumes: - - /usr/src/app/venv - - /usr/src/app/node_modules - - /usr/src/app/bower_components - - /usr/src/app/static - environment: - - ENV=PROD - env_file: prod.env - command: bin/install +version: "3" -web: - image: pythonph/pythonph - volumes_from: - - source - environment: - - ENV=PROD - env_file: prod.env - command: gunicorn -b 0.0.0.0:8000 --access-logfile - --error-logfile - pythonph.wsgi - -nginx: - build: nginx - ports: - - 80:80 - - 443:443 - links: - - web:web +services: + source: + image: pythonph/pythonph + volumes: + - /usr/src/app/venv + - /usr/src/app/node_modules + - /usr/src/app/bower_components + - /usr/src/app/static + environment: + - ENV=PROD + env_file: prod.env + command: bin/install + + web: + image: pythonph/pythonph + volumes_from: + - source + environment: + - ENV=PROD + env_file: prod.env + command: gunicorn -b 0.0.0.0:8000 --access-logfile - --error-logfile - pythonph.wsgi + + nginx: + build: nginx + ports: + - 80:80 + - 443:443 + links: + - web:web + \ No newline at end of file diff --git a/landing/admin.py b/landing/admin.py index 7db14e9..006b70e 100644 --- a/landing/admin.py +++ b/landing/admin.py @@ -1,4 +1,3 @@ -from adminsortable2.admin import SortableAdminMixin from django.contrib import admin from django.utils.encoding import force_text @@ -42,7 +41,7 @@ def get_queryset(self, request): @admin.register(Section) -class SectionAdmin(SortableAdminMixin, admin.ModelAdmin): +class SectionAdmin(admin.ModelAdmin): search_fields = ('name',) list_filter = (IsArchivedListFilter,) diff --git a/landing/static/landing/assets/img/people/aira.jpg b/landing/static/landing/assets/img/people/aira.jpg new file mode 100644 index 0000000..92187e2 Binary files /dev/null and b/landing/static/landing/assets/img/people/aira.jpg differ diff --git a/landing/static/landing/assets/img/people/alex.jpg b/landing/static/landing/assets/img/people/alex.jpg new file mode 100644 index 0000000..5150bc7 Binary files /dev/null and b/landing/static/landing/assets/img/people/alex.jpg differ diff --git a/landing/static/landing/assets/img/people/cyrus.jpg b/landing/static/landing/assets/img/people/cyrus.jpg new file mode 100644 index 0000000..9f0c6bb Binary files /dev/null and b/landing/static/landing/assets/img/people/cyrus.jpg differ diff --git a/landing/static/landing/assets/img/people/freilla.png b/landing/static/landing/assets/img/people/freilla.png new file mode 100644 index 0000000..cb7eff9 Binary files /dev/null and b/landing/static/landing/assets/img/people/freilla.png differ diff --git a/landing/static/landing/assets/img/people/lalaine.jpg b/landing/static/landing/assets/img/people/lalaine.jpg new file mode 100644 index 0000000..3e73f22 Binary files /dev/null and b/landing/static/landing/assets/img/people/lalaine.jpg differ diff --git a/landing/static/landing/assets/img/people/rodney.jpg b/landing/static/landing/assets/img/people/rodney.jpg new file mode 100644 index 0000000..54bc84c Binary files /dev/null and b/landing/static/landing/assets/img/people/rodney.jpg differ diff --git a/landing/templates/landing/footer.html b/landing/templates/landing/footer.html new file mode 100644 index 0000000..bec635e --- /dev/null +++ b/landing/templates/landing/footer.html @@ -0,0 +1,36 @@ +{% load static %} + + diff --git a/landing/templates/landing/gallery1.html b/landing/templates/landing/header/gallery1.html similarity index 99% rename from landing/templates/landing/gallery1.html rename to landing/templates/landing/header/gallery1.html index 561acbe..f35fdd2 100644 --- a/landing/templates/landing/gallery1.html +++ b/landing/templates/landing/header/gallery1.html @@ -1,4 +1,4 @@ -{% load static from staticfiles %} +{% load static %}
+ PythonPH is a non-stock, non-profit, volunteer-run + organization dedicated to support and facilitate the + growth of the community of Python programmers in the + Philippines. +
+- PythonPH is a non-stock, non-profit, volunteer-run - organization dedicated to support and facilitate the - growth of the community of Python programmers in the - Philippines. -
+ + + {% include "landing/header/index.html" %} - -- We believe that we create small dents of improvement - in the PH Tech industry when we foster environments - that inspire and motivate individuals to be technically competent - and passionate about their craft. -
- - Get to know us - -- We truly believe and support the impact and innovation that Python has - brought in the whole technology industry as it continues to power systems, products, and services of companies such - as Google, YouTube, NASA, Disney, Instagram, Disqus, Pinterest and Bitbucket. -
-- Python is also used as a business solution for Web Development, Automation, Monitoring, - Artificial Intelligence, Data Science, Cloud Computing, and more. -
-- In June 31-July 1 2012, we held the first - ever PyCon Philippines. -
-- Today, we organize the yearly PyCon and also - hold regular meet-ups, public python trainings and - kaizend throughout the year. -
-- Whether you're new to programming, an experienced - practitioner, or just plain curious what this Python - programming language is about, you're much welcome - to join this community! -
-- The goal of the conference is to provide - a venue where the Python programming - language and surrounding technologies - can be explored, discussed and - exercised. -
-- We gather software engineers, - programming enthusiasts, startup - founders, corporate IT decision makers, - students and IT educators in a 2-day - event where we can collaborate and learn - from each other. -
-- Regular meetups where professionals and - enthusiasts share and talk about Python. -
-- Low-cost Python Trainings covering - various topics. -
-- A mastermind group and exclusive - training program for core volunteers. - This program is aimed to develop - technically competent leaders and - systematize succession plans for - PythonPH. -
-- The goal of the conference is to provide a - venue where the Python programming language - and surrounding technologies can be - explored, discussed and exercised. -
-- We gather software engineers, programming - enthusiasts, startup founders, corporate IT - decision makers, students and IT educators - in a 2-day event where we can collaborate - and learn from each other. -
-- Regular meetups where professionals and - enthusiasts share and talk about Python. -
-- Low-cost Python Trainings covering various - topics. -
-- A mastermind group and exclusive training - program for core volunteers. This program is - aimed to develop technically competent - leaders and systematize succession plans for - PythonPH. -
-
+
+
+
+
+
+ + We believe that we create small dents of improvement in the PH Tech industry when we foster environments that inspire and motivate individuals to be technically competent and passionate about their craft. +
+ + Get to know us + ++ In June 31-July 1 2012, we held the first ever PyCon Philippines. +
++ Today, we organize the yearly PyCon and also hold regular meet-ups, public python trainings and kaizend throughout the year. +
++ Whether you're new to programming, an experienced practitioner, or just plain curious what this Python programming language is about, you're much welcome to join this community! +
++ The goal of the conference is to provide a venue where the Python programming language and surrounding technologies can be explored, discussed and exercised. +
++ We gather software engineers, programming enthusiasts, startup founders, corporate IT decision makers, students and IT educators in a 2-day event where we can collaborate and learn from each other. +
++ Regular meetups where professionals and enthusiasts share and talk about Python. +
++ Low-cost Python Trainings covering various topics. +
++ A mastermind group and exclusive training program for core volunteers. This program is aimed to develop technically competent leaders and systematize succession plans for PythonPH. +
++ The goal of the conference is to provide a venue where the Python programming language and surrounding technologies can be explored, discussed and exercised. +
++ We gather software engineers, programming enthusiasts, startup founders, corporate IT decision makers, students and IT educators in a 2-day event where we can collaborate and learn from each other. +
++ Regular meetups where professionals and enthusiasts share and talk about Python. +
++ Low-cost Python Trainings covering various topics. +
++ A mastermind group and exclusive training program for core volunteers. This program is aimed to develop technically competent leaders and systematize succession plans for PythonPH. +
++ We believe Python changes lives. +
+ ++ It gives everyday people the tools to create, solve problems, and share ideas with the world—while also powering industries from AI and data science to cloud computing and automation. +
+ ++ From students building their first websites, to small teams streamlining workflows, to researchers and companies tackling big challenges—Python is there. +
+ ++ Simple enough to start with, powerful enough to shape the future. + And at PythonPH, we see it every day in our community: people learning, teaching, and creating together. That’s the heart of why we do what we do. +
+