Compare commits

..

10 commits

Author SHA1 Message Date
33268ee859
Merge branch 'fix_sidebar' 2024-11-30 01:52:24 +01:00
8752197c2c
Fix sidebar
It is not entirely fixed, but it's at least generated from django data
now. Should make it fairly easier to make it behave better.
2024-11-30 01:50:45 +01:00
0b3b0b9f07
Provide basic info on courses (and other services) 2023-06-22 22:01:44 +02:00
3455ffa89f
Make the page presentable. 2023-06-21 15:09:51 +02:00
Marcel Plch
31779c2a61 Restore some good stuff. 2023-06-21 10:26:36 +02:00
Marcel Plch
07ea4f1ca2 Recover old static files.
There's nothing wrong about them.
Let's just recover and tweak them instead
of a rewrite.
2023-06-21 07:55:19 +02:00
833d3142d8
The past sometimes refuses to let go.
That's why we have the delete button.
2022-10-24 21:49:50 +00:00
536009589d
Remove traces of the old self. 2022-10-24 21:46:46 +00:00
cd7691df9e
Delete all.
To create new stuff,
you must first let old stuff go.
2022-10-24 21:34:08 +00:00
Marcel Plch
a5f15f88cd
Fix eons long mistake with button pointer 2022-04-28 23:44:41 +02:00
10 changed files with 250 additions and 228 deletions

View file

@ -125,6 +125,7 @@ h4 {
padding: 1%; padding: 1%;
padding-top: 0.6%; padding-top: 0.6%;
padding-bottom: 0.6%; padding-bottom: 0.6%;
cursor: pointer;
} }
@media only screen and (max-width: 604px) { @media only screen and (max-width: 604px) {

View file

@ -19,13 +19,13 @@ function navbar_click() {
nav.classList.add("navbar-active"); nav.classList.add("navbar-active");
nav.classList.remove("navbar"); nav.classList.remove("navbar");
// TODO: This breaks with every new page added // TODO: This breaks with every new page added
nav.children[4].innerHTML = "<" nav.children[3].innerHTML = "<"
nav.state.open = true; nav.state.open = true;
} }
else { else {
nav.classList.remove("navbar-active"); nav.classList.remove("navbar-active");
nav.classList.add("navbar"); nav.classList.add("navbar");
nav.children[4].innerHTML = ">" nav.children[3].innerHTML = ">"
nav.state.open = false; nav.state.open = false;
} }
} }

167
base_app/templates/CV.html Normal file
View file

