Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
52f285f512 | ||
|
|
b44b2fbfef | ||
|
|
ac14b212f9 | ||
|
|
96d9c6c17d | ||
|
|
c7509ed82d | ||
|
|
34eece39b5 | ||
|
|
809327f49f | ||
|
|
fd0b9a727a | ||
|
|
b648e4bae8 | ||
|
|
85787e4bf3 | ||
|
|
2f1f96a687 | ||
|
|
cf8d7ec529 | ||
|
|
2ad402103a | ||
|
|
d5959263c2 | ||
|
|
aafd276b58 | ||
|
|
beb75a8c67 | ||
|
|
9768bd55ff | ||
|
|
c5db013aa1 | ||
|
|
d5106fa602 | ||
|
|
c65ac9d321 | ||
|
|
9af5deb792 | ||
|
|
fce14edfae | ||
|
|
c308682719 | ||
|
|
c39e26416d | ||
|
|
051257f51b | ||
|
|
5d00bc5beb | ||
|
|
1cfe85607c | ||
|
|
991e1fca02 | ||
|
|
23b97f7510 | ||
|
|
8f918a6a79 | ||
|
|
3523da3a70 | ||
|
|
b54f8b6b95 | ||
|
|
76e0def34a |
@@ -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
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
3.12
|
||||
+4
-4
@@ -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
File diff suppressed because it is too large
Load Diff
+2
-1
@@ -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 = "*"
|
||||
|
||||
+3
-3
@@ -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'éloquence-les-clés-du-succès">L'é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'est-le-futur">Oral - Être chauve c'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'ishikawa">Le diagramme d'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'é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'écouter</li>
|
||||
<li>S'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'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'environnement est primordiale. Dans un monde
|
||||
ou devons faire face, au défi, de la discrimination, devenir chauve c'est supprimer
|
||||
les discriminations de coiffure.
|
||||
Dans un monde où tous va de plus en plus vite, être chauve c'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'argent</li>
|
||||
<li>c'est la solution contre le réchauffement climatique</li>
|
||||
<li>c'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'é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'école</li>
|
||||
<li>La moitié de l'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'identifier les cause profondes d'un dysfonctionnement au sein de la structure.
|
||||
En se posant successivement 5 questions commençant par <strong>Pourquoi</strong>
|
||||
KPI : CA en baisse -> 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'Ishikawa</h2>
|
||||
<ul class="list">
|
||||
<li>Pointer l'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'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>
|
||||
@@ -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")
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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,4 +1,3 @@
|
||||
import os
|
||||
import subprocess
|
||||
|
||||
from django.shortcuts import render
|
||||
|
||||
+11
-1
@@ -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 |
@@ -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,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
@@ -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,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
|
||||
|
||||
Reference in New Issue
Block a user