33 Commits
Author SHA1 Message Date
marc 52f285f512 stick to 3.12
Docker / build (push) Canceled after 0s
Pylint / build (push) Canceled after 0s
2023-11-08 18:31:03 +01:00
marc b44b2fbfef update black 2023-11-08 18:30:05 +01:00
marc ac14b212f9 3.12 2023-11-08 18:27:41 +01:00
marc 96d9c6c17d Revert "python-version actually matters apparently"
This reverts commit 809327f49f.
2023-11-08 18:27:09 +01:00
marc c7509ed82d .python-version 2023-11-08 18:26:47 +01:00
marc 34eece39b5 pyenv version of python 2023-11-08 18:26:18 +01:00
marc 809327f49f python-version actually matters apparently 2023-11-08 18:22:32 +01:00
marc fd0b9a727a Merge branch 'master' into 3.12 2023-11-08 18:17:19 +01:00
marc b648e4bae8 test with CSRF_TRUSTED_ORIGINS 2023-11-08 18:16:34 +01:00
marc 85787e4bf3 https everywhere 2023-11-08 18:11:45 +01:00
marc 2f1f96a687 marcpartensky.com also 2023-11-08 18:07:51 +01:00
marc cf8d7ec529 no json backport necessary anymore 2023-11-08 17:59:02 +01:00
marc 2ad402103a fix url-slash warning 2023-11-08 17:57:19 +01:00
marc d5959263c2 fix default_auto_field warning 2023-11-08 17:54:18 +01:00
marc aafd276b58 http and https 2023-11-08 17:51:15 +01:00
marc beb75a8c67 manage error in layout 2023-11-08 17:47:18 +01:00
marc 9768bd55ff try to make it fail on purpose 2023-11-08 17:38:27 +01:00
marc c5db013aa1 forgot service 2023-11-08 17:24:20 +01:00
marc d5106fa602 docker compose my bad 2023-11-08 17:20:34 +01:00
marc c65ac9d321 its a key 2023-11-08 17:10:12 +01:00
marc 9af5deb792 needs 2023-11-08 17:05:32 +01:00
marc fce14edfae need build and push 2023-11-08 17:04:40 +01:00
marc c308682719 test automatic deployment 2023-11-08 17:03:22 +01:00
marc c39e26416d default layout = mixu radar 2023-11-08 16:48:14 +01:00
marc 051257f51b nodejs 2023-11-08 16:42:04 +01:00
marc 5d00bc5beb add node for fuck sake 2023-11-08 16:41:21 +01:00
marc 1cfe85607c no games 2023-11-08 15:53:17 +01:00
marc 991e1fca02 clean header without demo and blog 2023-11-08 15:50:26 +01:00
marc 23b97f7510 website is a better name 2023-11-08 15:43:26 +01:00
marc 8f918a6a79 little fix 2023-11-08 15:41:13 +01:00
marc 3523da3a70 new cnh 2023-11-06 10:51:06 +01:00
marc b54f8b6b95 update 3.12 2023-11-06 10:43:23 +01:00
marc 76e0def34a 3.9 (#30)
* 3.9

* crispy-bootstrap4

* 3.9 that works

* 3.9 in dockerfile
2023-11-06 10:29:28 +01:00
19 changed files with 654 additions and 745 deletions
+18 -1
View File
@@ -15,7 +15,7 @@ env:
IMAGE_NAME: website
jobs:
build:
build-and-push:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
@@ -49,3 +49,20 @@ jobs:
context: .
push: true
tags: marcpartensky/website:v${{ github.run_number }}.${{ steps.tag.outputs.tag }}
deploy:
runs-on: ubuntu-latest
needs:
- build-and-push
steps:
- name: executing remote ssh commands using password
uses: appleboy/ssh-action@v1.0.0
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.KEY }}
port: ${{ secrets.PORT }}
script: |
cd ~/git/docker/services
docker compose -f website.yml pull
docker compose -f website.yml up -d
+1
View File
@@ -0,0 +1 @@
3.12
+4 -4
View File
@@ -1,4 +1,4 @@
FROM python:3.7.17-alpine as builder
FROM python:3.9-alpine as builder
# Pre installations
RUN apk update
@@ -17,7 +17,7 @@ RUN npm update
RUN npm install
# Image of production
FROM python:3.7.17-alpine
FROM python:3.9-alpine
# FROM alpine
ENV SECRET_KEY=whatever
# ARG timestamp
@@ -29,12 +29,12 @@ ENV SECRET_KEY=whatever
LABEL maintainer="marc.partensky@gmail.com"
LABEL image="https://hub.docker.com/r/marcpartensky/website"
LABEL source="https://github.com/marcpartensky/website"
LABEL link="https://marcpartensky.com"
LABEL website="https://marcpartensky.com"
# Install curl and stuff for pillow
RUN apk update
RUN apk add --update --virtual .tmp libffi-dev build-base linux-headers
RUN apk add python3 curl jpeg-dev zlib-dev py3-pip
RUN apk add python3 curl jpeg-dev zlib-dev py3-pip nodejs
RUN apk add shadow
# Setup home user website
Generated
+351 -608
View File
File diff suppressed because it is too large Load Diff
+2 -1
View File
@@ -5,7 +5,7 @@ description = ""
authors = ["Marc Partensky <marc.partensky@gmail.com>"]
[tool.poetry.dependencies]
python = "^3.7"
python = "^3.12"
Django = "*"
python-dotenv = "*"
channels = "*"
@@ -31,6 +31,7 @@ django-cors-headers = "*"
Pillow = "*"
psycopg2-binary = "*"
whitenoise = "*"
crispy-bootstrap4 = "^2023.1"
[tool.poetry.dev-dependencies]
pytest = "*"
@@ -47,12 +47,12 @@
<div id="app">
<div>403</div>
<div>403 Error this layout is not recognized choose one of those layouts.</div>
<div class="txt">
Theme Forbidden: authorized themes<span class="blink">_</span>
<!-- Theme Forbidden: authorized themes<span class="blink">_</span> -->
<ul>
{% for layout in layouts %}
<li>{{layout}}</li>
<a href=/article/{{article.title}}/{{layout}}><li>{{layout}}</li></a>
{% endfor %}
</ul>
</div>
@@ -0,0 +1,194 @@
{% load static %}<!DOCTYPE html>
<html>
<head>
<title>Cnh_formation</title>
<link href="{% static 'home/assets/img/white-orchid.svg' %}" rel="icon">
<link href="{% static 'home/assets/img/black-orchid.svg' %}" rel="apple-touch-icon">
<link href="{% static 'article/assets/css/main.css' %}" rel="stylesheet">
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="{% static 'article/mixu-radar/css/style.css' %}" />
<link rel="stylesheet" href="{% static 'article/mixu-radar/css/pilcrow.css' %}" />
<link type="text/css" rel="stylesheet" href="{% static 'article/mixu-radar/css/hljs-github.min.css' %}"/>
<script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML"></script>
<script src="https://cdn.jsdelivr.net/npm/node-plantuml@0.9.0/index.min.js"></script>
</head>
<body>
<div style="clear: both;">
<div style="float: left">
{{ view_count }}
<span class="iconify" data-icon="carbon:view" data-inline="false"></span>
{{ like_count }}
<span class="iconify" data-icon="fluent-thumb-like-16-regular" data-inline="false"></span>
{{ dislike_count }}
<span class="iconify" data-icon="fluent:thumb-dislike-24-regular"data-inline="false"></span>
<script src="https://code.iconify.design/1/1.0.7/iconify.min.js"></script>
</div>
<div style="float: right">
<small style="text-align: right">{{ created }}</small>
{% if update_count > 0 %}
<small> V{{ update_count }}</small>
{% endif %}
</div>
</div>
<div id="toc">
<div id="toc-inner">
<a class="back" class="container" href="{% url 'article' %}"><p>Back to articles</p></a><div class="fade_rule"></div><ul class="nav nav-list">
<li class="sidebar-header-1"><a href="#l&#x27;éloquence-les-clés-du-succès">L&#x27;éloquence les clés du succès</a></li>
<li class="sidebar-header-2"><a href="#dates">Dates</a></li>
<li class="sidebar-header-2"><a href="#structurer-son-discours">Structurer son discours</a></li>
<li class="sidebar-header-2"><a href="#10-règles">10 règles</a></li>
<li class="sidebar-header-2"><a href="#oral---être-chauve-c&#x27;est-le-futur">Oral - Être chauve c&#x27;est le futur</a></li>
<li class="sidebar-header-1"><a href="#kpi">Kpi</a></li>
<li class="sidebar-header-2"><a href="#kpi-en-entreprises">Kpi en entreprises</a></li>
<li class="sidebar-header-3"><a href="#performance-business---satisfaction-client">Performance business - Satisfaction client</a></li>
<li class="sidebar-header-3"><a href="#performance-financière-et-opérationnel---cash">Performance financière et opérationnel - Cash</a></li>
<li class="sidebar-header-3"><a href="#motivation-et-engagement-des-troupes---satisfaction-staff">Motivation et engagement des troupes - Satisfaction staff</a></li>
<li class="sidebar-header-2"><a href="#description-du-sujet">Description du sujet</a></li>
<li class="sidebar-header-3"><a href="#exemples">Exemples</a></li>
<li class="sidebar-header-2"><a href="#la-méthode-des-5-pourquoi">La méthode des 5 pourquoi</a></li>
<li class="sidebar-header-2"><a href="#swot">SWOT</a></li>
<li class="sidebar-header-2"><a href="#le-diagramme-d&#x27;ishikawa">Le diagramme d&#x27;Ishikawa</a></li>
<li class="sidebar-header-2"><a href="#la-méthode-qqoqcp">La méthode QQOQCP</a></li>
<li class="sidebar-header-2"><a href="#pour-résumer">Pour résumer</a></li>
</ul>
</div>
</div>
<div id="wrapper">
<div id="header">
</div>
<div class="clear"></div>
<div id="main">
<div id="content" class="post"><h1 id="léloquence-les-clés-du-succès"><a class="header-link" href="#léloquence-les-clés-du-succès"></a>L&#39;éloquence les clés du succès</h1>
<h2 id="dates"><a class="header-link" href="#dates"></a>Dates</h2>
<p>Cicéron - 63 av jc
Martin Luther King - 1963</p>
<p>Ethos - 55% : Gestes, intonation
Pathos - 40% :<br>Logos - 5% :</p>
<h2 id="structurer-son-discours"><a class="header-link" href="#structurer-son-discours"></a>Structurer son discours</h2>
<ul class="list">
<li>Introduction</li>
<li>Contexte</li>
<li>Argumentation</li>
<li>Conclusion</li>
</ul>
<h2 id="10-règles"><a class="header-link" href="#10-règles"></a>10 règles</h2>
<ul class="list">
<li>Écrire son discours</li>
<li>Enregistrer son discours pour l&#39;écouter</li>
<li>S&#39;adapter à son audience</li>
<li>Connaître son discours</li>
<li>Gérer son rythme</li>
<li>Pieds au sol tu ancreras</li>
<li>Sourire</li>
<li>Faire des gestes</li>
<li>Supprimer les tics</li>
<li>Prendre du plaisir</li>
</ul>
<h2 id="oral---être-chauve-cest-le-futur"><a class="header-link" href="#oral---être-chauve-cest-le-futur"></a>Oral - Être chauve c&#39;est le futur</h2>
<p>Dans un monde ou le capillaire est capital, unissons-nous pour changer les choses!
et rejoignez-nous dans la chauveté.
Pourquoi être chauve en 2021? En 2021 dans un monde ou le réchauffement climatique est
une problématique majeure et où préserver l&#39;environnement est primordiale. Dans un monde
ou devons faire face, au défi, de la discrimination, devenir chauve c&#39;est supprimer
les discriminations de coiffure.
Dans un monde où tous va de plus en plus vite, être chauve c&#39;est garder du temps pour soi.</p>
<p>Pour conclure, être chauve est la clé du succès.</p>
<ul class="list">
<li>réchauffement climatique</li>
<li>économiser le champoin écologique</li>
<li>gain de temps</li>
<li>gain d&#39;argent</li>
<li>c&#39;est la solution contre le réchauffement climatique</li>
<li>c&#39;est pour se réunir pour avoir un point en commun</li>
</ul>
<h1 id="kpi"><a class="header-link" href="#kpi"></a>Kpi</h1>
<p>Comment mieux piolter sa stratégie grâce aux KPI en période de crise</p>
<h2 id="kpi-en-entreprises"><a class="header-link" href="#kpi-en-entreprises"></a>Kpi en entreprises</h2>
<h3 id="performance-business---satisfaction-client"><a class="header-link" href="#performance-business---satisfaction-client"></a>Performance business - Satisfaction client</h3>
<ul class="list">
<li>CA</li>
<li>Nobre d&#39;études</li>
<li>Délais</li>
<li>Taux de transformation</li>
<li>Satisfaction client</li>
<li>KPI sur la sous / co-traitance</li>
</ul>
<h3 id="performance-financière-et-opérationnel---cash"><a class="header-link" href="#performance-financière-et-opérationnel---cash"></a>Performance financière et opérationnel - Cash</h3>
<ul class="list">
<li>Taux marge</li>
<li>Rentabilité globale</li>
<li>Cash / trésorerie</li>
<li>Conformité</li>
<li>Délais sur les retours clients (factures, trésorerie)</li>
</ul>
<h3 id="motivation-et-engagement-des-troupes---satisfaction-staff"><a class="header-link" href="#motivation-et-engagement-des-troupes---satisfaction-staff"></a>Motivation et engagement des troupes - Satisfaction staff</h3>
<ul class="list">
<li>Satisfaction consultant</li>
<li>Satisfaction du staff</li>
<li>Turnovers VS rétention</li>
</ul>
<h2 id="description-du-sujet"><a class="header-link" href="#description-du-sujet"></a>Description du sujet</h2>
<p>Comment mieux piloter sa stratégie grâce aux KPI en <strong>période de crise</strong></p>
<h3 id="exemples"><a class="header-link" href="#exemples"></a>Exemples</h3>
<ul class="list">
<li>Départ du président ou du trésorier</li>
<li>Client fidèle qui dépose le bilan</li>
<li>Perte du soutien de l&#39;école</li>
<li>La moitié de l&#39;effectif qui part</li>
</ul>
<h2 id="la-méthode-des-5-pourquoi"><a class="header-link" href="#la-méthode-des-5-pourquoi"></a>La méthode des 5 pourquoi</h2>
<p>Outil de résolution de probleme qui permet d&#39;identifier les cause profondes d&#39;un dysfonctionnement au sein de la structure.
En se posant successivement 5 questions commençant par <strong>Pourquoi</strong>
KPI : CA en baisse -&gt; Moins de clients - Nouveau concurrent</p>
<h2 id="swot"><a class="header-link" href="#swot"></a>SWOT</h2>
<ul class="list">
<li>Strengths</li>
<li>Weaknesses</li>
<li>Opportunities</li>
<li>Threats</li>
</ul>
<h2 id="le-diagramme-dishikawa"><a class="header-link" href="#le-diagramme-dishikawa"></a>Le diagramme d&#39;Ishikawa</h2>
<ul class="list">
<li>Pointer l&#39;effet</li>
<li>Repérer les causes sur lesquelles votre JE peut agir</li>
<li>Dresser les causes</li>
<li>Hiérarchiser les causes</li>
</ul>
<h2 id="la-méthode-qqoqcp"><a class="header-link" href="#la-méthode-qqoqcp"></a>La méthode QQOQCP</h2>
<ul class="list">
<li>Qui ?</li>
<li>Quoi ?</li>
<li>Où ?</li>
<li>Quand ?</li>
<li>Comment ?</li>
<li>Pourquoi ?</li>
</ul>
<h2 id="pour-résumer"><a class="header-link" href="#pour-résumer"></a>Pour résumer</h2>
<ul class="list">
<li>La méthode des 5 pourquoi</li>
<li>La matrice SWOT</li>
<li>The Ecosystem Canva</li>
<li>Le diagramme d&#39;Ishikawa</li>
<li>La méthode QQOQCP</li>
</ul>
</div>
</div>
<div class="clear">
</div>
<div id="footer">
</div>
</div>
<script src="{% static 'home/assets/vendor/jquery/jquery.min.js' %}"></script>
<script src="{% static 'home/assets/vendor/waypoints/jquery.waypoints.min.js' %}"></script>
<script src="{% static 'article/assets/js/main.js' %}"></script>
</body>
<a href="#" class="back-to-top" style="display: inline; position:fixed; right:15px; bottom:15px; z-index:99999;"> <i style="display: flex; align-items: center; justify-content: center; font-size: 24px; width: 40px; height: 40px; border-radius: 4px; background: #7cc576; color: #fff; transition: all 0.4s;" class="icofont-simple-up"></i></a>
</html>
@@ -1,69 +0,0 @@
{% load static %}<!DOCTYPE html>
<html>
<head>
<title>Test-markdown</title>
<link href="{% static 'home/assets/img/white-orchid.svg' %}" rel="icon">
<link href="{% static 'home/assets/img/black-orchid.svg' %}" rel="apple-touch-icon">
<link href="{% static 'article/assets/css/main.css' %}" rel="stylesheet">
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="{% static 'article/mixu-radar/css/style.css' %}" />
<link rel="stylesheet" href="{% static 'article/mixu-radar/css/pilcrow.css' %}" />
<link type="text/css" rel="stylesheet" href="{% static 'article/mixu-radar/css/hljs-github.min.css' %}"/>
<script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML"></script>
<script src="https://cdn.jsdelivr.net/npm/node-plantuml@0.9.0/index.min.js"></script>
</head>
<body>
<div style="clear: both;">
<div style="float: left">
{{ view_count }}
<span class="iconify" data-icon="carbon:view" data-inline="false"></span>
{{ like_count }}
<span class="iconify" data-icon="fluent-thumb-like-16-regular" data-inline="false"></span>
{{ dislike_count }}
<span class="iconify" data-icon="fluent:thumb-dislike-24-regular"data-inline="false"></span>
<script src="https://code.iconify.design/1/1.0.7/iconify.min.js"></script>
</div>
<div style="float: right">
<small style="text-align: right">{{ created }}</small>
{% if update_count > 0 %}
<small> V{{ update_count }}</small>
{% endif %}
</div>
</div>
<div id="toc">
<div id="toc-inner">
<a class="back" class="container" href="{% url 'article' %}"><p>Back to articles</p></a><div class="fade_rule"></div><ul class="nav nav-list">
<li class="sidebar-header-1"><a href="#this-is-a-test-of-markdown">This is a test of markdown</a></li>
</ul>
</div>
</div>
<div id="wrapper">
<div id="header">
</div>
<div class="clear"></div>
<div id="main">
<div id="content" class="post"><p>#!/usr/bin/env ./upload.py</p>
<h1 id="this-is-a-test-of-markdown"><a class="header-link" href="#this-is-a-test-of-markdown"></a>This is a test of markdown</h1>
<p>Hope you like this test of markdown.
This is the first file send by using shebang script.</p>
</div>
</div>
<div class="clear">
</div>
<div id="footer">
</div>
</div>
<script src="{% static 'home/assets/vendor/jquery/jquery.min.js' %}"></script>
<script src="{% static 'home/assets/vendor/waypoints/jquery.waypoints.min.js' %}"></script>
<script src="{% static 'article/assets/js/main.js' %}"></script>
</body>
<a href="#" class="back-to-top" style="display: inline; position:fixed; right:15px; bottom:15px; z-index:99999;"> <i style="display: flex; align-items: center; justify-content: center; font-size: 24px; width: 40px; height: 40px; border-radius: 4px; background: #7cc576; color: #fff; transition: all 0.4s;" class="icofont-simple-up"></i></a>
</html>
+4 -2
View File
@@ -16,6 +16,8 @@ from django.views.decorators.csrf import csrf_exempt
from home.context import home, hydrate
from rich import print
DEFAULT_LAYOUT="mixu-radar"
def get_article_context(request):
"""Create the context of the article view."""
@@ -129,7 +131,7 @@ def read(request, title: str):
raise Http404("This article was not found.")
print("GET:", request.GET)
layout = request.GET.get("layout") or article.layout or "marc"
layout = request.GET.get("layout") or article.layout or DEFAULT_LAYOUT
layouts = os.listdir("./node_modules/markdown-styles/layouts")
article.read = datetime.datetime.now()
@@ -138,7 +140,7 @@ def read(request, title: str):
if layout not in layouts:
print(layout, "not in ", layouts)
return render(request, "article/403.html", dict(layouts=layouts))
return render(request, "article/nolayout.html", dict(article=article, layouts=layouts))
if title.endswith(".md"):
return HttpResponse(article.content, content_type="text/markdown")
+12 -1
View File
@@ -8,6 +8,7 @@ https://docs.djangoproject.com/en/2.1/ref/settings/
"""
import os
import sys
from urllib.parse import urlparse
# import dj_database_url
@@ -36,7 +37,6 @@ HEROKU_SERVER = os.environ.get("HEROKU_SERVER")
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
print("BASE_DIR:", BASE_DIR)
# Allowing cors
CORS_ORIGIN_ALLOW_ALL = False
@@ -56,6 +56,13 @@ SECRET_KEY = os.environ.get("SECRET_KEY")
ALLOWED_HOSTS = [
"localhost",
"marcpartensky.com",
# "http://marcpartensky.com",
# "https://marcpartensky.com",
]
CSRF_TRUSTED_ORIGINS = [
"http://marcpartensky.com",
"https://marcpartensky.com",
]
# Application definition
@@ -92,6 +99,7 @@ INSTALLED_APPS = [
"django.contrib.staticfiles",
"storages",
"crispy_forms",
"crispy_bootstrap4",
"django_extensions",
# allauth stuff
"django.contrib.sites",
@@ -306,6 +314,7 @@ STATICFILES_STORAGE = "whitenoise.storage.CompressedManifestStaticFilesStorage"
MEDIA_URL = "/media/"
MEDIA_ROOT = os.path.join(BASE_DIR, "media")
CRISPY_ALLOWED_TEMPLATE_PACKS = "bootstrap4"
CRISPY_TEMPLATE_PACK = "bootstrap4"
LOGIN_REDIRECT_URL = "profile"
@@ -503,4 +512,6 @@ Q_CLUSTER = {
},
}
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
PANDOC_API_URL = os.environ.get("PANDOC_API_URL") or "https://pandoc.marcpartensky.com"
+12 -12
View File
@@ -41,23 +41,23 @@
<li class="nav-item">
<a class="nav-link" href="{% url 'about' %}">About</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'blog-home' %}">Blog</a>
</li>
<!-- <li class="nav-item"> -->
<!-- <a class="nav-link" href="{% url 'blog-home' %}">Blog</a> -->
<!-- </li> -->
<!-- <li class="nav-item"> -->
<!-- <a class="nav-link" href="% url 'planning' %">Planning</a> -->
<!-- </li> -->
<li class="nav-item">
<a class="nav-link" href="{% url 'first-site' %}">First Site</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'game' %}">Games</a>
</li>
<!-- <li class="nav-item"> -->
<!-- <a class="nav-link" href="{% url 'game' %}">Games</a> -->
<!-- </li> -->
<li class="nav-item">
<a class="nav-link" href="{% url 'touch-typing' %}">Touch Typing</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'cv' %}">CV</a>
<a class="nav-link" href="{% url 'cv' %}">Resume</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
@@ -111,13 +111,13 @@
</br>
<div class="container" style="text-align: center">
<a target="_blank" href="https://www.facebook.com/marc.partensky/" class="fa fa-facebook"></a>
<a target="_blank" href="https://facebook.com/marc.partensky/" class="fa fa-facebook"></a>
<a target="_blank" href="https://github.com/marcpartensky/" class="fa fa-github"></a>
<a target="_blank" href="https://www.linkedin.com/in/marc-partensky/" class="fa fa-linkedin"></a>
<a target="_blank" href="https://linkedin.com/in/marc-partensky/" class="fa fa-linkedin"></a>
<a target="_blank" href="https://twitter.com/MarcPartensky/" class="fa fa-twitter"></a>
<a target="_blank" href="https://www.reddit.com/user/Marc-Partensky/" class="fa fa-reddit"></a>
<a target="_blank" href="https://www.youtube.com/channel/UCGC4Tnr_j87F2sq-s6vWFGA" class="fa fa-youtube"></a>
<a target="_blank" href="https://www.instagram.com/marcpartensky/" class="fa fa-instagram"></a>
<a target="_blank" href="https://reddit.com/user/Marc-Partensky/" class="fa fa-reddit"></a>
<a target="_blank" href="https://youtube.com/channel/UCGC4Tnr_j87F2sq-s6vWFGA" class="fa fa-youtube"></a>
<a target="_blank" href="https://instagram.com/marcpartensky/" class="fa fa-instagram"></a>
</div>
<footer id="basefooter" class="mainfooter" role="contentinfo">
+1 -1
View File
@@ -158,7 +158,7 @@
<div width="100%" data-aos="fade-up">
<div class="count-box">
<img width="100%" src="http://ghchart.rshah.org/marcpartensky" alt="Marc Partensky's Github chart" />
<img width="100%" src="https://ghchart.rshah.org/marcpartensky" alt="Marc Partensky's Github chart" />
</div>
</div>
<!---->
-1
View File
@@ -1,4 +1,3 @@
import os
import subprocess
from django.shortcuts import render
+11 -1
View File
@@ -6,10 +6,20 @@ if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "django_project.settings")
try:
from django.core.management import execute_from_command_line
from django.db import utils
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)
try:
execute_from_command_line(sys.argv)
except utils.OperationalError as e:
# Log the error or perform necessary actions
print(f"OperationalError occurred: {e}")
# Optionally, you can choose to exit the application or raise an exception to halt the execution
# raise e # This will re-raise the exception and halt the application
import sys
sys.exit(1) # This will exit the application with an error code
Binary file not shown.

After

Width:  |  Height:  |  Size: 270 KiB

+37 -37
View File
@@ -13,49 +13,49 @@
<li class="drop-down"><a href="/">Explore</a>
<ul>
{% if not user.is_authenticated %}
<li><a href="{% url 'login' %}">Login</a></li>
<li><a href="{% url 'register' %}">Register</a></li>
{% else %}
<li><a href="{% url 'logout' %}">Logout</a></li>
{% endif %}
<li class="drop-down"><a href="{% url 'demo' %}">Demos</a>
<ul>
{% for demo in demos %}
<li><a href="/demo/{{ demo }}">{{ demo }}</a></li>
{% empty %}
<li>No demo loaded.</li>
{% endfor %}
</ul>
</li>
{% if not user.is_authenticated %}
<li><a href="{% url 'login' %}">Login</a></li>
<li><a href="{% url 'register' %}">Register</a></li>
{% else %}
<li><a href="{% url 'logout' %}">Logout</a></li>
{% endif %}
<!-- <li class="drop-down"><a href="{% url 'demo' %}">Demos</a> -->
<!-- <ul> -->
<!-- {% for demo in demos %} -->
<!-- <li><a href="/demo/{{ demo }}">{{ demo }}</a></li> -->
<!-- {% empty %} -->
<!-- <li>No demo loaded.</li> -->
<!-- {% endfor %} -->
<!-- </ul> -->
<!-- </li> -->
<li class="drop-down"><a href="{% url 'article' %}">Articles</a>
<ul>
{% for article in articles %}
<li><a href="/article/{{ article }}">{{ article }}</a></li>
{% empty %}
<li>No article loaded.</li>
{% endfor %}
{% for article in articles %}
<li><a href="/article/{{ article }}">{{ article }}</a></li>
{% empty %}
<li>No article loaded.</li>
{% endfor %}
</ul>
</li>
</li>
<li><a href="{% url 'touch-typing' %}">Touch typing</a></li>
<!-- <li><a href="% url 'planning' %">Planning</a></li> -->
<li><a href="{% url 'first-site' %}">First site</a></li>
<li class="drop-down"><a href="{% url 'game' %}">Games</a>
<ul>
{% for game in games %}
<li><a href="/game/{{ game }}">{{ game }}</a></li>
{% empty %}
<li>No game loaded.</li>
{% endfor %}
</ul>
</li>
<li><a href="{% url 'blog-home' %}">Blog</a></li>
<li class="drop-down"><a href="{% url 'cv' %}">Curriculum Vitae</a>
<ul>
<li><a href="/cv/1p">1 page version</a></li>
<li><a href="/cv/2p">2 pages version</a></li>
</ul>
</li>
<!-- <li class="drop-down"><a href="{% url 'game' %}">Games</a> -->
<!-- <ul> -->
<!-- {% for game in games %} -->
<!-- <li><a href="/game/{{ game }}">{{ game }}</a></li> -->
<!-- {% empty %} -->
<!-- <li>No game loaded.</li> -->
<!-- {% endfor %} -->
<!-- </ul> -->
<!-- </li> -->
<!-- <li><a href="{% url 'blog-home' %}">Blog</a></li> -->
<!-- <li class="drop-down"><a href="{% url 'cv' %}">Resume</a> -->
<!-- <ul> -->
<!-- <li><a href="/cv/1p">1 page version</a></li> -->
<!-- <li><a href="/cv/2p">2 pages version</a></li> -->
<!-- </ul> -->
<!-- </li> -->
<!-- <li class="drop-down"><a href="#">Projects</a> -->
<!-- <ul> -->
<!-- <li><a href="#">Not</a></li> -->
+1 -1
View File
@@ -1,6 +1,6 @@
{% extends "layout/home.html" %}
{% block content %}
<link href='http://fonts.googleapis.com/css?family=Roboto' rel='stylesheet' type='text/css'>
<link href='https://fonts.googleapis.com/css?family=Roboto' rel='stylesheet' type='text/css'>
<style>
body {
+2 -2
View File
@@ -5,7 +5,7 @@ urlpatterns = [
path("urls", views.urls, name="urls"),
path("requests", views.requests, name="requests"),
path("u", views.url, name="url-simple-u"),
path("/", views.url, name="url-simple-slash"),
path("/<str:route>", views.url, name="url-slash"),
path("", views.url, name="url-simple-slash"),
path("<str:route>", views.url, name="url-slash"),
path("u<str:route>", views.url, name="url"),
]
+1 -1
View File
@@ -1,7 +1,7 @@
from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
from django_jsonfield_backport.models import JSONField
from django.db.models import JSONField
# from . import article
from article.models import ArticleLayout