@ -0,0 +1,167 @@
{% extends "layout.html" %}
{% load static %}
{% block content %}
<div class="page">
<h1 id="marcel-plch">Marcel Plch</h1>
<p><img src="{% static "base_app/img/me.jpg" %}" width="125" /></p>
<h2 id="work-experience">Work Experience</h2>
<h3 id="comprimato-systems-ltd.">Comprimato Systems Ltd.</h3>
<ul class="incremental">
<li>2017 Jul - 2017 Aug</li>
</ul>
<p>My first job during summer before I went to third grade of high
school. Here, I have learned most of my C++ skills. I was working on
multimedia codec live transcoder, where my most important role was to
wrap a C library x264 into a C++ project. Aside from this, I was given
small side-tasks like tweaking logger or fixing a small bug.</p>
<h3 id="red-hat-czech-s.r.o.">Red Hat Czech s.r.o.</h3>
<ul class="incremental">
<li>2017 Sep - 2020 Oct</li>
</ul>
<h4 id="internship">Internship</h4>
<p>Most of my experience overall comes from this employment. I started
here as an intern in the Python maintenance team, where I made
connections during previous year by working on open-source projects (PEP
547 and a semestral work in cooperation with Red Hat).</p>
<p>During my internship, I was working on patches for the cpython
interpreter. This included bugfixes and working on Python enhancement
proposals (later on as PEPs). Both PEPs I have worked on are linked
below.</p>
<p>First PEP I was working on is supposed to allow running C modules the
same way one can run a common .py file. This PEP had to be deferred
until the internal mechanics are prepared for this.</p>
<p>The second PEP is also about C modules, here the goal was to allow
the extension modules to implement classes the same way they work in
Python. Before this PEP, C-implemented Python classes had no access to
global module memory. This often caused hackish approach that usually
resulted in memory leaks.</p>
<h4 id="employment">Employment</h4>
<p>A year into my internship, I was hired as a RHEL/Fedora packager at
the same team. My responsibilities included RPM packaging, bugfixing,
software maintenance, rebuilding new versions and making sure nothing is
broken.</p>
<p>Bugfixing was probably the most common responsibility. Aside from
this, I was working on fixing CVEs (security vulnerabilities),
submitting updates to the distribution, tweaking software to be
FIPS-compliant and if there was enough time, I continued my work on my
PEPs.</p>
<h3 id="comprimato-systems-ltd.-1">Comprimato Systems Ltd.</h3>
<ul class="incremental">
<li>2021 Mar - 2021 May</li>
</ul>
<p>This company grew since the time I last worked here, I was hired as a
Developer in QA, my responsibility was to work on QA tools for the main
product of the company. The expectations from each side didnt quite
meet, so it didnt take long before this cooperation got terminated.</p>
<h3 id="tramex-rail-s.r.o.">Tramex Rail s.r.o.</h3>
<ul class="incremental">
<li>2022 Apr - 2022 Sep</li>
</ul>
<p>I was primarily tasked with developing user web interface (Django) to
already exisitng solutions and embedded firmware for new hardware.</p>
<p>The firmware consisted of Linux system + proprietary layers from
manufacturers, on top of which we could build our solutions to meet
customers (mostly České Dráhy) demands.</p>
</div>
<div class="page">
<h2 id="education">Education</h2>
<ul class="incremental">
<li>Střední škola informatiky, poštovnictví a finančnictví, Brno,
příspěvková organizace
<ul class="incremental">
<li>High school of informatics, postal and financial services, Brno</li>
<li>2015 - 2019</li>
</ul></li>
</ul>
<h3 id="unfinished-attempts">Unfinished attempts</h3>
<ul class="incremental">
<li>Fakulta informatiky Masarykovy univerzity
<ul class="incremental">
<li>Faculty of Informatics, Masaryk University</li>
<li>2021</li>
</ul></li>
<li>University of Highlands and Islands, Perth college, Scotland
<ul class="incremental">
<li>2019</li>
</ul></li>
</ul>
<h2 id="conference-attendance">Conference Attendance</h2>
<ul class="incremental">
<li>Linux Days 2016</li>
<li>PyCon CZ 2018</li>
<li>PyCon CZ 2019</li>
<li>EuroPython 2019</li>
<li>Flock (Fedora Linux distribution conference)</li>
</ul>
</div>
<div class="page">
<h2 id="skills">Skills</h2>
<h3 id="programming">Programming</h3>
<p>Designing algorithms and solutions to logical problems is a very
fundamental concept in solving any problem in (not just) software. Its
programmers responsibility to design a sturdy and reliable code, as
even the most careful user may get compromised, if the development
process is underestimated.</p>
<p>Languages I know:</p>
<ul class="incremental">
<li>C (Advanced)</li>
<li>Python (Advanced)</li>
<li>C++ (Intermediate-advanced)</li>
<li>Java (Intermediate)</li>
<li>C# (Intermediate</li>
<li>Rust (Basic)</li>
<li>Go (Basic)</li>
</ul>
<h3 id="project-maintenance">Project maintenance</h3>
<p>Most of my work experience comes from Red Hat, which is a company
selling support for their enterprise solutions. Selling support means a
great effort being put into maintenance of the products.</p>
<p>I have worked at the Python maintenance team, which means I know the
internals of the cpython interpreter and I am able to quickly learn a
new library or Python project.</p>
<h3 id="operating-systems">Operating Systems</h3>
<p>As a huge enthusiast into open software, free operating systems are
of great importance to me. Considering knowledge about internals of how
computers work an important subject, I have learned many useful skills
like system administrations, setting up permissions securely, working
with sensitive data, setting a server up for a specific purpose etc.</p>
<h3 id="computer-networks">Computer Networks</h3>
<p>One computer may never solve a problem efficiently. Thus it is
crucial to know how to make them communicate. By working with git,
secure communication channels, webservers, multimedia codecs, etc., I
have learned much useful information from practice (opening up sockets,
securing them, selecting correct protocol…) on top of theoretical
knowledge being taught at schools like IPv4 and basics of IPv6, TCP/IP,
etc.</p>
<h3 id="public-speaking">Public Speaking</h3>
<p>One of my favorite semi-IT tasks is giving talks about topics I find
useful or interesting. I often gave talks at some conferences and local
Python meetups. I attended some Toastmasters sessions, so I could get
better at public speaking. Unfortunately, before I could utilize these
new skills, the COVID crisis terminated my public speaking for a
while.</p>
</div>
<div class="page">
<h2 id="interests">Interests</h2>
<ul class="incremental">
<li>Free software</li>
<li>Ethics in computing</li>
<li>Cybersecurity</li>
<li>IT in politics</li>
<li>Chess</li>
<li>Philosophy</li>
</ul>
<h2 id="contact">Contact</h2>
<ul class="incremental">
<li>E-mail: dormouse@plch.xyz / marcel.plch@protonmail.com</li>
<li>Website: https://plch.xyz (inactive)</li>
</ul>
<h2 id="links-to-see">Links to see</h2>
<ul class="incremental">
<li>Gitea: https://gitea.plch.xyz</li>
<li>PEP 547: https://www.python.org/dev/peps/pep-0547/</li>
<li>PEP 573: https://www.python.org/dev/peps/pep-0573/</li>
</ul>
</div>
{% endblock %}

View file

@ -1,104 +0,0 @@
{% extends "layout.html" %}
{% load static %}
{% block content %}
<div class="page">
<h1 id="marcel-plch">Marcel Plch</h1>
<p><img src="{% static "base_app/img/me.jpg" %}" width="125" /></p>
<h2 id="work-experience">Work Experience</h2>
<h3 id="comprimato-systems-ltd.">Comprimato Systems Ltd.</h3>
<ul>
<li>2017 Jul - 2017 Aug</li>
</ul>
<p>My first job during summer before I went to third grade of high school. Here, I have learned most of my C++ skills. I was working on multimedia codec live transcoder, where my most important role was to wrap a C library x264 into a C++ project. Aside from this, I was given small side-tasks like tweaking logger or fixing a small bug.</p>
<h3 id="red-hat-czech-s.r.o.">Red Hat Czech s.r.o.</h3>
<ul>
<li>2017 Sep - 2020 Oct</li>
</ul>
<h4 id="internship">Internship</h4>
<p>Most of my experience overall comes from this employment. I started here as an intern in the Python maintenance team, where I made connections during previous year by working on open-source projects (PEP 547 and a semestral work in cooperation with Red Hat).</p>
<p>During my internship, I was working on patches for the cpython interpreter. This included bugfixes and working on Python enhancement proposals (later on as PEPs). Both PEPs I have worked on are linked below.</p>
<p>First PEP I was working on is supposed to allow running C modules the same way one can run a common .py file. This PEP had to be deferred until the internal mechanics are prepared for this.</p>
<p>The second PEP is also about C modules, here the goal was to allow the extension modules to implement classes the same way they work in Python. Before this PEP, C-implemented Python classes had no access to global module memory. This often caused hackish approach that usually resulted in memory leaks.</p>
<h4 id="employment">Employment</h4>
<p>A year into my internship, I was hired as a RHEL/Fedora packager at the same team. My responsibilities included RPM packaging, bugfixing, software maintenance, rebuilding new versions and making sure nothing is broken.</p>
<p>Bugfixing was probably the most common responsibility. Aside from this, I was working on fixing CVEs (security vulnerabilities), submitting updates to the distribution, tweaking software to be FIPS-compliant and if there was enough time, I continued my work on my PEPs.</p>
<h3 id="comprimato-systems-ltd.-1">Comprimato Systems Ltd.</h3>
<ul>
<li>2021 Mar - 2021 May</li>
</ul>
<p>This company grew since the time I last worked here, I was hired as a Developer in QA, my responsibility was to work on QA tools for the main product of the company. The expectations from each side didnt quite meet, so it didnt take long before this cooperation got terminated.</p>
</div>
<div class="page">
<h2 id="education">Education</h2>
<ul>
<li>Fakulta informatiky Masarykovy univerzity
<ul>
<li>Faculty of Informatics, Masaryk University</li>
<li>2021 - 2026?</li>
</ul></li>
<li>University of Highlands and Islands, Perth college
<ul>
<li>2019</li>
</ul></li>
<li>Střední škola informatiky, poštovnictví a finančnictví, Brno, příspěvková organizace
<ul>
<li>High school of informatics, postal and financial services, Brno</li>
<li>2015 - 2019</li>
</ul></li>
</ul>
<h2 id="conference-attendance">Conference Attendance</h2>
<ul>
<li>Linux Days 2016</li>
<li>PyCon CZ 2018</li>
<li>PyCon CZ 2019</li>
<li>EuroPython 2019</li>
<li>Flock 2019 (Fedora Linux distribution conference)</li>
</ul>
<h2 id="skills">Skills</h2>
<h3 id="programming">Programming</h3>
<p>Designing algorithms and solutions to logical problems is a very fundamental concept in solving any problem in (not just) software. Its programmers responsibility to design a sturdy and reliable code, as even the most careful user may get compromised, if the development process is underestimated.</p>
<p>Languages I know:</p>
<ul>
<li>C (Advanced)</li>
<li>Python (Advanced)</li>
<li>C++ (Intermediate-advanced)</li>
<li>Java (Intermediate)</li>
<li>C# (Intermediate</li>
<li>Rust (Basic)</li>
<li>Go (Basic)</li>
</ul>
</div>
<div class="page">
<h3 id="project-maintenance">Project maintenance</h3>
<p>Most of my work experience comes from Red Hat, which is a company selling support for their enterprise solutions. Selling support means a great effort being put into maintenance of the products.</p>
<p>I have worked at the Python maintenance team, which means I know the internals of the cpython interpreter and I am able to quickly learn a new library or Python project.</p>
<h3 id="operating-systems">Operating Systems</h3>
<p>As a huge enthusiast into open software, free operating systems are of great importance to me. Considering knowledge about internals of how computers work an important subject, I have learned many useful skills like system administrations, setting up permissions securely, working with sensitive data, setting a server up for a specific purpose etc.</p>
<h3 id="computer-networks">Computer Networks</h3>
<p>One computer may never solve a problem efficiently. Thus it is crucial to know how to make them communicate. By working with git, secure communication channels, webservers, multimedia codecs, etc., I have learned much useful information from practice (opening up sockets, securing them, selecting correct protocol…) on top of theoretical knowledge being taught at schools like IPv4 and basics of IPv6, TCP/IP, etc.</p>
<h3 id="public-speaking">Public Speaking</h3>
<p>One of my favorite semi-IT tasks is giving talks about topics I find useful or interesting. I often gave talks at some conferences and local Python meetups. I attended some Toastmasters sessions, so I could get better at public speaking. Unfortunately, before I could utilize these new skills, the COVID crisis terminated my public speaking for a while.</p>
<h2 id="interests">Interests</h2>
<ul>
<li>Free software</li>
<li>Ethics in computing</li>
<li>Cybersecurity</li>
<li>IT in politics</li>
<li>Philosophy</li>
</ul>
<h2 id="contact">Contact</h2>
<ul>
<li>E-mail: marcel.plch at protonmail.com</li>
<li>Matrix: <span class="citation" data-cites="dormouse">@dormouse</span><span class="citation" data-cites="matrix.org">@matrix.org</span></li>
</ul>
<h2 id="links-to-see">Links to see</h2>
<ul>
<li><a href="https://github.com/Dormouse759/">GitHub</a></li>
<li><a href="https://www.python.org/dev/peps/pep-0547/">PEP 547</a></li>
<li><a href="https://www.python.org/dev/peps/pep-0573/">PEP 573</a></li>
</ul>
</div>
{% endblock %}

View file

@ -5,56 +5,54 @@
<div class="page"> <div class="page">
<h1> Homepage </h1> <h1> Homepage </h1>
<h2> UNDER MAINTENANCE </h2>
<p> Courses section coming soon™! </p>
<p> Use e-mail for now. ;) </p>
<h2> Welcome to my website </h2> <h2> Welcome to my website </h2>
<h3> Marcel Plch </h3> <img src="{% static "base_app/img/me.jpg" %}" width="125" />
<h3> Marcel Plch </h3>
<img src="{% static "base_app/img/me.jpg" %}" width="125" />
<p> <p>
I am an open-source enthusiast and love teaching people important stuff I am an open-source enthusiast that likes to share his knowledge
about technology. Currently, I'm trying to start up a small business with the world.
based on web development and software support. There should be a
section about this somewhere around here soon™!
</p> </p>
<h3> Open Source </h3> <h3> Courses </h3>
<p> <p>
I contribute to a few projects. I offer lessons in
</p> <ul>
<ul> <li>Python;</li>
<li><a href="https://www.python.org/">Python</a></li> <li>C;</li>
<li><a href="https://getfedora.org/">Fedora Project</a></li> <li>Linux;</li>
<li><a href="https://wiki.cachyos.org/">CachyOS</a></li> <li>Bash;</li>
<li><a href="https://www.blender.org/">Blender</a></li> <li>public speaking;</li>
</ul> <li>and more.</li>
<p> </ul>
You can check out most of my contributions on <a href="https://github.com/Dormouse759/">my GitHub</a>
</p>
<h3> Cryptography </h3>
<p>
Cryptography is what keeps all of our data secure. My solutions don't
take security lightly. In any way you ever communicate with me, there
either already is some kind of cryptography invloved, or you can
request to validate my message using GPG. <b>Never</b> trust any
message from me that looks important, if it's not cryptographically
easy to verify.
</p>
<h3> Ethical software </h3>
<p>
Ethical software are programs that are written and deployed in such a way
that they have no way of containing any malicious code. All of the software
I recomment and/or provide here on my website are open-source programs.
</p> </p>
<p> <p>
Open-source Remote sessions sure are a thing.
is the first fundamental stone of ethical software, it makes the source code
available to all programmers around the world so they can download, modify, redistribute
and check what the software is doing.
</p> </p>
<p> <p>
There are more ways to ensure that your software is ethical and even Own section coming soon, for now, use e-mail at the very bottom
<i>proprietary</i> software <b>may</b> be ethical. Read some of my of this page!
articles on my website (to be added) to learn what ethical software is.
Hope to see you soon.
</p>
<h3> Services </h3>
<p>
Software development, consultations, data management, hosting and tasks
related to websites.
</p>
<p>
^ Already have that and need a tester?
<h3> Other stuff </h3>
<p>
Check the code at my <a href="https://gitea.plch.xyz">Gitea</a>, this
website is completely open and you can use my code for your website!
</p> </p>
<h3> </h3>
</div> </div>
{% endblock %} {% endblock %}

View file

@ -4,7 +4,7 @@
{% load static %} {% load static %}
<title>{{ title }}</title> <title>{{ title }}</title>
<link rel="icon" type="image/png" href=""> <link rel="icon" type="image/png" href="{% static "base_app/img/dormouse.svg" %}">
{# REQUIRED META TAGS #} {# REQUIRED META TAGS #}
<meta charset="utf-8"> <meta charset="utf-8">
@ -18,32 +18,18 @@
{% endblock %} {% endblock %}
</head> </head>
<body>
<body onload="init()"> <body onload="init()">
{# NAVBAR #} {# NAVBAR #}
<section class="navbar" id="nav"> <section class="navbar" id="nav">
{% for path in paths %}
<a href="{{ path.href }}">
<div class="navbar-block">
{{ path.name }}
</div>
</a>
{% endfor %}
<a href="/">
<div class="navbar-block">
Home
</div>
</a>
<a href="/lorem-ipsum">
<div class="navbar-block">
Lorem Ipsum
</div>
</a>
<a href="/curriculum-vitae">
<div class="navbar-block">
Curriculum Vitae
</div>
<a href="/ukraine">
<div class="navbar-block">
<img src="{% static "base_app/img/ukraine.png" %}" width="16" style="display:inline">
Ukraine
</div>
</a>
<div class="navbar-button" <div class="navbar-button"
onclick="navbar_click()" onclick="navbar_click()"
> >
@ -60,16 +46,7 @@
<footer> <footer>
<div class="ftr"> <div class="ftr">
<div class="ftr-block"> <div class="ftr-block">
<p><b>E-mail: </b>marcel.plch&nbsp;at&nbsp;protonmail.com</p> <p><b>E-mail: </b>dormouse&nbsp;at&nbsp;plch.xyz</p>
</div>
<div class="ftr-block">
<p><b>Matrix: </b>@dormouse:matrix.org</p>
</div>
<div class="ftr-block">
<p><b>Mastodon: </b>@dormouse@mas.to</p>
</div>
<div class="ftr-block">
<p><b>Jabber/XMPP: </b>@dormouse@plch.xyz</p>
</div> </div>
</div> </div>
<div class="key"> <div class="key">
@ -78,7 +55,6 @@
</div> </div>
</div> </div>
</footer> </footer>
<script src="{% static "base_app/js/master.js" %}"></script> <script src="{% static "base_app/js/master.js" %}"></script>
</body> </body>

View file

@ -1,38 +0,0 @@
{% extends "layout.html" %}
{% block content %}
<div class="page">
<h1>Lorem Ipsum</h1>
<p>
<i>
"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit..."
</i>
</p>
<p>
<i>
"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain..."
</i>
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque a dolor metus. In dapibus pulvinar tortor in sagittis. Nulla vulputate sapien diam, ut faucibus diam ullamcorper quis. Quisque sed suscipit enim, in ultrices erat. Morbi non suscipit erat, et porttitor diam. Mauris tellus sem, interdum vel odio non, fermentum placerat ligula. Integer sagittis, nulla vel dapibus ullamcorper, massa dui varius ante, id ultrices dui est at purus. Integer vehicula risus eget ex lobortis pulvinar. Mauris hendrerit nec nunc id ultricies. Vestibulum vulputate mi in magna sagittis, in elementum justo varius. In cursus sapien venenatis interdum suscipit. Nam ac pretium odio. Donec tempus velit ac enim ultricies, a tincidunt velit iaculis. Proin vel erat dignissim, feugiat odio quis, scelerisque ipsum.
</p>
<p>
Nullam orci sem, condimentum eget diam nec, dapibus tempus justo. Ut porta ex non pulvinar vestibulum. In a ligula condimentum, pharetra metus sed, bibendum dolor. In ornare tellus nec tellus mollis, quis ultrices leo volutpat. Aenean posuere, massa ac tempus varius, ligula sem rhoncus quam, ac lacinia eros lectus varius felis. Nunc dignissim eros porta, maximus augue ac, interdum ipsum. Fusce porta enim vel placerat eleifend. Phasellus id dignissim diam, id venenatis nunc. Etiam pretium dolor ac mi condimentum, ut eleifend neque dapibus. Aenean sit amet ipsum condimentum, volutpat lectus quis, ornare tortor. Donec blandit erat eget egestas sodales. Donec interdum tortor accumsan faucibus porta. Nam placerat facilisis faucibus. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In eu lacus eleifend, condimentum dui quis, vehicula metus.
</p>
<p>
Nunc in ante nisi. Sed pharetra volutpat velit, non accumsan purus. Curabitur sit amet dignissim lacus, sed commodo nisi. Integer sit amet cursus quam. Aliquam congue, ipsum at sagittis vehicula, odio dolor ultrices augue, eu ultricies libero erat fermentum justo. Suspendisse potenti. Fusce semper eget elit accumsan interdum. Sed sed mi sed risus aliquam hendrerit id sodales magna. Aliquam tristique dictum condimentum. In ipsum enim, vestibulum a justo sed, tincidunt iaculis nisl. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Sed lobortis, orci sed auctor bibendum, felis mi varius libero, quis venenatis augue ante nec magna. Pellentesque placerat nunc sed tortor posuere, ut dignissim ante rhoncus. In feugiat, magna non bibendum bibendum, ipsum odio ultricies arcu, id posuere nisi sem sed nisl. Interdum et malesuada fames ac ante ipsum primis in faucibus. Praesent maximus, urna sed dictum imperdiet, purus leo tincidunt dui, eu dignissim arcu urna in nibh.
</p>
<p>
Cras eget molestie enim, eget ultrices nisi. Duis vitae feugiat nibh. Suspendisse nisi ex, condimentum nec venenatis vel, gravida sit amet est. Duis accumsan a est ac ornare. Nam ut ullamcorper ipsum, ac semper mi. Nullam lacinia nisi non pellentesque porta. Vivamus feugiat molestie dapibus. Maecenas mattis sem quis viverra blandit. Maecenas tristique auctor urna. In venenatis libero et tortor sodales, eu lobortis lacus mattis. Curabitur eget efficitur ex, vitae gravida neque. Nulla sed mollis dolor.
</p>
<p>
Donec vulputate, erat sed venenatis lacinia, orci diam porttitor dolor, in vehicula sem ex vel turpis. Sed vitae arcu eu ipsum viverra scelerisque. Donec erat massa, laoreet auctor ipsum ut, fringilla vulputate erat. Praesent non lacus quis odio dignissim imperdiet id eu turpis. Nulla vel ornare ligula. Quisque interdum tempor odio ut vestibulum. Phasellus ante elit, ultrices nec augue quis, faucibus fermentum erat. Ut in mauris vel dui sodales porta.
</p>
</div>
{% endblock %}

View file

@ -16,25 +16,48 @@ def get_domains():
# Create your views here. # Create your views here.
class IndexView(TemplateView):
class GenericView(TemplateView):
def cx_handle_get(self, request, template, *args, **kwargs):
paths = [
{"href": "/",
"name": "Home"},
{"href": "/curriculum-vitae",
"name": "Curriculum Vitae"},
{"href": "/ukraine",
"name": "Ukraine"},
]
return render(request, template, {"paths" : paths})
class IndexView(GenericView):
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
return render(request, "index.html", {}) paths = [
{"href": "/",
"name": "Home"},
{"href": "/curriculum-vitae",
"name": "Curriculum Vitae"},
{"href": "/ukraine",
"name": "Ukraine"},
class CVView(TemplateView): ]
return self.cx_handle_get(request, "index.html", {"paths" : paths})
class CVView(GenericView):
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
return render(request, "cv.html", {}) return self.cx_handle_get(request, "CV.html", {})
class LoremView(TemplateView): class LoremView(GenericView):
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
return render(request, "lorem.html", {}) return self.cx_handle_get(request, "lorem.html", {})
class UkraineView(TemplateView): class UkraineView(GenericView):
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
domains = get_domains() domains = get_domains()
return render(request, "ukraine.html", {"domains" : domains}) return self.cx_handle_get(request, "ukraine.html", {"domains" : domains})

View file

@ -1,5 +1,6 @@
[ [
"https://aeronet.news/", "https://aeronet.news/",
"https://www.spd.cz/",
"https://lenta.ru/", "https://lenta.ru/",
"https://ria.ru/", "https://ria.ru/",
"https://ria.ru/lenta/", "https://ria.ru/lenta/",

View file

@ -18,9 +18,7 @@ from django.urls import path
from base_app.views import IndexView, LoremView, CVView, UkraineView from base_app.views import IndexView, LoremView, CVView, UkraineView
urlpatterns = [ urlpatterns = [
path('admin/', admin.site.urls),
path('', IndexView.as_view()), path('', IndexView.as_view()),
path('lorem-ipsum/', LoremView.as_view()),
path('curriculum-vitae/', CVView.as_view()), path('curriculum-vitae/', CVView.as_view()),
path('ukraine/', UkraineView.as_view()), path('ukraine/', UkraineView.as_view()),
] ]