diff --git a/blog/context_processor.py b/blog/context_processor.py new file mode 100644 index 00000000..226a26a7 --- /dev/null +++ b/blog/context_processor.py @@ -0,0 +1,18 @@ +import datetime as dt + +from django.http import HttpRequest + + +def global_data(request: HttpRequest) -> dict[str, dict[str, str]]: + start_year = 2011 + start_python = 2014 + current_year = dt.datetime.now().year + data = { + "linkedin": "https://www.linkedin.com/in/eduzen/", + "github": "https://github.com/eduzen", + "email": "mailto:me@eduzen.com.ar", + "telegram": "https://t.me/eduzen", + "years_in_python": current_year - start_python, + "years_of_experience": current_year - start_year, + } + return {"global_data": data} diff --git a/blog/filters.py b/blog/filters.py new file mode 100644 index 00000000..08531e4e --- /dev/null +++ b/blog/filters.py @@ -0,0 +1,17 @@ +import django_filters +from django.contrib.postgres.search import SearchVector +from django.db.models import QuerySet + +from blog.models import Post + + +class PostFilter(django_filters.FilterSet): + q = django_filters.CharFilter(method="filter_search", label="Search") + + class Meta: + model = Post + fields = [] + + def filter_search(self, queryset: QuerySet[Post], name: str, value: str) -> QuerySet[Post]: + search_vector = SearchVector("text", "title", "pompadour") + return queryset.annotate(search=search_vector).filter(search=value) diff --git a/blog/locale/es/LC_MESSAGES/django.po b/blog/locale/es/LC_MESSAGES/django.po index 9516052b..5e1d070f 100644 --- a/blog/locale/es/LC_MESSAGES/django.po +++ b/blog/locale/es/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-08-17 17:10-0300\n" +"POT-Creation-Date: 2023-08-22 09:44-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME Eduardo Enriquez\n" "Language-Team: LANGUAGE \n" @@ -34,81 +34,99 @@ msgstr "etiqueta" msgid "tags" msgstr "etiquetas" -#: blog/templates/blog/about.html:5 +#: blog/templates/blog/_about.html:4 msgid "About me" msgstr "Acerca de mi" -#: blog/templates/blog/about.html:12 -#, python-format +#: blog/templates/blog/_about.html:9 +msgid "Hello World! My name is Eduardo and I'm a developer 💻." +msgstr "¡Hola Mundo! Mi nombre es Eduardo y soy un developer 💻." + +#: blog/templates/blog/_about.html:10 msgid "" -"Hello World! My name is Eduardo and I'm a developer 💻. I've been working ⛏️ " -"with Python 🐍\n" -" for the last %(years)s years, most of the time working as a backend " -"developer with Django. Currently living in Buenos Aires, München,\n" -" Amsterdam, while working from home 🏠." +"I've been working ⛏️ with Python 🐍 for the last %(years)s years, most of the " +"time working as a backend developer with Django." msgstr "" -"¡Hola Mundo! Mi nombre es Eduardo y soy un desarrollador 💻. He estado " -"trabajando ⛏️ con Python 🐍\n" -" durante los últimos %(years)s años, mayormente como desarrollador " -"backend con Django. Actualmente vivo en Buenos Aires, Múnich,\n" -" Ámsterdam, mientras trabajo desde casa 🏠." +"He estado trabajando ⛏️ con Python 🐍 durante los últimos %(years)s años, " +"mayormente como desarrollador backend con Django." + +#: blog/templates/blog/_about.html:11 +msgid "Currently living in" +msgstr "Actualmente vivo en" + +#: blog/templates/blog/_about.html:11 +msgid "Buenos Aires" +msgstr "Buenos Aires" + +#: blog/templates/blog/_about.html:11 +msgid "München" +msgstr "Munich" + +#: blog/templates/blog/_about.html:11 +msgid "Amsterdam" +msgstr "Ámsterdam" + +#: blog/templates/blog/_about.html:11 +msgid "while working from home." +msgstr "mientras trabajo desde mi casa 🏠." -#: blog/templates/blog/about.html:21 +#: blog/templates/blog/_about.html:18 msgid "Click to read the long version..." msgstr "Clic para leer la versión extendida..." -#: blog/templates/blog/about.html:45 +#: blog/templates/blog/_about.html:42 msgid "A bit more about me 😉, so here it goes:" msgstr "Un poco más sobre mi 😉, así que aquí va:" -#: blog/templates/blog/about.html:47 -#, python-format +#: blog/templates/blog/_about.html:44 +msgid "I'm Eduardo Enriquez, aka eduzen." +msgstr "Soy Eduardo Enriquez, alias eduzen." + +#: blog/templates/blog/_about.html:45 msgid "" -"I'm Eduardo Enriquez, aka eduzen. I've been working in the IT industry for " -"quite a long time, %(years)s years and counting,\n" -" mostly as a backend developer 💻. But I also have some " -"experience working as a team leader. Python 🐍, Django 🟩, and Flask are the " -"main technologies 🧪 that I've been working with.\n" -" Naturally, I have some experience 💡 with other things like " -"Javascript, Docker 🐳, Redis 🟥, RabbitMQ 🐰, Celery 🌿, and Linux 🐧." +"I've been working in the IT industry for quite a long time, %(years)s years " +"and counting,mostly as a backend developer 💻." msgstr "" -"Soy Eduardo Enríquez, también conocido como eduzen. He estado trabajando en " -"la industria de TI durante bastante tiempo, %(years)s años y contando,\n" -" principalmente como desarrollador backend 💻. Pero también " -"tengo algo de experiencia trabajando como líder de equipo. Python 🐍, Django " -"🟩 y Flask son las principales tecnologías 🧪 con las que he estado " -"trabajando.\n" -" Naturalmente, tengo algo de experiencia 💡 con otras cosas como " -"Javascript, Docker 🐳, Redis 🟥, RabbitMQ 🐰, Celery 🌿 y Linux 🐧." - -#: blog/templates/blog/about.html:52 +"He estado trabajando en la industria IT durante bastante tiempo, %(years)s años y " +"contando, principalmente como desarrollador backend 💻." + +#: blog/templates/blog/_about.html:46 +msgid "But I also have some experience working as a team leader." +msgstr "Pero también tengo algo de experiencia trabajando como líder técnico de equipos." + +#: blog/templates/blog/_about.html:47 +msgid "" +"Python 🐍, Django 🟩, and Flask are the main technologies 🧪 that I've been " +"working with." +msgstr "" +" Python 🐍, Django 🟩 y Flask 🧪 son las principales tecnologías con " +"las que trabajo." + +#: blog/templates/blog/_about.html:48 msgid "" -"\n" -" You can check my code at https://github.com/eduzen/. There " -"you can find some bots\n" -" like the one that I have for Telegram, eduzen_bot 🤖 " -"(you can talk to it following this link:\n" -" bot ). Or you can find the source code of this website at\n" -" https://github.com/eduzen/website." +"Naturally, I have some experience 💡 with other things like Javascript, " +"Docker 🐳, Redis 🟥, RabbitMQ 🐰, Celery 🌿, and Linux 🐧." msgstr "" -"\n" -" Puedes revisar mi código en https://github.com/eduzen/. Allí " -"puedes encontrar algunos bots\n" -" como el que tengo para Telegram, eduzen_bot 🤖 (puedes " -"hablar con él siguiendo este enlace:\n" -" bot ). O puedes encontrar el código fuente de este sitio " -"web en https://github.com/eduzen/website." - -#: blog/templates/blog/about.html:61 +"Naturalmente, tengo algo de experiencia 💡 con otras cosas como Javascript, " +"Docker 🐳, Redis 🟥, RabbitMQ 🐰, Celery 🌿 y Linux 🐧." + +#: blog/templates/blog/_about.html:51 +msgid "You can check my code at " +msgstr "Puedes revisar mi código en " + +#: blog/templates/blog/_about.html:52 +msgid "There you can find some bots like the one that I have for Telegram," +msgstr "Ahí puedes encontrar algunos bots como el que tengo para Telegram," + +#: blog/templates/blog/_about.html:54 +msgid "(you can talk to it following this link:" +msgstr "(puedes hablar con él siguiendo este enlace:" + +#: blog/templates/blog/_about.html:56 +msgid "Or you can find the source code of this website at" +msgstr "O puedes encontrar el código fuente de este sitio web en" + +#: blog/templates/blog/_about.html:62 #, python-format msgid "" "Besides computers, I like good music, books, philosophy, movies, series, and " @@ -120,7 +138,7 @@ msgstr "" "algunos teclados mecánicos (¡ahora uso un Leo pold 75 %%)! Pero también " "tengo un Keychron K12." -#: blog/templates/blog/about.html:64 +#: blog/templates/blog/_about.html:65 msgid "" "Some people find it weird that I have a bachelor's degree in philosophy from " "the University of Buenos Aires 🇦🇷. But I think that rational thinking is " @@ -130,7 +148,7 @@ msgstr "" "de la Universidad de Buenos Aires 🇦🇷. Pero creo que el pensamiento racional " "es alguna de las cosas que comparten mi profesión y mis estudios." -#: blog/templates/blog/about.html:65 +#: blog/templates/blog/_about.html:66 msgid "" "In general, philosophy has shaped my analytical thinking and fostered my " "curiosity. Some of my favorite philosophers are Nietzsche, Descartes, and " @@ -140,7 +158,7 @@ msgstr "" "curiosidad. Algunos de mis filósofos favoritos son Nietzsche, Descartes y " "Foucault." -#: blog/templates/blog/about.html:66 +#: blog/templates/blog/_about.html:67 msgid "" "Writers... many; Jorge Luis Borges, Ursula K. Le Guin, Arthur C. Clarke, and " "many more..." @@ -148,7 +166,7 @@ msgstr "" "Escritores... muchos; Jorge Luis Borges, Ursula K. Le Guin, Arthur C. Clarke " "y muchos más..." -#: blog/templates/blog/about.html:69 +#: blog/templates/blog/_about.html:70 msgid "" "Last but not least, I'm passionate about teaching 👨🏽‍🏫. I think my background " "in philosophy has helped me to be a better teacher." @@ -156,7 +174,7 @@ msgstr "" "Por último, pero no menos importante, soy un apasionado de la enseñanza 👨🏽‍🏫. " "Creo que mi formación en filosofía me ha ayudado a ser un mejor profesor." -#: blog/templates/blog/about.html:70 +#: blog/templates/blog/_about.html:71 msgid "" "I've been teaching in the past, and I'm looking forward to doing it more " "often in the IT field." @@ -164,41 +182,29 @@ msgstr "" "He estado enseñando en el pasado y espero hacerlo más a menudo en el campo " "de la tecnología." -#: blog/templates/blog/about.html:75 +#: blog/templates/blog/_about.html:76 msgid "If you want to contact me, you can do it through this " msgstr "Si quieres contactarme, puedes hacerlo a través de este " -#: blog/templates/blog/about.html:75 +#: blog/templates/blog/_about.html:76 msgid "form" msgstr "formulario" -#: blog/templates/blog/about.html:76 +#: blog/templates/blog/_about.html:77 msgid "or through my " msgstr "o a través de mi " -#: blog/templates/blog/about.html:76 +#: blog/templates/blog/_about.html:77 msgid "LinkedIn." msgstr "LinkedIn." -#: blog/templates/blog/advance_search.html:10 -msgid "Advance Search" -msgstr "Busqueda avanzada" - -#: blog/templates/blog/advance_search.html:12 -msgid "No results" -msgstr "No hay ningun resultado 😞" - -#: blog/templates/blog/advance_search.html:14 -msgid "How-to-look" -msgstr "Por favor 🙏 realize de nuevo la búsqueda!" - -#: blog/templates/blog/classes.html:5 -#: blog/templates/blog/utils/nav_links.html:7 -#: blog/templates/blog/utils/nav_links_mobile.html:5 +#: blog/templates/blog/_classes.html:4 +#: blog/templates/blog/utils/nav_links.html:38 +#: blog/templates/blog/utils/nav_links_mobile.html:39 msgid "Classes" msgstr "Clases" -#: blog/templates/blog/classes.html:13 +#: blog/templates/blog/_classes.html:11 #, fuzzy msgid "" "Hello! Thank you for your interest 😊. My name is Eduardo and I'm a teacher. " @@ -207,12 +213,12 @@ msgstr "" "Hola! Gracias por tu interés 😊. Mi nombre es Eduardo y soy docente. Más " "sobre mi en mi página 'Acerca de mi':" -#: blog/templates/blog/classes.html:14 blog/templates/blog/classes.html:28 -#: blog/templates/blog/consultancy.html:52 blog/templates/blog/error.html:16 +#: blog/templates/blog/_classes.html:12 blog/templates/blog/_classes.html:26 +#: blog/templates/blog/_consultancy.html:50 blog/templates/blog/error.html:16 msgid "here" msgstr "aquí" -#: blog/templates/blog/classes.html:17 +#: blog/templates/blog/_classes.html:15 msgid "" "My goal as a teacher is not just to impart knowledge, but to inspire and " "guide you in a way that you can lose me (and be independent) in your " @@ -222,14 +228,14 @@ msgstr "" "guiarte de namera tal que puedas perderme (y ser independiente) en tu viaje " "de aprendizaje." -#: blog/templates/blog/classes.html:20 +#: blog/templates/blog/_classes.html:18 msgid "" "We can learn about: Python, or about web frameworks like Django, Flask, or " "FastAPI. We can also explore other topics like: object-oriented programming, " "unit tests, clean code or the one that you need." msgstr "" -#: blog/templates/blog/classes.html:23 +#: blog/templates/blog/_classes.html:21 msgid "" "It's not easy to learn new things. It's hard also to find the motivation and " "the resources that are good for you. In these modern times, what we have is " @@ -240,7 +246,7 @@ msgstr "" "modernos, lo que tenemos es datos 🗃️, datos 🗃️ y más datos 🗃️, disponibles en " "todas partes." -#: blog/templates/blog/classes.html:24 +#: blog/templates/blog/_classes.html:22 msgid "" "However, discerning the quality of this data can be challenging. That's " "where a guide or companion comes in handy 😉." @@ -248,7 +254,7 @@ msgstr "" "Sin embargo, discernir la calidad de estos datos puede ser un desafío. Ahí " "es donde un guía o compañero resulta útil 😉." -#: blog/templates/blog/classes.html:25 +#: blog/templates/blog/_classes.html:23 msgid "" "So I can help you to organize and curate the data and tell you what to use " "or not." @@ -256,19 +262,19 @@ msgstr "" "Así que puedo ayudarte a organizar y curar los datos y decirte qué usar o " "qué no." -#: blog/templates/blog/classes.html:28 +#: blog/templates/blog/_classes.html:26 msgid "Reach out to me " msgstr "Contáctame aquí" -#: blog/templates/blog/classes.html:29 +#: blog/templates/blog/_classes.html:27 msgid "or drop me an email at " msgstr "o envíame un correo a " -#: blog/templates/blog/classes.html:29 +#: blog/templates/blog/_classes.html:27 msgid " and let's chat!" msgstr " y hablemos!" -#: blog/templates/blog/classes.html:32 +#: blog/templates/blog/_classes.html:30 msgid "" "If you're in the Netherlands 🇳🇱, let's schedule a coffee ☕ and chat 💬 about " "your learning objectives. If you're based elsewhere in the world 🌍, not to " @@ -277,7 +283,7 @@ msgstr "" "Si estás en Holanda 🇳🇱, vamos por un café ☕ y hablemos 💬 sobre tus planes y " "objectivos. Si estás en otro lugar del mundo 🌍, no te preocupes!" -#: blog/templates/blog/classes.html:33 +#: blog/templates/blog/_classes.html:31 msgid "" "We can set up a Zoom or Meet call to discuss how I can assist you in your " "coding adventure." @@ -285,15 +291,15 @@ msgstr "" "Podemos organizar una call por Zoom o Meet para discutir cómo puedo " "asistirte en tu aventura de programación." -#: blog/templates/blog/classes.html:41 +#: blog/templates/blog/_classes.html:39 msgid "Online Resources to Learn Python:" msgstr "Recursos en línea para aprender Python:" -#: blog/templates/blog/classes.html:44 +#: blog/templates/blog/_classes.html:42 msgid "Impossible not to recommend ChatGPT: " msgstr "Imposible no recomendar ChatGPT: " -#: blog/templates/blog/classes.html:45 +#: blog/templates/blog/_classes.html:43 msgid "" "I think it's one of the most important resources from our modern times. It's " "a great companion that could answer almost everything that you need in this " @@ -303,7 +309,7 @@ msgstr "" "modernos. Es un gran compañero que podría responder casi todo lo que " "necesitas en este campo." -#: blog/templates/blog/classes.html:46 +#: blog/templates/blog/_classes.html:44 msgid "" "Certainly it's not infallible, it has its caveats and you need to learn how " "to use it. But it's worthy. I'm using it every day. " @@ -311,15 +317,15 @@ msgstr "" "Ciertamente no es infalible, tiene sus matices y necesitas aprender cómo " "usarlo. Pero vale la pena. Lo uso todos los días." -#: blog/templates/blog/classes.html:49 +#: blog/templates/blog/_classes.html:47 msgid "I also recommend the following resources:" msgstr "También recomiendo los siguientes recursos:" -#: blog/templates/blog/classes.html:54 +#: blog/templates/blog/_classes.html:52 msgid "Python: official tutorial" msgstr "Python: tutorial oficial" -#: blog/templates/blog/classes.html:59 +#: blog/templates/blog/_classes.html:57 msgid "" "Django girls tutorial: broad tutorial including basic internet and python " "concepts" @@ -327,28 +333,28 @@ msgstr "" "Django girls tutorial: tutorial amplio que incluye conceptos básicos de " "internet y python" -#: blog/templates/blog/classes.html:64 +#: blog/templates/blog/_classes.html:62 msgid "Codecademy: free course for learning the basics of Python 3" msgstr "" "Codecademy: curso gratuito para aprender los conceptos básicos de Python 3" -#: blog/templates/blog/classes.html:69 +#: blog/templates/blog/_classes.html:67 msgid "Some recommended books:" msgstr "Algunos libros recomendados:" -#: blog/templates/blog/classes.html:73 +#: blog/templates/blog/_classes.html:71 msgid "Beginners" msgstr "Principiantes" -#: blog/templates/blog/classes.html:81 +#: blog/templates/blog/_classes.html:79 msgid "Medium/Advance" msgstr "Medio/Avanzado" -#: blog/templates/blog/consultancy.html:5 +#: blog/templates/blog/_consultancy.html:4 msgid "Consultancy Services" msgstr "Servicios de Consultoria" -#: blog/templates/blog/consultancy.html:11 +#: blog/templates/blog/_consultancy.html:9 msgid "" "Crafting tech magic 🧙🏼‍♀️ for individuals 🧍🏻‍♀️ and businesses 🏭, with a " "sprinkle of fun and a dollop of expertise." @@ -356,11 +362,11 @@ msgstr "" "Creando magia tecnológica 🧙🏼‍♀️ para individuos 🧍🏻‍♀️ y empresas 🏭, con un toque " "de diversión y una pizca de experiencia." -#: blog/templates/blog/consultancy.html:12 +#: blog/templates/blog/_consultancy.html:10 msgid "Let's code something delightful!" msgstr "Codeemos algo flashero!" -#: blog/templates/blog/consultancy.html:13 +#: blog/templates/blog/_consultancy.html:11 msgid "" "With over 10 years in the industry 👴🏿, I offer useful insights and expertise " "for daily challenges." @@ -368,28 +374,31 @@ msgstr "" "Con más de 10 años en la industria 👴🏿, ofrezco información útil y " "experiencia para los desafíos diarios." -#: blog/templates/blog/consultancy.html:14 +#: blog/templates/blog/_consultancy.html:12 msgid "Remote 💻 or in-person 🪑, I'm here to assist." msgstr "Remoto 💻 o en persona 🪑, estoy acá para ayudarte." -#: blog/templates/blog/consultancy.html:15 +#: blog/templates/blog/_consultancy.html:13 msgid "Interested in my professional journey?" msgstr "¿Interesado en mi trayectoria profesional?" -#: blog/templates/blog/consultancy.html:16 +#: blog/templates/blog/_consultancy.html:14 msgid "Check out my" msgstr "Revisa mi" -#: blog/templates/blog/consultancy.html:24 +#: blog/templates/blog/_consultancy.html:14 +msgid "LinkedIn profile" +msgstr "profile de LinkedIn." + +#: blog/templates/blog/_consultancy.html:18 +msgid "Services" +msgstr "Servicios" + +#: blog/templates/blog/_consultancy.html:22 msgid "For the Rising Tech Stars: Individuals" msgstr "Para las estrellas tecnológicas en ascenso" -#: blog/templates/blog/consultancy.html:26 -#, fuzzy -#| msgid "" -#| "Personalized training 🏋🏼‍♂️, classes 👨🏽‍🏫, and tutoring 🤓 to help you " -#| "blossom into an autonomous developer.\n" -#| " Stuck on a bug 🐛? I've got your back, literally!" +#: blog/templates/blog/_consultancy.html:24 msgid "" "Personalized training 🏋🏼‍♂️, classes 👨🏽‍🏫, and tutoring 🤓 to help you blossom " "into an autonomous developer." @@ -397,21 +406,15 @@ msgstr "" "Capacitación personalizada 🏋🏼‍♂️, clases 👨🏽‍🏫 y tutoría 🤓 para ayudarte a " "convertirte en un desarrollador autónomo." -#: blog/templates/blog/consultancy.html:27 +#: blog/templates/blog/_consultancy.html:25 msgid "Stuck on a bug 🐛? I've got your back, literally!" msgstr "¿Atrapado en un bug 🐛? Acá estamos para debuggearlo juntos!" -#: blog/templates/blog/consultancy.html:32 +#: blog/templates/blog/_consultancy.html:30 msgid "For the Business: Companies" msgstr "Para las empresas" -#: blog/templates/blog/consultancy.html:34 -#, fuzzy -#| msgid "" -#| "Crafting day-to-day solutions, providing stellar training (unittesting, " -#| "robust code writing, you name it!),\n" -#| " fixing Django/Python 🐍 performance issues, evaluating legacy " -#| "code 🔖, or upgrading versions ⬆️. If it's tech, I'm your guy!" +#: blog/templates/blog/_consultancy.html:32 msgid "" "Crafting day-to-day solutions, providing stellar training (unittesting, " "robust code writing, you name it!), fixing Django/Python 🐍 performance " @@ -422,19 +425,19 @@ msgstr "" "problemas de performanceen Django/Python 🐍, evaluando código legacy " "(heredado) 🔖, o actualizando versiones ⬆️." -#: blog/templates/blog/consultancy.html:35 +#: blog/templates/blog/_consultancy.html:33 msgid "If it's tech, I'm your guy!" msgstr "Si es tecnología, soy yo!" -#: blog/templates/blog/consultancy.html:43 +#: blog/templates/blog/_consultancy.html:41 msgid "Experience & Skills" msgstr "Experiencia & Habilidades" -#: blog/templates/blog/consultancy.html:46 +#: blog/templates/blog/_consultancy.html:44 msgid "Years of Mischief & Mastery" msgstr "Años de Travesuras & Maestría" -#: blog/templates/blog/consultancy.html:48 +#: blog/templates/blog/_consultancy.html:46 msgid "" "Code wizardry 🧙🏼‍♂️, business acumen 👨🏻‍💼, and maybe a few harmless pranks " "along the way. Dive into my tech journey!" @@ -442,16 +445,15 @@ msgstr "" "Magia de código 🧙🏼‍♂️, perspicacia empresarial 👨🏻‍💼 y quizás algunas bromas " "inofensivas en el camino. ¡Sumérgete en mi trayectoria tecnológica!" -#: blog/templates/blog/consultancy.html:51 -#, fuzzy +#: blog/templates/blog/_consultancy.html:49 msgid "Read more about my experience on linkedin " msgstr "Lee más sobre mí experiencia en linkedin " -#: blog/templates/blog/consultancy.html:56 +#: blog/templates/blog/_consultancy.html:54 msgid "Techno-Sorcery" msgstr "Hechicería Tecnológica" -#: blog/templates/blog/consultancy.html:58 +#: blog/templates/blog/_consultancy.html:56 msgid "" "From Python 🐍 to Django, from debugging to spellbinding code – I've mastered " "the digital alchemy ⚗️." @@ -459,19 +461,19 @@ msgstr "" "Desde Python 🐍 a Django, desde depuración hasta código encantador: he " "dominado la alquimia digital ⚗️." -#: blog/templates/blog/consultancy.html:61 +#: blog/templates/blog/_consultancy.html:59 msgid "Read more about me here: " msgstr "Lee más sobre mí aquí:" -#: blog/templates/blog/consultancy.html:62 +#: blog/templates/blog/_consultancy.html:60 msgid "about" msgstr "acerca" -#: blog/templates/blog/consultancy.html:70 +#: blog/templates/blog/_consultancy.html:68 msgid "Get in Touch" msgstr "Ponte en Contacto" -#: blog/templates/blog/consultancy.html:72 +#: blog/templates/blog/_consultancy.html:70 msgid "" "Ready to embark on a tech adventure or brew up a business solution? Let's " "talk!" @@ -479,24 +481,52 @@ msgstr "" "¿Listo para embarcarte en una aventura tecnológica o elaborar una solución " "empresarial? ¡Hablemos!" -#: blog/templates/blog/consultancy.html:74 +#: blog/templates/blog/_consultancy.html:72 msgid "Contact Me" msgstr "Contactame" -#: blog/templates/blog/contact.html:6 -#: blog/templates/blog/utils/nav_links.html:11 -#: blog/templates/blog/utils/nav_links_mobile.html:7 +#: blog/templates/blog/_contact.html:4 +#: blog/templates/blog/utils/nav_links.html:64 +#: blog/templates/blog/utils/nav_links_mobile.html:65 msgid "Contact" msgstr "Contacto" -#: blog/templates/blog/contact.html:15 +#: blog/templates/blog/_contact.html:12 msgid "Are you sure?" msgstr "Estas seguro?" -#: blog/templates/blog/contact.html:34 +#: blog/templates/blog/_contact.html:15 +msgid "Name" +msgstr "Nombre" + +#: blog/templates/blog/_contact.html:20 +msgid "Email" +msgstr "Correo" + +#: blog/templates/blog/_contact.html:25 +msgid "Message" +msgstr "Mensaje" + +#: blog/templates/blog/_contact.html:31 msgid "What color is the red rabbit?" msgstr "De que color es el conejo rojo?" +#: blog/templates/blog/_contact.html:36 +msgid "Send" +msgstr "Enviar" + +#: blog/templates/blog/advance_search.html:8 +msgid "Advance Search" +msgstr "Busqueda avanzada" + +#: blog/templates/blog/advance_search.html:10 +msgid "No results" +msgstr "No hay ningun resultado 😞" + +#: blog/templates/blog/advance_search.html:12 +msgid "How-to-look" +msgstr "Por favor 🙏 realize de nuevo la búsqueda!" + #: blog/templates/blog/error.html:7 msgid "Try again" msgstr "Intente de nuevo" @@ -529,36 +559,40 @@ msgstr "Ultimo" msgid "Notas relacionadas" msgstr "Notas relacionadas" -#: blog/templates/blog/extras/related_posts.html:14 +#: blog/templates/blog/extras/related_posts.html:12 msgid "Publicado el dia" msgstr "Publicado el dia" -#: blog/templates/blog/extras/related_posts.html:19 +#: blog/templates/blog/extras/related_posts.html:17 #: blog/templates/blog/posts/detail.html:65 msgid "Nothing yet!" msgstr "Todavia nada!" -#: blog/templates/blog/home.html:14 +#: blog/templates/blog/home.html:10 msgid "Software Engineer" msgstr "Software Engineer" -#: blog/templates/blog/home.html:15 blog/templates/blog/utils/nav_links.html:5 -#: blog/templates/blog/utils/nav_links_mobile.html:4 +#: blog/templates/blog/home.html:11 blog/templates/blog/utils/nav_links.html:25 +#: blog/templates/blog/utils/nav_links_mobile.html:26 msgid "Consultancy" msgstr "Consultoria" -#: blog/templates/blog/home.html:19 +#: blog/templates/blog/home.html:15 msgid "Based in Amsterdam" -msgstr "Ubicado en Amsterdam" +msgstr "En Amsterdam" -#: blog/templates/blog/home.html:19 +#: blog/templates/blog/home.html:15 msgid "available" -msgstr "disponible" +msgstr "pero disponible" -#: blog/templates/blog/home.html:21 +#: blog/templates/blog/home.html:17 msgid "everywhere!" msgstr "en cualquier lugar!" +#: blog/templates/blog/posts/_list.html:9 +msgid "or just public notes" +msgstr "o simplemente notas públicas" + #: blog/templates/blog/posts/detail.html:27 msgid "Author" msgstr "Autor" @@ -571,10 +605,6 @@ msgstr "Notas relacionadas" msgid "Published" msgstr "Publicado" -#: blog/templates/blog/posts/list.html:13 -msgid "or just public notes" -msgstr "o solo notas publicas" - #: blog/templates/blog/success.html:4 msgid "Thank you for your message" msgstr "Gracias por tu mensaje" @@ -592,30 +622,28 @@ msgid "description" msgstr "descripcion" #: blog/templates/blog/utils/language_dropdown.html:6 -#: blog/templates/blog/utils/nav_links_mobile.html:23 msgid "English" msgstr "Ingles" #: blog/templates/blog/utils/language_dropdown.html:10 -#: blog/templates/blog/utils/nav_links_mobile.html:27 msgid "Spanish" msgstr "Español" -#: blog/templates/blog/utils/nav_links.html:3 -#: blog/templates/blog/utils/nav_links_mobile.html:3 +#: blog/templates/blog/utils/nav_links.html:12 +#: blog/templates/blog/utils/nav_links_mobile.html:13 msgid "Blog" msgstr "Blog" -#: blog/templates/blog/utils/nav_links.html:9 -#: blog/templates/blog/utils/nav_links_mobile.html:6 +#: blog/templates/blog/utils/nav_links.html:51 +#: blog/templates/blog/utils/nav_links_mobile.html:52 msgid "About" msgstr "Acerca" -#: blog/templates/blog/utils/nav_links.html:14 -#: blog/templates/blog/utils/nav_links_mobile.html:9 +#: blog/templates/blog/utils/nav_links.html:69 +#: blog/templates/blog/utils/nav_links_mobile.html:69 msgid "Admin" msgstr "Admin" -#: blog/views.py:184 +#: blog/views.py:160 msgid "invalid captcha" msgstr "captcha invalido" diff --git a/blog/migrations/0002_dolarpeso.py b/blog/migrations/0002_dolarpeso.py index cd9297d2..9b3fa767 100644 --- a/blog/migrations/0002_dolarpeso.py +++ b/blog/migrations/0002_dolarpeso.py @@ -1,842 +1,8 @@ # Generated by Django 1.10.6 on 2017-06-18 19:22 -from decimal import Decimal - -import django.utils.timezone -import djmoney.models.fields -from django.db import migrations, models +from django.db import migrations class Migration(migrations.Migration): dependencies = [("blog", "0001_initial")] - operations = [ - migrations.CreateModel( - name="DolarPeso", - fields=[ - ("id", models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")), - ( - "balance_currency", - djmoney.models.fields.CurrencyField( - choices=[ - ("XUA", "ADB Unit of Account"), - ("AFN", "Afghani"), - ("DZD", "Algerian Dinar"), - ("ARS", "Argentine Peso"), - ("AMD", "Armenian Dram"), - ("AWG", "Aruban Guilder"), - ("AUD", "Australian Dollar"), - ("AZN", "Azerbaijanian Manat"), - ("BSD", "Bahamian Dollar"), - ("BHD", "Bahraini Dinar"), - ("THB", "Baht"), - ("PAB", "Balboa"), - ("BBD", "Barbados Dollar"), - ("BYN", "Belarussian Ruble"), - ("BYR", "Belarussian Ruble"), - ("BZD", "Belize Dollar"), - ("BMD", "Bermudian Dollar (customarily known as Bermuda Dollar)"), - ("BTN", "Bhutanese ngultrum"), - ("VEF", "Bolivar Fuerte"), - ("BOB", "Boliviano"), - ("XBA", "Bond Markets Units European Composite Unit (EURCO)"), - ("BRL", "Brazilian Real"), - ("BND", "Brunei Dollar"), - ("BGN", "Bulgarian Lev"), - ("BIF", "Burundi Franc"), - ("XOF", "CFA Franc BCEAO"), - ("XAF", "CFA franc BEAC"), - ("XPF", "CFP Franc"), - ("CAD", "Canadian Dollar"), - ("CVE", "Cape Verde Escudo"), - ("KYD", "Cayman Islands Dollar"), - ("CLP", "Chilean peso"), - ("XTS", "Codes specifically reserved for testing purposes"), - ("COP", "Colombian peso"), - ("KMF", "Comoro Franc"), - ("CDF", "Congolese franc"), - ("BAM", "Convertible Marks"), - ("NIO", "Cordoba Oro"), - ("CRC", "Costa Rican Colon"), - ("HRK", "Croatian Kuna"), - ("CUP", "Cuban Peso"), - ("CUC", "Cuban convertible peso"), - ("CZK", "Czech Koruna"), - ("GMD", "Dalasi"), - ("DKK", "Danish Krone"), - ("MKD", "Denar"), - ("DJF", "Djibouti Franc"), - ("STD", "Dobra"), - ("DOP", "Dominican Peso"), - ("VND", "Dong"), - ("XCD", "East Caribbean Dollar"), - ("EGP", "Egyptian Pound"), - ("SVC", "El Salvador Colon"), - ("ETB", "Ethiopian Birr"), - ("EUR", "Euro"), - ("XBB", "European Monetary Unit (E.M.U.-6)"), - ("XBD", "European Unit of Account 17(E.U.A.-17)"), - ("XBC", "European Unit of Account 9(E.U.A.-9)"), - ("FKP", "Falkland Islands Pound"), - ("FJD", "Fiji Dollar"), - ("HUF", "Forint"), - ("GHS", "Ghana Cedi"), - ("GIP", "Gibraltar Pound"), - ("XAU", "Gold"), - ("XFO", "Gold-Franc"), - ("PYG", "Guarani"), - ("GNF", "Guinea Franc"), - ("GYD", "Guyana Dollar"), - ("HTG", "Haitian gourde"), - ("HKD", "Hong Kong Dollar"), - ("UAH", "Hryvnia"), - ("ISK", "Iceland Krona"), - ("INR", "Indian Rupee"), - ("IRR", "Iranian Rial"), - ("IQD", "Iraqi Dinar"), - ("IMP", "Isle of Man Pound"), - ("JMD", "Jamaican Dollar"), - ("JOD", "Jordanian Dinar"), - ("KES", "Kenyan Shilling"), - ("PGK", "Kina"), - ("LAK", "Kip"), - ("KWD", "Kuwaiti Dinar"), - ("AOA", "Kwanza"), - ("MMK", "Kyat"), - ("GEL", "Lari"), - ("LVL", "Latvian Lats"), - ("LBP", "Lebanese Pound"), - ("ALL", "Lek"), - ("HNL", "Lempira"), - ("SLL", "Leone"), - ("LSL", "Lesotho loti"), - ("LRD", "Liberian Dollar"), - ("LYD", "Libyan Dinar"), - ("SZL", "Lilangeni"), - ("LTL", "Lithuanian Litas"), - ("MGA", "Malagasy Ariary"), - ("MWK", "Malawian Kwacha"), - ("MYR", "Malaysian Ringgit"), - ("TMM", "Manat"), - ("MUR", "Mauritius Rupee"), - ("MZN", "Metical"), - ("MXV", "Mexican Unidad de Inversion (UDI)"), - ("MXN", "Mexican peso"), - ("MDL", "Moldovan Leu"), - ("MAD", "Moroccan Dirham"), - ("BOV", "Mvdol"), - ("NGN", "Naira"), - ("ERN", "Nakfa"), - ("NAD", "Namibian Dollar"), - ("NPR", "Nepalese Rupee"), - ("ANG", "Netherlands Antillian Guilder"), - ("ILS", "New Israeli Sheqel"), - ("RON", "New Leu"), - ("TWD", "New Taiwan Dollar"), - ("NZD", "New Zealand Dollar"), - ("KPW", "North Korean Won"), - ("NOK", "Norwegian Krone"), - ("PEN", "Nuevo Sol"), - ("MRO", "Ouguiya"), - ("TOP", "Paanga"), - ("PKR", "Pakistan Rupee"), - ("XPD", "Palladium"), - ("MOP", "Pataca"), - ("PHP", "Philippine Peso"), - ("XPT", "Platinum"), - ("GBP", "Pound Sterling"), - ("BWP", "Pula"), - ("QAR", "Qatari Rial"), - ("GTQ", "Quetzal"), - ("ZAR", "Rand"), - ("OMR", "Rial Omani"), - ("KHR", "Riel"), - ("MVR", "Rufiyaa"), - ("IDR", "Rupiah"), - ("RUB", "Russian Ruble"), - ("RWF", "Rwanda Franc"), - ("XDR", "SDR"), - ("SHP", "Saint Helena Pound"), - ("SAR", "Saudi Riyal"), - ("RSD", "Serbian Dinar"), - ("SCR", "Seychelles Rupee"), - ("XAG", "Silver"), - ("SGD", "Singapore Dollar"), - ("SBD", "Solomon Islands Dollar"), - ("KGS", "Som"), - ("SOS", "Somali Shilling"), - ("TJS", "Somoni"), - ("SSP", "South Sudanese Pound"), - ("LKR", "Sri Lanka Rupee"), - ("XSU", "Sucre"), - ("SDG", "Sudanese Pound"), - ("SRD", "Surinam Dollar"), - ("SEK", "Swedish Krona"), - ("CHF", "Swiss Franc"), - ("SYP", "Syrian Pound"), - ("BDT", "Taka"), - ("WST", "Tala"), - ("TZS", "Tanzanian Shilling"), - ("KZT", "Tenge"), - ("XXX", "The codes assigned for transactions where no currency is involved"), - ("TTD", "Trinidad and Tobago Dollar"), - ("MNT", "Tugrik"), - ("TND", "Tunisian Dinar"), - ("TRY", "Turkish Lira"), - ("TMT", "Turkmenistan New Manat"), - ("TVD", "Tuvalu dollar"), - ("AED", "UAE Dirham"), - ("XFU", "UIC-Franc"), - ("USD", "US Dollar"), - ("USN", "US Dollar (Next day)"), - ("UGX", "Uganda Shilling"), - ("CLF", "Unidad de Fomento"), - ("COU", "Unidad de Valor Real"), - ("UYI", "Uruguay Peso en Unidades Indexadas (URUIURUI)"), - ("UYU", "Uruguayan peso"), - ("UZS", "Uzbekistan Sum"), - ("VUV", "Vatu"), - ("CHE", "WIR Euro"), - ("CHW", "WIR Franc"), - ("KRW", "Won"), - ("YER", "Yemeni Rial"), - ("JPY", "Yen"), - ("CNY", "Yuan Renminbi"), - ("ZMK", "Zambian Kwacha"), - ("ZMW", "Zambian Kwacha"), - ("ZWD", "Zimbabwe Dollar A/06"), - ("ZWN", "Zimbabwe dollar A/08"), - ("ZWL", "Zimbabwe dollar A/09"), - ("PLN", "Zloty"), - ], - default="USD", - editable=False, - max_length=3, - ), - ), - ( - "balance", - djmoney.models.fields.MoneyField( - decimal_places=2, default=Decimal("0.0"), default_currency="USD", max_digits=10 - ), - ), - ("name", models.CharField(max_length=250, verbose_name="Nombre")), - ( - "bid_currency", - djmoney.models.fields.CurrencyField( - choices=[ - ("XUA", "ADB Unit of Account"), - ("AFN", "Afghani"), - ("DZD", "Algerian Dinar"), - ("ARS", "Argentine Peso"), - ("AMD", "Armenian Dram"), - ("AWG", "Aruban Guilder"), - ("AUD", "Australian Dollar"), - ("AZN", "Azerbaijanian Manat"), - ("BSD", "Bahamian Dollar"), - ("BHD", "Bahraini Dinar"), - ("THB", "Baht"), - ("PAB", "Balboa"), - ("BBD", "Barbados Dollar"), - ("BYN", "Belarussian Ruble"), - ("BYR", "Belarussian Ruble"), - ("BZD", "Belize Dollar"), - ("BMD", "Bermudian Dollar (customarily known as Bermuda Dollar)"), - ("BTN", "Bhutanese ngultrum"), - ("VEF", "Bolivar Fuerte"), - ("BOB", "Boliviano"), - ("XBA", "Bond Markets Units European Composite Unit (EURCO)"), - ("BRL", "Brazilian Real"), - ("BND", "Brunei Dollar"), - ("BGN", "Bulgarian Lev"), - ("BIF", "Burundi Franc"), - ("XOF", "CFA Franc BCEAO"), - ("XAF", "CFA franc BEAC"), - ("XPF", "CFP Franc"), - ("CAD", "Canadian Dollar"), - ("CVE", "Cape Verde Escudo"), - ("KYD", "Cayman Islands Dollar"), - ("CLP", "Chilean peso"), - ("XTS", "Codes specifically reserved for testing purposes"), - ("COP", "Colombian peso"), - ("KMF", "Comoro Franc"), - ("CDF", "Congolese franc"), - ("BAM", "Convertible Marks"), - ("NIO", "Cordoba Oro"), - ("CRC", "Costa Rican Colon"), - ("HRK", "Croatian Kuna"), - ("CUP", "Cuban Peso"), - ("CUC", "Cuban convertible peso"), - ("CZK", "Czech Koruna"), - ("GMD", "Dalasi"), - ("DKK", "Danish Krone"), - ("MKD", "Denar"), - ("DJF", "Djibouti Franc"), - ("STD", "Dobra"), - ("DOP", "Dominican Peso"), - ("VND", "Dong"), - ("XCD", "East Caribbean Dollar"), - ("EGP", "Egyptian Pound"), - ("SVC", "El Salvador Colon"), - ("ETB", "Ethiopian Birr"), - ("EUR", "Euro"), - ("XBB", "European Monetary Unit (E.M.U.-6)"), - ("XBD", "European Unit of Account 17(E.U.A.-17)"), - ("XBC", "European Unit of Account 9(E.U.A.-9)"), - ("FKP", "Falkland Islands Pound"), - ("FJD", "Fiji Dollar"), - ("HUF", "Forint"), - ("GHS", "Ghana Cedi"), - ("GIP", "Gibraltar Pound"), - ("XAU", "Gold"), - ("XFO", "Gold-Franc"), - ("PYG", "Guarani"), - ("GNF", "Guinea Franc"), - ("GYD", "Guyana Dollar"), - ("HTG", "Haitian gourde"), - ("HKD", "Hong Kong Dollar"), - ("UAH", "Hryvnia"), - ("ISK", "Iceland Krona"), - ("INR", "Indian Rupee"), - ("IRR", "Iranian Rial"), - ("IQD", "Iraqi Dinar"), - ("IMP", "Isle of Man Pound"), - ("JMD", "Jamaican Dollar"), - ("JOD", "Jordanian Dinar"), - ("KES", "Kenyan Shilling"), - ("PGK", "Kina"), - ("LAK", "Kip"), - ("KWD", "Kuwaiti Dinar"), - ("AOA", "Kwanza"), - ("MMK", "Kyat"), - ("GEL", "Lari"), - ("LVL", "Latvian Lats"), - ("LBP", "Lebanese Pound"), - ("ALL", "Lek"), - ("HNL", "Lempira"), - ("SLL", "Leone"), - ("LSL", "Lesotho loti"), - ("LRD", "Liberian Dollar"), - ("LYD", "Libyan Dinar"), - ("SZL", "Lilangeni"), - ("LTL", "Lithuanian Litas"), - ("MGA", "Malagasy Ariary"), - ("MWK", "Malawian Kwacha"), - ("MYR", "Malaysian Ringgit"), - ("TMM", "Manat"), - ("MUR", "Mauritius Rupee"), - ("MZN", "Metical"), - ("MXV", "Mexican Unidad de Inversion (UDI)"), - ("MXN", "Mexican peso"), - ("MDL", "Moldovan Leu"), - ("MAD", "Moroccan Dirham"), - ("BOV", "Mvdol"), - ("NGN", "Naira"), - ("ERN", "Nakfa"), - ("NAD", "Namibian Dollar"), - ("NPR", "Nepalese Rupee"), - ("ANG", "Netherlands Antillian Guilder"), - ("ILS", "New Israeli Sheqel"), - ("RON", "New Leu"), - ("TWD", "New Taiwan Dollar"), - ("NZD", "New Zealand Dollar"), - ("KPW", "North Korean Won"), - ("NOK", "Norwegian Krone"), - ("PEN", "Nuevo Sol"), - ("MRO", "Ouguiya"), - ("TOP", "Paanga"), - ("PKR", "Pakistan Rupee"), - ("XPD", "Palladium"), - ("MOP", "Pataca"), - ("PHP", "Philippine Peso"), - ("XPT", "Platinum"), - ("GBP", "Pound Sterling"), - ("BWP", "Pula"), - ("QAR", "Qatari Rial"), - ("GTQ", "Quetzal"), - ("ZAR", "Rand"), - ("OMR", "Rial Omani"), - ("KHR", "Riel"), - ("MVR", "Rufiyaa"), - ("IDR", "Rupiah"), - ("RUB", "Russian Ruble"), - ("RWF", "Rwanda Franc"), - ("XDR", "SDR"), - ("SHP", "Saint Helena Pound"), - ("SAR", "Saudi Riyal"), - ("RSD", "Serbian Dinar"), - ("SCR", "Seychelles Rupee"), - ("XAG", "Silver"), - ("SGD", "Singapore Dollar"), - ("SBD", "Solomon Islands Dollar"), - ("KGS", "Som"), - ("SOS", "Somali Shilling"), - ("TJS", "Somoni"), - ("SSP", "South Sudanese Pound"), - ("LKR", "Sri Lanka Rupee"), - ("XSU", "Sucre"), - ("SDG", "Sudanese Pound"), - ("SRD", "Surinam Dollar"), - ("SEK", "Swedish Krona"), - ("CHF", "Swiss Franc"), - ("SYP", "Syrian Pound"), - ("BDT", "Taka"), - ("WST", "Tala"), - ("TZS", "Tanzanian Shilling"), - ("KZT", "Tenge"), - ("XXX", "The codes assigned for transactions where no currency is involved"), - ("TTD", "Trinidad and Tobago Dollar"), - ("MNT", "Tugrik"), - ("TND", "Tunisian Dinar"), - ("TRY", "Turkish Lira"), - ("TMT", "Turkmenistan New Manat"), - ("TVD", "Tuvalu dollar"), - ("AED", "UAE Dirham"), - ("XFU", "UIC-Franc"), - ("USD", "US Dollar"), - ("USN", "US Dollar (Next day)"), - ("UGX", "Uganda Shilling"), - ("CLF", "Unidad de Fomento"), - ("COU", "Unidad de Valor Real"), - ("UYI", "Uruguay Peso en Unidades Indexadas (URUIURUI)"), - ("UYU", "Uruguayan peso"), - ("UZS", "Uzbekistan Sum"), - ("VUV", "Vatu"), - ("CHE", "WIR Euro"), - ("CHW", "WIR Franc"), - ("KRW", "Won"), - ("YER", "Yemeni Rial"), - ("JPY", "Yen"), - ("CNY", "Yuan Renminbi"), - ("ZMK", "Zambian Kwacha"), - ("ZMW", "Zambian Kwacha"), - ("ZWD", "Zimbabwe Dollar A/06"), - ("ZWN", "Zimbabwe dollar A/08"), - ("ZWL", "Zimbabwe dollar A/09"), - ("PLN", "Zloty"), - ], - default="USD", - editable=False, - max_length=3, - ), - ), - ( - "bid", - djmoney.models.fields.MoneyField( - decimal_places=2, default=Decimal("0.0"), default_currency="USD", max_digits=10 - ), - ), - ( - "ask_currency", - djmoney.models.fields.CurrencyField( - choices=[ - ("XUA", "ADB Unit of Account"), - ("AFN", "Afghani"), - ("DZD", "Algerian Dinar"), - ("ARS", "Argentine Peso"), - ("AMD", "Armenian Dram"), - ("AWG", "Aruban Guilder"), - ("AUD", "Australian Dollar"), - ("AZN", "Azerbaijanian Manat"), - ("BSD", "Bahamian Dollar"), - ("BHD", "Bahraini Dinar"), - ("THB", "Baht"), - ("PAB", "Balboa"), - ("BBD", "Barbados Dollar"), - ("BYN", "Belarussian Ruble"), - ("BYR", "Belarussian Ruble"), - ("BZD", "Belize Dollar"), - ("BMD", "Bermudian Dollar (customarily known as Bermuda Dollar)"), - ("BTN", "Bhutanese ngultrum"), - ("VEF", "Bolivar Fuerte"), - ("BOB", "Boliviano"), - ("XBA", "Bond Markets Units European Composite Unit (EURCO)"), - ("BRL", "Brazilian Real"), - ("BND", "Brunei Dollar"), - ("BGN", "Bulgarian Lev"), - ("BIF", "Burundi Franc"), - ("XOF", "CFA Franc BCEAO"), - ("XAF", "CFA franc BEAC"), - ("XPF", "CFP Franc"), - ("CAD", "Canadian Dollar"), - ("CVE", "Cape Verde Escudo"), - ("KYD", "Cayman Islands Dollar"), - ("CLP", "Chilean peso"), - ("XTS", "Codes specifically reserved for testing purposes"), - ("COP", "Colombian peso"), - ("KMF", "Comoro Franc"), - ("CDF", "Congolese franc"), - ("BAM", "Convertible Marks"), - ("NIO", "Cordoba Oro"), - ("CRC", "Costa Rican Colon"), - ("HRK", "Croatian Kuna"), - ("CUP", "Cuban Peso"), - ("CUC", "Cuban convertible peso"), - ("CZK", "Czech Koruna"), - ("GMD", "Dalasi"), - ("DKK", "Danish Krone"), - ("MKD", "Denar"), - ("DJF", "Djibouti Franc"), - ("STD", "Dobra"), - ("DOP", "Dominican Peso"), - ("VND", "Dong"), - ("XCD", "East Caribbean Dollar"), - ("EGP", "Egyptian Pound"), - ("SVC", "El Salvador Colon"), - ("ETB", "Ethiopian Birr"), - ("EUR", "Euro"), - ("XBB", "European Monetary Unit (E.M.U.-6)"), - ("XBD", "European Unit of Account 17(E.U.A.-17)"), - ("XBC", "European Unit of Account 9(E.U.A.-9)"), - ("FKP", "Falkland Islands Pound"), - ("FJD", "Fiji Dollar"), - ("HUF", "Forint"), - ("GHS", "Ghana Cedi"), - ("GIP", "Gibraltar Pound"), - ("XAU", "Gold"), - ("XFO", "Gold-Franc"), - ("PYG", "Guarani"), - ("GNF", "Guinea Franc"), - ("GYD", "Guyana Dollar"), - ("HTG", "Haitian gourde"), - ("HKD", "Hong Kong Dollar"), - ("UAH", "Hryvnia"), - ("ISK", "Iceland Krona"), - ("INR", "Indian Rupee"), - ("IRR", "Iranian Rial"), - ("IQD", "Iraqi Dinar"), - ("IMP", "Isle of Man Pound"), - ("JMD", "Jamaican Dollar"), - ("JOD", "Jordanian Dinar"), - ("KES", "Kenyan Shilling"), - ("PGK", "Kina"), - ("LAK", "Kip"), - ("KWD", "Kuwaiti Dinar"), - ("AOA", "Kwanza"), - ("MMK", "Kyat"), - ("GEL", "Lari"), - ("LVL", "Latvian Lats"), - ("LBP", "Lebanese Pound"), - ("ALL", "Lek"), - ("HNL", "Lempira"), - ("SLL", "Leone"), - ("LSL", "Lesotho loti"), - ("LRD", "Liberian Dollar"), - ("LYD", "Libyan Dinar"), - ("SZL", "Lilangeni"), - ("LTL", "Lithuanian Litas"), - ("MGA", "Malagasy Ariary"), - ("MWK", "Malawian Kwacha"), - ("MYR", "Malaysian Ringgit"), - ("TMM", "Manat"), - ("MUR", "Mauritius Rupee"), - ("MZN", "Metical"), - ("MXV", "Mexican Unidad de Inversion (UDI)"), - ("MXN", "Mexican peso"), - ("MDL", "Moldovan Leu"), - ("MAD", "Moroccan Dirham"), - ("BOV", "Mvdol"), - ("NGN", "Naira"), - ("ERN", "Nakfa"), - ("NAD", "Namibian Dollar"), - ("NPR", "Nepalese Rupee"), - ("ANG", "Netherlands Antillian Guilder"), - ("ILS", "New Israeli Sheqel"), - ("RON", "New Leu"), - ("TWD", "New Taiwan Dollar"), - ("NZD", "New Zealand Dollar"), - ("KPW", "North Korean Won"), - ("NOK", "Norwegian Krone"), - ("PEN", "Nuevo Sol"), - ("MRO", "Ouguiya"), - ("TOP", "Paanga"), - ("PKR", "Pakistan Rupee"), - ("XPD", "Palladium"), - ("MOP", "Pataca"), - ("PHP", "Philippine Peso"), - ("XPT", "Platinum"), - ("GBP", "Pound Sterling"), - ("BWP", "Pula"), - ("QAR", "Qatari Rial"), - ("GTQ", "Quetzal"), - ("ZAR", "Rand"), - ("OMR", "Rial Omani"), - ("KHR", "Riel"), - ("MVR", "Rufiyaa"), - ("IDR", "Rupiah"), - ("RUB", "Russian Ruble"), - ("RWF", "Rwanda Franc"), - ("XDR", "SDR"), - ("SHP", "Saint Helena Pound"), - ("SAR", "Saudi Riyal"), - ("RSD", "Serbian Dinar"), - ("SCR", "Seychelles Rupee"), - ("XAG", "Silver"), - ("SGD", "Singapore Dollar"), - ("SBD", "Solomon Islands Dollar"), - ("KGS", "Som"), - ("SOS", "Somali Shilling"), - ("TJS", "Somoni"), - ("SSP", "South Sudanese Pound"), - ("LKR", "Sri Lanka Rupee"), - ("XSU", "Sucre"), - ("SDG", "Sudanese Pound"), - ("SRD", "Surinam Dollar"), - ("SEK", "Swedish Krona"), - ("CHF", "Swiss Franc"), - ("SYP", "Syrian Pound"), - ("BDT", "Taka"), - ("WST", "Tala"), - ("TZS", "Tanzanian Shilling"), - ("KZT", "Tenge"), - ("XXX", "The codes assigned for transactions where no currency is involved"), - ("TTD", "Trinidad and Tobago Dollar"), - ("MNT", "Tugrik"), - ("TND", "Tunisian Dinar"), - ("TRY", "Turkish Lira"), - ("TMT", "Turkmenistan New Manat"), - ("TVD", "Tuvalu dollar"), - ("AED", "UAE Dirham"), - ("XFU", "UIC-Franc"), - ("USD", "US Dollar"), - ("USN", "US Dollar (Next day)"), - ("UGX", "Uganda Shilling"), - ("CLF", "Unidad de Fomento"), - ("COU", "Unidad de Valor Real"), - ("UYI", "Uruguay Peso en Unidades Indexadas (URUIURUI)"), - ("UYU", "Uruguayan peso"), - ("UZS", "Uzbekistan Sum"), - ("VUV", "Vatu"), - ("CHE", "WIR Euro"), - ("CHW", "WIR Franc"), - ("KRW", "Won"), - ("YER", "Yemeni Rial"), - ("JPY", "Yen"), - ("CNY", "Yuan Renminbi"), - ("ZMK", "Zambian Kwacha"), - ("ZMW", "Zambian Kwacha"), - ("ZWD", "Zimbabwe Dollar A/06"), - ("ZWN", "Zimbabwe dollar A/08"), - ("ZWL", "Zimbabwe dollar A/09"), - ("PLN", "Zloty"), - ], - default="USD", - editable=False, - max_length=3, - ), - ), - ( - "ask", - djmoney.models.fields.MoneyField( - decimal_places=2, default=Decimal("0.0"), default_currency="USD", max_digits=10 - ), - ), - ( - "rate_currency", - djmoney.models.fields.CurrencyField( - choices=[ - ("XUA", "ADB Unit of Account"), - ("AFN", "Afghani"), - ("DZD", "Algerian Dinar"), - ("ARS", "Argentine Peso"), - ("AMD", "Armenian Dram"), - ("AWG", "Aruban Guilder"), - ("AUD", "Australian Dollar"), - ("AZN", "Azerbaijanian Manat"), - ("BSD", "Bahamian Dollar"), - ("BHD", "Bahraini Dinar"), - ("THB", "Baht"), - ("PAB", "Balboa"), - ("BBD", "Barbados Dollar"), - ("BYN", "Belarussian Ruble"), - ("BYR", "Belarussian Ruble"), - ("BZD", "Belize Dollar"), - ("BMD", "Bermudian Dollar (customarily known as Bermuda Dollar)"), - ("BTN", "Bhutanese ngultrum"), - ("VEF", "Bolivar Fuerte"), - ("BOB", "Boliviano"), - ("XBA", "Bond Markets Units European Composite Unit (EURCO)"), - ("BRL", "Brazilian Real"), - ("BND", "Brunei Dollar"), - ("BGN", "Bulgarian Lev"), - ("BIF", "Burundi Franc"), - ("XOF", "CFA Franc BCEAO"), - ("XAF", "CFA franc BEAC"), - ("XPF", "CFP Franc"), - ("CAD", "Canadian Dollar"), - ("CVE", "Cape Verde Escudo"), - ("KYD", "Cayman Islands Dollar"), - ("CLP", "Chilean peso"), - ("XTS", "Codes specifically reserved for testing purposes"), - ("COP", "Colombian peso"), - ("KMF", "Comoro Franc"), - ("CDF", "Congolese franc"), - ("BAM", "Convertible Marks"), - ("NIO", "Cordoba Oro"), - ("CRC", "Costa Rican Colon"), - ("HRK", "Croatian Kuna"), - ("CUP", "Cuban Peso"), - ("CUC", "Cuban convertible peso"), - ("CZK", "Czech Koruna"), - ("GMD", "Dalasi"), - ("DKK", "Danish Krone"), - ("MKD", "Denar"), - ("DJF", "Djibouti Franc"), - ("STD", "Dobra"), - ("DOP", "Dominican Peso"), - ("VND", "Dong"), - ("XCD", "East Caribbean Dollar"), - ("EGP", "Egyptian Pound"), - ("SVC", "El Salvador Colon"), - ("ETB", "Ethiopian Birr"), - ("EUR", "Euro"), - ("XBB", "European Monetary Unit (E.M.U.-6)"), - ("XBD", "European Unit of Account 17(E.U.A.-17)"), - ("XBC", "European Unit of Account 9(E.U.A.-9)"), - ("FKP", "Falkland Islands Pound"), - ("FJD", "Fiji Dollar"), - ("HUF", "Forint"), - ("GHS", "Ghana Cedi"), - ("GIP", "Gibraltar Pound"), - ("XAU", "Gold"), - ("XFO", "Gold-Franc"), - ("PYG", "Guarani"), - ("GNF", "Guinea Franc"), - ("GYD", "Guyana Dollar"), - ("HTG", "Haitian gourde"), - ("HKD", "Hong Kong Dollar"), - ("UAH", "Hryvnia"), - ("ISK", "Iceland Krona"), - ("INR", "Indian Rupee"), - ("IRR", "Iranian Rial"), - ("IQD", "Iraqi Dinar"), - ("IMP", "Isle of Man Pound"), - ("JMD", "Jamaican Dollar"), - ("JOD", "Jordanian Dinar"), - ("KES", "Kenyan Shilling"), - ("PGK", "Kina"), - ("LAK", "Kip"), - ("KWD", "Kuwaiti Dinar"), - ("AOA", "Kwanza"), - ("MMK", "Kyat"), - ("GEL", "Lari"), - ("LVL", "Latvian Lats"), - ("LBP", "Lebanese Pound"), - ("ALL", "Lek"), - ("HNL", "Lempira"), - ("SLL", "Leone"), - ("LSL", "Lesotho loti"), - ("LRD", "Liberian Dollar"), - ("LYD", "Libyan Dinar"), - ("SZL", "Lilangeni"), - ("LTL", "Lithuanian Litas"), - ("MGA", "Malagasy Ariary"), - ("MWK", "Malawian Kwacha"), - ("MYR", "Malaysian Ringgit"), - ("TMM", "Manat"), - ("MUR", "Mauritius Rupee"), - ("MZN", "Metical"), - ("MXV", "Mexican Unidad de Inversion (UDI)"), - ("MXN", "Mexican peso"), - ("MDL", "Moldovan Leu"), - ("MAD", "Moroccan Dirham"), - ("BOV", "Mvdol"), - ("NGN", "Naira"), - ("ERN", "Nakfa"), - ("NAD", "Namibian Dollar"), - ("NPR", "Nepalese Rupee"), - ("ANG", "Netherlands Antillian Guilder"), - ("ILS", "New Israeli Sheqel"), - ("RON", "New Leu"), - ("TWD", "New Taiwan Dollar"), - ("NZD", "New Zealand Dollar"), - ("KPW", "North Korean Won"), - ("NOK", "Norwegian Krone"), - ("PEN", "Nuevo Sol"), - ("MRO", "Ouguiya"), - ("TOP", "Paanga"), - ("PKR", "Pakistan Rupee"), - ("XPD", "Palladium"), - ("MOP", "Pataca"), - ("PHP", "Philippine Peso"), - ("XPT", "Platinum"), - ("GBP", "Pound Sterling"), - ("BWP", "Pula"), - ("QAR", "Qatari Rial"), - ("GTQ", "Quetzal"), - ("ZAR", "Rand"), - ("OMR", "Rial Omani"), - ("KHR", "Riel"), - ("MVR", "Rufiyaa"), - ("IDR", "Rupiah"), - ("RUB", "Russian Ruble"), - ("RWF", "Rwanda Franc"), - ("XDR", "SDR"), - ("SHP", "Saint Helena Pound"), - ("SAR", "Saudi Riyal"), - ("RSD", "Serbian Dinar"), - ("SCR", "Seychelles Rupee"), - ("XAG", "Silver"), - ("SGD", "Singapore Dollar"), - ("SBD", "Solomon Islands Dollar"), - ("KGS", "Som"), - ("SOS", "Somali Shilling"), - ("TJS", "Somoni"), - ("SSP", "South Sudanese Pound"), - ("LKR", "Sri Lanka Rupee"), - ("XSU", "Sucre"), - ("SDG", "Sudanese Pound"), - ("SRD", "Surinam Dollar"), - ("SEK", "Swedish Krona"), - ("CHF", "Swiss Franc"), - ("SYP", "Syrian Pound"), - ("BDT", "Taka"), - ("WST", "Tala"), - ("TZS", "Tanzanian Shilling"), - ("KZT", "Tenge"), - ("XXX", "The codes assigned for transactions where no currency is involved"), - ("TTD", "Trinidad and Tobago Dollar"), - ("MNT", "Tugrik"), - ("TND", "Tunisian Dinar"), - ("TRY", "Turkish Lira"), - ("TMT", "Turkmenistan New Manat"), - ("TVD", "Tuvalu dollar"), - ("AED", "UAE Dirham"), - ("XFU", "UIC-Franc"), - ("USD", "US Dollar"), - ("USN", "US Dollar (Next day)"), - ("UGX", "Uganda Shilling"), - ("CLF", "Unidad de Fomento"), - ("COU", "Unidad de Valor Real"), - ("UYI", "Uruguay Peso en Unidades Indexadas (URUIURUI)"), - ("UYU", "Uruguayan peso"), - ("UZS", "Uzbekistan Sum"), - ("VUV", "Vatu"), - ("CHE", "WIR Euro"), - ("CHW", "WIR Franc"), - ("KRW", "Won"), - ("YER", "Yemeni Rial"), - ("JPY", "Yen"), - ("CNY", "Yuan Renminbi"), - ("ZMK", "Zambian Kwacha"), - ("ZMW", "Zambian Kwacha"), - ("ZWD", "Zimbabwe Dollar A/06"), - ("ZWN", "Zimbabwe dollar A/08"), - ("ZWL", "Zimbabwe dollar A/09"), - ("PLN", "Zloty"), - ], - default="USD", - editable=False, - max_length=3, - ), - ), - ( - "rate", - djmoney.models.fields.MoneyField( - decimal_places=2, default=Decimal("0.0"), default_currency="USD", max_digits=10 - ), - ), - ("created_date", models.DateTimeField(default=django.utils.timezone.now)), - ], - options={"verbose_name": "Cambio", "verbose_name_plural": "Cambio"}, - ) - ] + operations = [] diff --git a/blog/migrations/0003_auto_20170701_1458.py b/blog/migrations/0003_auto_20170701_1458.py index 26434d82..cf4532cb 100644 --- a/blog/migrations/0003_auto_20170701_1458.py +++ b/blog/migrations/0003_auto_20170701_1458.py @@ -5,9 +5,4 @@ class Migration(migrations.Migration): dependencies = [("blog", "0002_dolarpeso")] - operations = [ - migrations.AlterModelOptions( - name="dolarpeso", - options={"verbose_name": "Cambio dolar", "verbose_name_plural": "Historial pesos/dolar "}, - ) - ] + operations = [] diff --git a/blog/migrations/0007_auto_20171210_1543.py b/blog/migrations/0007_auto_20171210_1543.py index 1e47e60f..fc2646de 100644 --- a/blog/migrations/0007_auto_20171210_1543.py +++ b/blog/migrations/0007_auto_20171210_1543.py @@ -1,840 +1,8 @@ # Generated by Django 1.10.6 on 2017-12-10 18:43 -from decimal import Decimal - -import djmoney.models.fields from django.db import migrations class Migration(migrations.Migration): dependencies = [("blog", "0006_post_image")] - operations = [ - migrations.AlterField( - model_name="dolarpeso", - name="ask", - field=djmoney.models.fields.MoneyField( - decimal_places=2, default=Decimal("0.0"), max_digits=10, default_currency="ARS" - ), - ), - migrations.AlterField( - model_name="dolarpeso", - name="ask_currency", - field=djmoney.models.fields.CurrencyField( - choices=[ - ("XUA", "ADB Unit of Account"), - ("AFN", "Afghani"), - ("DZD", "Algerian Dinar"), - ("ARS", "Argentine Peso"), - ("AMD", "Armenian Dram"), - ("AWG", "Aruban Guilder"), - ("AUD", "Australian Dollar"), - ("AZN", "Azerbaijanian Manat"), - ("BSD", "Bahamian Dollar"), - ("BHD", "Bahraini Dinar"), - ("THB", "Baht"), - ("PAB", "Balboa"), - ("BBD", "Barbados Dollar"), - ("BYN", "Belarussian Ruble"), - ("BYR", "Belarussian Ruble"), - ("BZD", "Belize Dollar"), - ("BMD", "Bermudian Dollar (customarily known as Bermuda Dollar)"), - ("BTN", "Bhutanese ngultrum"), - ("VEF", "Bolivar Fuerte"), - ("BOB", "Boliviano"), - ("XBA", "Bond Markets Units European Composite Unit (EURCO)"), - ("BRL", "Brazilian Real"), - ("BND", "Brunei Dollar"), - ("BGN", "Bulgarian Lev"), - ("BIF", "Burundi Franc"), - ("XOF", "CFA Franc BCEAO"), - ("XAF", "CFA franc BEAC"), - ("XPF", "CFP Franc"), - ("CAD", "Canadian Dollar"), - ("CVE", "Cape Verde Escudo"), - ("KYD", "Cayman Islands Dollar"), - ("CLP", "Chilean peso"), - ("XTS", "Codes specifically reserved for testing purposes"), - ("COP", "Colombian peso"), - ("KMF", "Comoro Franc"), - ("CDF", "Congolese franc"), - ("BAM", "Convertible Marks"), - ("NIO", "Cordoba Oro"), - ("CRC", "Costa Rican Colon"), - ("HRK", "Croatian Kuna"), - ("CUP", "Cuban Peso"), - ("CUC", "Cuban convertible peso"), - ("CZK", "Czech Koruna"), - ("GMD", "Dalasi"), - ("DKK", "Danish Krone"), - ("MKD", "Denar"), - ("DJF", "Djibouti Franc"), - ("STD", "Dobra"), - ("DOP", "Dominican Peso"), - ("VND", "Dong"), - ("XCD", "East Caribbean Dollar"), - ("EGP", "Egyptian Pound"), - ("SVC", "El Salvador Colon"), - ("ETB", "Ethiopian Birr"), - ("EUR", "Euro"), - ("XBB", "European Monetary Unit (E.M.U.-6)"), - ("XBD", "European Unit of Account 17(E.U.A.-17)"), - ("XBC", "European Unit of Account 9(E.U.A.-9)"), - ("FKP", "Falkland Islands Pound"), - ("FJD", "Fiji Dollar"), - ("HUF", "Forint"), - ("GHS", "Ghana Cedi"), - ("GIP", "Gibraltar Pound"), - ("XAU", "Gold"), - ("XFO", "Gold-Franc"), - ("PYG", "Guarani"), - ("GNF", "Guinea Franc"), - ("GYD", "Guyana Dollar"), - ("HTG", "Haitian gourde"), - ("HKD", "Hong Kong Dollar"), - ("UAH", "Hryvnia"), - ("ISK", "Iceland Krona"), - ("INR", "Indian Rupee"), - ("IRR", "Iranian Rial"), - ("IQD", "Iraqi Dinar"), - ("IMP", "Isle of Man Pound"), - ("JMD", "Jamaican Dollar"), - ("JOD", "Jordanian Dinar"), - ("KES", "Kenyan Shilling"), - ("PGK", "Kina"), - ("LAK", "Kip"), - ("KWD", "Kuwaiti Dinar"), - ("AOA", "Kwanza"), - ("MMK", "Kyat"), - ("GEL", "Lari"), - ("LVL", "Latvian Lats"), - ("LBP", "Lebanese Pound"), - ("ALL", "Lek"), - ("HNL", "Lempira"), - ("SLL", "Leone"), - ("LSL", "Lesotho loti"), - ("LRD", "Liberian Dollar"), - ("LYD", "Libyan Dinar"), - ("SZL", "Lilangeni"), - ("LTL", "Lithuanian Litas"), - ("MGA", "Malagasy Ariary"), - ("MWK", "Malawian Kwacha"), - ("MYR", "Malaysian Ringgit"), - ("TMM", "Manat"), - ("MUR", "Mauritius Rupee"), - ("MZN", "Metical"), - ("MXV", "Mexican Unidad de Inversion (UDI)"), - ("MXN", "Mexican peso"), - ("MDL", "Moldovan Leu"), - ("MAD", "Moroccan Dirham"), - ("BOV", "Mvdol"), - ("NGN", "Naira"), - ("ERN", "Nakfa"), - ("NAD", "Namibian Dollar"), - ("NPR", "Nepalese Rupee"), - ("ANG", "Netherlands Antillian Guilder"), - ("ILS", "New Israeli Sheqel"), - ("RON", "New Leu"), - ("TWD", "New Taiwan Dollar"), - ("NZD", "New Zealand Dollar"), - ("KPW", "North Korean Won"), - ("NOK", "Norwegian Krone"), - ("PEN", "Nuevo Sol"), - ("MRO", "Ouguiya"), - ("TOP", "Paanga"), - ("PKR", "Pakistan Rupee"), - ("XPD", "Palladium"), - ("MOP", "Pataca"), - ("PHP", "Philippine Peso"), - ("XPT", "Platinum"), - ("GBP", "Pound Sterling"), - ("BWP", "Pula"), - ("QAR", "Qatari Rial"), - ("GTQ", "Quetzal"), - ("ZAR", "Rand"), - ("OMR", "Rial Omani"), - ("KHR", "Riel"), - ("MVR", "Rufiyaa"), - ("IDR", "Rupiah"), - ("RUB", "Russian Ruble"), - ("RWF", "Rwanda Franc"), - ("XDR", "SDR"), - ("SHP", "Saint Helena Pound"), - ("SAR", "Saudi Riyal"), - ("RSD", "Serbian Dinar"), - ("SCR", "Seychelles Rupee"), - ("XAG", "Silver"), - ("SGD", "Singapore Dollar"), - ("SBD", "Solomon Islands Dollar"), - ("KGS", "Som"), - ("SOS", "Somali Shilling"), - ("TJS", "Somoni"), - ("SSP", "South Sudanese Pound"), - ("LKR", "Sri Lanka Rupee"), - ("XSU", "Sucre"), - ("SDG", "Sudanese Pound"), - ("SRD", "Surinam Dollar"), - ("SEK", "Swedish Krona"), - ("CHF", "Swiss Franc"), - ("SYP", "Syrian Pound"), - ("BDT", "Taka"), - ("WST", "Tala"), - ("TZS", "Tanzanian Shilling"), - ("KZT", "Tenge"), - ("XXX", "The codes assigned for transactions where no currency is involved"), - ("TTD", "Trinidad and Tobago Dollar"), - ("MNT", "Tugrik"), - ("TND", "Tunisian Dinar"), - ("TRY", "Turkish Lira"), - ("TMT", "Turkmenistan New Manat"), - ("TVD", "Tuvalu dollar"), - ("AED", "UAE Dirham"), - ("XFU", "UIC-Franc"), - ("USD", "US Dollar"), - ("USN", "US Dollar (Next day)"), - ("UGX", "Uganda Shilling"), - ("CLF", "Unidad de Fomento"), - ("COU", "Unidad de Valor Real"), - ("UYI", "Uruguay Peso en Unidades Indexadas (URUIURUI)"), - ("UYU", "Uruguayan peso"), - ("UZS", "Uzbekistan Sum"), - ("VUV", "Vatu"), - ("CHE", "WIR Euro"), - ("CHW", "WIR Franc"), - ("KRW", "Won"), - ("YER", "Yemeni Rial"), - ("JPY", "Yen"), - ("CNY", "Yuan Renminbi"), - ("ZMK", "Zambian Kwacha"), - ("ZMW", "Zambian Kwacha"), - ("ZWD", "Zimbabwe Dollar A/06"), - ("ZWN", "Zimbabwe dollar A/08"), - ("ZWL", "Zimbabwe dollar A/09"), - ("PLN", "Zloty"), - ], - default="XYZ", - editable=False, - max_length=3, - ), - ), - migrations.AlterField( - model_name="dolarpeso", - name="balance", - field=djmoney.models.fields.MoneyField( - decimal_places=2, default=Decimal("0.0"), max_digits=10, default_currency="ARS" - ), - ), - migrations.AlterField( - model_name="dolarpeso", - name="balance_currency", - field=djmoney.models.fields.CurrencyField( - choices=[ - ("XUA", "ADB Unit of Account"), - ("AFN", "Afghani"), - ("DZD", "Algerian Dinar"), - ("ARS", "Argentine Peso"), - ("AMD", "Armenian Dram"), - ("AWG", "Aruban Guilder"), - ("AUD", "Australian Dollar"), - ("AZN", "Azerbaijanian Manat"), - ("BSD", "Bahamian Dollar"), - ("BHD", "Bahraini Dinar"), - ("THB", "Baht"), - ("PAB", "Balboa"), - ("BBD", "Barbados Dollar"), - ("BYN", "Belarussian Ruble"), - ("BYR", "Belarussian Ruble"), - ("BZD", "Belize Dollar"), - ("BMD", "Bermudian Dollar (customarily known as Bermuda Dollar)"), - ("BTN", "Bhutanese ngultrum"), - ("VEF", "Bolivar Fuerte"), - ("BOB", "Boliviano"), - ("XBA", "Bond Markets Units European Composite Unit (EURCO)"), - ("BRL", "Brazilian Real"), - ("BND", "Brunei Dollar"), - ("BGN", "Bulgarian Lev"), - ("BIF", "Burundi Franc"), - ("XOF", "CFA Franc BCEAO"), - ("XAF", "CFA franc BEAC"), - ("XPF", "CFP Franc"), - ("CAD", "Canadian Dollar"), - ("CVE", "Cape Verde Escudo"), - ("KYD", "Cayman Islands Dollar"), - ("CLP", "Chilean peso"), - ("XTS", "Codes specifically reserved for testing purposes"), - ("COP", "Colombian peso"), - ("KMF", "Comoro Franc"), - ("CDF", "Congolese franc"), - ("BAM", "Convertible Marks"), - ("NIO", "Cordoba Oro"), - ("CRC", "Costa Rican Colon"), - ("HRK", "Croatian Kuna"), - ("CUP", "Cuban Peso"), - ("CUC", "Cuban convertible peso"), - ("CZK", "Czech Koruna"), - ("GMD", "Dalasi"), - ("DKK", "Danish Krone"), - ("MKD", "Denar"), - ("DJF", "Djibouti Franc"), - ("STD", "Dobra"), - ("DOP", "Dominican Peso"), - ("VND", "Dong"), - ("XCD", "East Caribbean Dollar"), - ("EGP", "Egyptian Pound"), - ("SVC", "El Salvador Colon"), - ("ETB", "Ethiopian Birr"), - ("EUR", "Euro"), - ("XBB", "European Monetary Unit (E.M.U.-6)"), - ("XBD", "European Unit of Account 17(E.U.A.-17)"), - ("XBC", "European Unit of Account 9(E.U.A.-9)"), - ("FKP", "Falkland Islands Pound"), - ("FJD", "Fiji Dollar"), - ("HUF", "Forint"), - ("GHS", "Ghana Cedi"), - ("GIP", "Gibraltar Pound"), - ("XAU", "Gold"), - ("XFO", "Gold-Franc"), - ("PYG", "Guarani"), - ("GNF", "Guinea Franc"), - ("GYD", "Guyana Dollar"), - ("HTG", "Haitian gourde"), - ("HKD", "Hong Kong Dollar"), - ("UAH", "Hryvnia"), - ("ISK", "Iceland Krona"), - ("INR", "Indian Rupee"), - ("IRR", "Iranian Rial"), - ("IQD", "Iraqi Dinar"), - ("IMP", "Isle of Man Pound"), - ("JMD", "Jamaican Dollar"), - ("JOD", "Jordanian Dinar"), - ("KES", "Kenyan Shilling"), - ("PGK", "Kina"), - ("LAK", "Kip"), - ("KWD", "Kuwaiti Dinar"), - ("AOA", "Kwanza"), - ("MMK", "Kyat"), - ("GEL", "Lari"), - ("LVL", "Latvian Lats"), - ("LBP", "Lebanese Pound"), - ("ALL", "Lek"), - ("HNL", "Lempira"), - ("SLL", "Leone"), - ("LSL", "Lesotho loti"), - ("LRD", "Liberian Dollar"), - ("LYD", "Libyan Dinar"), - ("SZL", "Lilangeni"), - ("LTL", "Lithuanian Litas"), - ("MGA", "Malagasy Ariary"), - ("MWK", "Malawian Kwacha"), - ("MYR", "Malaysian Ringgit"), - ("TMM", "Manat"), - ("MUR", "Mauritius Rupee"), - ("MZN", "Metical"), - ("MXV", "Mexican Unidad de Inversion (UDI)"), - ("MXN", "Mexican peso"), - ("MDL", "Moldovan Leu"), - ("MAD", "Moroccan Dirham"), - ("BOV", "Mvdol"), - ("NGN", "Naira"), - ("ERN", "Nakfa"), - ("NAD", "Namibian Dollar"), - ("NPR", "Nepalese Rupee"), - ("ANG", "Netherlands Antillian Guilder"), - ("ILS", "New Israeli Sheqel"), - ("RON", "New Leu"), - ("TWD", "New Taiwan Dollar"), - ("NZD", "New Zealand Dollar"), - ("KPW", "North Korean Won"), - ("NOK", "Norwegian Krone"), - ("PEN", "Nuevo Sol"), - ("MRO", "Ouguiya"), - ("TOP", "Paanga"), - ("PKR", "Pakistan Rupee"), - ("XPD", "Palladium"), - ("MOP", "Pataca"), - ("PHP", "Philippine Peso"), - ("XPT", "Platinum"), - ("GBP", "Pound Sterling"), - ("BWP", "Pula"), - ("QAR", "Qatari Rial"), - ("GTQ", "Quetzal"), - ("ZAR", "Rand"), - ("OMR", "Rial Omani"), - ("KHR", "Riel"), - ("MVR", "Rufiyaa"), - ("IDR", "Rupiah"), - ("RUB", "Russian Ruble"), - ("RWF", "Rwanda Franc"), - ("XDR", "SDR"), - ("SHP", "Saint Helena Pound"), - ("SAR", "Saudi Riyal"), - ("RSD", "Serbian Dinar"), - ("SCR", "Seychelles Rupee"), - ("XAG", "Silver"), - ("SGD", "Singapore Dollar"), - ("SBD", "Solomon Islands Dollar"), - ("KGS", "Som"), - ("SOS", "Somali Shilling"), - ("TJS", "Somoni"), - ("SSP", "South Sudanese Pound"), - ("LKR", "Sri Lanka Rupee"), - ("XSU", "Sucre"), - ("SDG", "Sudanese Pound"), - ("SRD", "Surinam Dollar"), - ("SEK", "Swedish Krona"), - ("CHF", "Swiss Franc"), - ("SYP", "Syrian Pound"), - ("BDT", "Taka"), - ("WST", "Tala"), - ("TZS", "Tanzanian Shilling"), - ("KZT", "Tenge"), - ("XXX", "The codes assigned for transactions where no currency is involved"), - ("TTD", "Trinidad and Tobago Dollar"), - ("MNT", "Tugrik"), - ("TND", "Tunisian Dinar"), - ("TRY", "Turkish Lira"), - ("TMT", "Turkmenistan New Manat"), - ("TVD", "Tuvalu dollar"), - ("AED", "UAE Dirham"), - ("XFU", "UIC-Franc"), - ("USD", "US Dollar"), - ("USN", "US Dollar (Next day)"), - ("UGX", "Uganda Shilling"), - ("CLF", "Unidad de Fomento"), - ("COU", "Unidad de Valor Real"), - ("UYI", "Uruguay Peso en Unidades Indexadas (URUIURUI)"), - ("UYU", "Uruguayan peso"), - ("UZS", "Uzbekistan Sum"), - ("VUV", "Vatu"), - ("CHE", "WIR Euro"), - ("CHW", "WIR Franc"), - ("KRW", "Won"), - ("YER", "Yemeni Rial"), - ("JPY", "Yen"), - ("CNY", "Yuan Renminbi"), - ("ZMK", "Zambian Kwacha"), - ("ZMW", "Zambian Kwacha"), - ("ZWD", "Zimbabwe Dollar A/06"), - ("ZWN", "Zimbabwe dollar A/08"), - ("ZWL", "Zimbabwe dollar A/09"), - ("PLN", "Zloty"), - ], - default="XYZ", - editable=False, - max_length=3, - ), - ), - migrations.AlterField( - model_name="dolarpeso", - name="bid", - field=djmoney.models.fields.MoneyField( - decimal_places=2, default=Decimal("0.0"), max_digits=10, default_currency="ARS" - ), - ), - migrations.AlterField( - model_name="dolarpeso", - name="bid_currency", - field=djmoney.models.fields.CurrencyField( - choices=[ - ("XUA", "ADB Unit of Account"), - ("AFN", "Afghani"), - ("DZD", "Algerian Dinar"), - ("ARS", "Argentine Peso"), - ("AMD", "Armenian Dram"), - ("AWG", "Aruban Guilder"), - ("AUD", "Australian Dollar"), - ("AZN", "Azerbaijanian Manat"), - ("BSD", "Bahamian Dollar"), - ("BHD", "Bahraini Dinar"), - ("THB", "Baht"), - ("PAB", "Balboa"), - ("BBD", "Barbados Dollar"), - ("BYN", "Belarussian Ruble"), - ("BYR", "Belarussian Ruble"), - ("BZD", "Belize Dollar"), - ("BMD", "Bermudian Dollar (customarily known as Bermuda Dollar)"), - ("BTN", "Bhutanese ngultrum"), - ("VEF", "Bolivar Fuerte"), - ("BOB", "Boliviano"), - ("XBA", "Bond Markets Units European Composite Unit (EURCO)"), - ("BRL", "Brazilian Real"), - ("BND", "Brunei Dollar"), - ("BGN", "Bulgarian Lev"), - ("BIF", "Burundi Franc"), - ("XOF", "CFA Franc BCEAO"), - ("XAF", "CFA franc BEAC"), - ("XPF", "CFP Franc"), - ("CAD", "Canadian Dollar"), - ("CVE", "Cape Verde Escudo"), - ("KYD", "Cayman Islands Dollar"), - ("CLP", "Chilean peso"), - ("XTS", "Codes specifically reserved for testing purposes"), - ("COP", "Colombian peso"), - ("KMF", "Comoro Franc"), - ("CDF", "Congolese franc"), - ("BAM", "Convertible Marks"), - ("NIO", "Cordoba Oro"), - ("CRC", "Costa Rican Colon"), - ("HRK", "Croatian Kuna"), - ("CUP", "Cuban Peso"), - ("CUC", "Cuban convertible peso"), - ("CZK", "Czech Koruna"), - ("GMD", "Dalasi"), - ("DKK", "Danish Krone"), - ("MKD", "Denar"), - ("DJF", "Djibouti Franc"), - ("STD", "Dobra"), - ("DOP", "Dominican Peso"), - ("VND", "Dong"), - ("XCD", "East Caribbean Dollar"), - ("EGP", "Egyptian Pound"), - ("SVC", "El Salvador Colon"), - ("ETB", "Ethiopian Birr"), - ("EUR", "Euro"), - ("XBB", "European Monetary Unit (E.M.U.-6)"), - ("XBD", "European Unit of Account 17(E.U.A.-17)"), - ("XBC", "European Unit of Account 9(E.U.A.-9)"), - ("FKP", "Falkland Islands Pound"), - ("FJD", "Fiji Dollar"), - ("HUF", "Forint"), - ("GHS", "Ghana Cedi"), - ("GIP", "Gibraltar Pound"), - ("XAU", "Gold"), - ("XFO", "Gold-Franc"), - ("PYG", "Guarani"), - ("GNF", "Guinea Franc"), - ("GYD", "Guyana Dollar"), - ("HTG", "Haitian gourde"), - ("HKD", "Hong Kong Dollar"), - ("UAH", "Hryvnia"), - ("ISK", "Iceland Krona"), - ("INR", "Indian Rupee"), - ("IRR", "Iranian Rial"), - ("IQD", "Iraqi Dinar"), - ("IMP", "Isle of Man Pound"), - ("JMD", "Jamaican Dollar"), - ("JOD", "Jordanian Dinar"), - ("KES", "Kenyan Shilling"), - ("PGK", "Kina"), - ("LAK", "Kip"), - ("KWD", "Kuwaiti Dinar"), - ("AOA", "Kwanza"), - ("MMK", "Kyat"), - ("GEL", "Lari"), - ("LVL", "Latvian Lats"), - ("LBP", "Lebanese Pound"), - ("ALL", "Lek"), - ("HNL", "Lempira"), - ("SLL", "Leone"), - ("LSL", "Lesotho loti"), - ("LRD", "Liberian Dollar"), - ("LYD", "Libyan Dinar"), - ("SZL", "Lilangeni"), - ("LTL", "Lithuanian Litas"), - ("MGA", "Malagasy Ariary"), - ("MWK", "Malawian Kwacha"), - ("MYR", "Malaysian Ringgit"), - ("TMM", "Manat"), - ("MUR", "Mauritius Rupee"), - ("MZN", "Metical"), - ("MXV", "Mexican Unidad de Inversion (UDI)"), - ("MXN", "Mexican peso"), - ("MDL", "Moldovan Leu"), - ("MAD", "Moroccan Dirham"), - ("BOV", "Mvdol"), - ("NGN", "Naira"), - ("ERN", "Nakfa"), - ("NAD", "Namibian Dollar"), - ("NPR", "Nepalese Rupee"), - ("ANG", "Netherlands Antillian Guilder"), - ("ILS", "New Israeli Sheqel"), - ("RON", "New Leu"), - ("TWD", "New Taiwan Dollar"), - ("NZD", "New Zealand Dollar"), - ("KPW", "North Korean Won"), - ("NOK", "Norwegian Krone"), - ("PEN", "Nuevo Sol"), - ("MRO", "Ouguiya"), - ("TOP", "Paanga"), - ("PKR", "Pakistan Rupee"), - ("XPD", "Palladium"), - ("MOP", "Pataca"), - ("PHP", "Philippine Peso"), - ("XPT", "Platinum"), - ("GBP", "Pound Sterling"), - ("BWP", "Pula"), - ("QAR", "Qatari Rial"), - ("GTQ", "Quetzal"), - ("ZAR", "Rand"), - ("OMR", "Rial Omani"), - ("KHR", "Riel"), - ("MVR", "Rufiyaa"), - ("IDR", "Rupiah"), - ("RUB", "Russian Ruble"), - ("RWF", "Rwanda Franc"), - ("XDR", "SDR"), - ("SHP", "Saint Helena Pound"), - ("SAR", "Saudi Riyal"), - ("RSD", "Serbian Dinar"), - ("SCR", "Seychelles Rupee"), - ("XAG", "Silver"), - ("SGD", "Singapore Dollar"), - ("SBD", "Solomon Islands Dollar"), - ("KGS", "Som"), - ("SOS", "Somali Shilling"), - ("TJS", "Somoni"), - ("SSP", "South Sudanese Pound"), - ("LKR", "Sri Lanka Rupee"), - ("XSU", "Sucre"), - ("SDG", "Sudanese Pound"), - ("SRD", "Surinam Dollar"), - ("SEK", "Swedish Krona"), - ("CHF", "Swiss Franc"), - ("SYP", "Syrian Pound"), - ("BDT", "Taka"), - ("WST", "Tala"), - ("TZS", "Tanzanian Shilling"), - ("KZT", "Tenge"), - ("XXX", "The codes assigned for transactions where no currency is involved"), - ("TTD", "Trinidad and Tobago Dollar"), - ("MNT", "Tugrik"), - ("TND", "Tunisian Dinar"), - ("TRY", "Turkish Lira"), - ("TMT", "Turkmenistan New Manat"), - ("TVD", "Tuvalu dollar"), - ("AED", "UAE Dirham"), - ("XFU", "UIC-Franc"), - ("USD", "US Dollar"), - ("USN", "US Dollar (Next day)"), - ("UGX", "Uganda Shilling"), - ("CLF", "Unidad de Fomento"), - ("COU", "Unidad de Valor Real"), - ("UYI", "Uruguay Peso en Unidades Indexadas (URUIURUI)"), - ("UYU", "Uruguayan peso"), - ("UZS", "Uzbekistan Sum"), - ("VUV", "Vatu"), - ("CHE", "WIR Euro"), - ("CHW", "WIR Franc"), - ("KRW", "Won"), - ("YER", "Yemeni Rial"), - ("JPY", "Yen"), - ("CNY", "Yuan Renminbi"), - ("ZMK", "Zambian Kwacha"), - ("ZMW", "Zambian Kwacha"), - ("ZWD", "Zimbabwe Dollar A/06"), - ("ZWN", "Zimbabwe dollar A/08"), - ("ZWL", "Zimbabwe dollar A/09"), - ("PLN", "Zloty"), - ], - default="XYZ", - editable=False, - max_length=3, - ), - ), - migrations.AlterField( - model_name="dolarpeso", - name="rate", - field=djmoney.models.fields.MoneyField( - decimal_places=2, default=Decimal("0.0"), max_digits=10, default_currency="ARS" - ), - ), - migrations.AlterField( - model_name="dolarpeso", - name="rate_currency", - field=djmoney.models.fields.CurrencyField( - choices=[ - ("XUA", "ADB Unit of Account"), - ("AFN", "Afghani"), - ("DZD", "Algerian Dinar"), - ("ARS", "Argentine Peso"), - ("AMD", "Armenian Dram"), - ("AWG", "Aruban Guilder"), - ("AUD", "Australian Dollar"), - ("AZN", "Azerbaijanian Manat"), - ("BSD", "Bahamian Dollar"), - ("BHD", "Bahraini Dinar"), - ("THB", "Baht"), - ("PAB", "Balboa"), - ("BBD", "Barbados Dollar"), - ("BYN", "Belarussian Ruble"), - ("BYR", "Belarussian Ruble"), - ("BZD", "Belize Dollar"), - ("BMD", "Bermudian Dollar (customarily known as Bermuda Dollar)"), - ("BTN", "Bhutanese ngultrum"), - ("VEF", "Bolivar Fuerte"), - ("BOB", "Boliviano"), - ("XBA", "Bond Markets Units European Composite Unit (EURCO)"), - ("BRL", "Brazilian Real"), - ("BND", "Brunei Dollar"), - ("BGN", "Bulgarian Lev"), - ("BIF", "Burundi Franc"), - ("XOF", "CFA Franc BCEAO"), - ("XAF", "CFA franc BEAC"), - ("XPF", "CFP Franc"), - ("CAD", "Canadian Dollar"), - ("CVE", "Cape Verde Escudo"), - ("KYD", "Cayman Islands Dollar"), - ("CLP", "Chilean peso"), - ("XTS", "Codes specifically reserved for testing purposes"), - ("COP", "Colombian peso"), - ("KMF", "Comoro Franc"), - ("CDF", "Congolese franc"), - ("BAM", "Convertible Marks"), - ("NIO", "Cordoba Oro"), - ("CRC", "Costa Rican Colon"), - ("HRK", "Croatian Kuna"), - ("CUP", "Cuban Peso"), - ("CUC", "Cuban convertible peso"), - ("CZK", "Czech Koruna"), - ("GMD", "Dalasi"), - ("DKK", "Danish Krone"), - ("MKD", "Denar"), - ("DJF", "Djibouti Franc"), - ("STD", "Dobra"), - ("DOP", "Dominican Peso"), - ("VND", "Dong"), - ("XCD", "East Caribbean Dollar"), - ("EGP", "Egyptian Pound"), - ("SVC", "El Salvador Colon"), - ("ETB", "Ethiopian Birr"), - ("EUR", "Euro"), - ("XBB", "European Monetary Unit (E.M.U.-6)"), - ("XBD", "European Unit of Account 17(E.U.A.-17)"), - ("XBC", "European Unit of Account 9(E.U.A.-9)"), - ("FKP", "Falkland Islands Pound"), - ("FJD", "Fiji Dollar"), - ("HUF", "Forint"), - ("GHS", "Ghana Cedi"), - ("GIP", "Gibraltar Pound"), - ("XAU", "Gold"), - ("XFO", "Gold-Franc"), - ("PYG", "Guarani"), - ("GNF", "Guinea Franc"), - ("GYD", "Guyana Dollar"), - ("HTG", "Haitian gourde"), - ("HKD", "Hong Kong Dollar"), - ("UAH", "Hryvnia"), - ("ISK", "Iceland Krona"), - ("INR", "Indian Rupee"), - ("IRR", "Iranian Rial"), - ("IQD", "Iraqi Dinar"), - ("IMP", "Isle of Man Pound"), - ("JMD", "Jamaican Dollar"), - ("JOD", "Jordanian Dinar"), - ("KES", "Kenyan Shilling"), - ("PGK", "Kina"), - ("LAK", "Kip"), - ("KWD", "Kuwaiti Dinar"), - ("AOA", "Kwanza"), - ("MMK", "Kyat"), - ("GEL", "Lari"), - ("LVL", "Latvian Lats"), - ("LBP", "Lebanese Pound"), - ("ALL", "Lek"), - ("HNL", "Lempira"), - ("SLL", "Leone"), - ("LSL", "Lesotho loti"), - ("LRD", "Liberian Dollar"), - ("LYD", "Libyan Dinar"), - ("SZL", "Lilangeni"), - ("LTL", "Lithuanian Litas"), - ("MGA", "Malagasy Ariary"), - ("MWK", "Malawian Kwacha"), - ("MYR", "Malaysian Ringgit"), - ("TMM", "Manat"), - ("MUR", "Mauritius Rupee"), - ("MZN", "Metical"), - ("MXV", "Mexican Unidad de Inversion (UDI)"), - ("MXN", "Mexican peso"), - ("MDL", "Moldovan Leu"), - ("MAD", "Moroccan Dirham"), - ("BOV", "Mvdol"), - ("NGN", "Naira"), - ("ERN", "Nakfa"), - ("NAD", "Namibian Dollar"), - ("NPR", "Nepalese Rupee"), - ("ANG", "Netherlands Antillian Guilder"), - ("ILS", "New Israeli Sheqel"), - ("RON", "New Leu"), - ("TWD", "New Taiwan Dollar"), - ("NZD", "New Zealand Dollar"), - ("KPW", "North Korean Won"), - ("NOK", "Norwegian Krone"), - ("PEN", "Nuevo Sol"), - ("MRO", "Ouguiya"), - ("TOP", "Paanga"), - ("PKR", "Pakistan Rupee"), - ("XPD", "Palladium"), - ("MOP", "Pataca"), - ("PHP", "Philippine Peso"), - ("XPT", "Platinum"), - ("GBP", "Pound Sterling"), - ("BWP", "Pula"), - ("QAR", "Qatari Rial"), - ("GTQ", "Quetzal"), - ("ZAR", "Rand"), - ("OMR", "Rial Omani"), - ("KHR", "Riel"), - ("MVR", "Rufiyaa"), - ("IDR", "Rupiah"), - ("RUB", "Russian Ruble"), - ("RWF", "Rwanda Franc"), - ("XDR", "SDR"), - ("SHP", "Saint Helena Pound"), - ("SAR", "Saudi Riyal"), - ("RSD", "Serbian Dinar"), - ("SCR", "Seychelles Rupee"), - ("XAG", "Silver"), - ("SGD", "Singapore Dollar"), - ("SBD", "Solomon Islands Dollar"), - ("KGS", "Som"), - ("SOS", "Somali Shilling"), - ("TJS", "Somoni"), - ("SSP", "South Sudanese Pound"), - ("LKR", "Sri Lanka Rupee"), - ("XSU", "Sucre"), - ("SDG", "Sudanese Pound"), - ("SRD", "Surinam Dollar"), - ("SEK", "Swedish Krona"), - ("CHF", "Swiss Franc"), - ("SYP", "Syrian Pound"), - ("BDT", "Taka"), - ("WST", "Tala"), - ("TZS", "Tanzanian Shilling"), - ("KZT", "Tenge"), - ("XXX", "The codes assigned for transactions where no currency is involved"), - ("TTD", "Trinidad and Tobago Dollar"), - ("MNT", "Tugrik"), - ("TND", "Tunisian Dinar"), - ("TRY", "Turkish Lira"), - ("TMT", "Turkmenistan New Manat"), - ("TVD", "Tuvalu dollar"), - ("AED", "UAE Dirham"), - ("XFU", "UIC-Franc"), - ("USD", "US Dollar"), - ("USN", "US Dollar (Next day)"), - ("UGX", "Uganda Shilling"), - ("CLF", "Unidad de Fomento"), - ("COU", "Unidad de Valor Real"), - ("UYI", "Uruguay Peso en Unidades Indexadas (URUIURUI)"), - ("UYU", "Uruguayan peso"), - ("UZS", "Uzbekistan Sum"), - ("VUV", "Vatu"), - ("CHE", "WIR Euro"), - ("CHW", "WIR Franc"), - ("KRW", "Won"), - ("YER", "Yemeni Rial"), - ("JPY", "Yen"), - ("CNY", "Yuan Renminbi"), - ("ZMK", "Zambian Kwacha"), - ("ZMW", "Zambian Kwacha"), - ("ZWD", "Zimbabwe Dollar A/06"), - ("ZWN", "Zimbabwe dollar A/08"), - ("ZWL", "Zimbabwe dollar A/09"), - ("PLN", "Zloty"), - ], - default="XYZ", - editable=False, - max_length=3, - ), - ), - ] + operations = [] diff --git a/blog/migrations/0009_auto_20200216_1243.py b/blog/migrations/0009_auto_20200216_1243.py index 9c5c3406..cc5b909c 100644 --- a/blog/migrations/0009_auto_20200216_1243.py +++ b/blog/migrations/0009_auto_20200216_1243.py @@ -1,24 +1,8 @@ # Generated by Django 3.0.3 on 2020-02-16 12:43 -import djmoney.models.fields from django.db import migrations class Migration(migrations.Migration): dependencies = [("blog", "0008_auto_20191112_1022")] - operations = [ - migrations.AlterField( - model_name="dolarpeso", name="ask", field=djmoney.models.fields.MoneyField(decimal_places=2, max_digits=10) - ), - migrations.AlterField( - model_name="dolarpeso", - name="balance", - field=djmoney.models.fields.MoneyField(decimal_places=2, max_digits=10), - ), - migrations.AlterField( - model_name="dolarpeso", name="bid", field=djmoney.models.fields.MoneyField(decimal_places=2, max_digits=10) - ), - migrations.AlterField( - model_name="dolarpeso", name="rate", field=djmoney.models.fields.MoneyField(decimal_places=2, max_digits=10) - ), - ] + operations = [] diff --git a/blog/static/about/bio_pic.jpg b/blog/static/about/bio_pic.jpg deleted file mode 100644 index 1462da08..00000000 Binary files a/blog/static/about/bio_pic.jpg and /dev/null differ diff --git a/blog/static/about/pic_0.jpg b/blog/static/about/pic_0.jpg deleted file mode 100644 index eff69dc7..00000000 Binary files a/blog/static/about/pic_0.jpg and /dev/null differ diff --git a/blog/static/about/pic_1.jpg b/blog/static/about/pic_1.jpg deleted file mode 100644 index 506008c7..00000000 Binary files a/blog/static/about/pic_1.jpg and /dev/null differ diff --git a/blog/static/blog/css/main.css b/blog/static/blog/css/main.css deleted file mode 100644 index 8c058396..00000000 --- a/blog/static/blog/css/main.css +++ /dev/null @@ -1,175 +0,0 @@ -body { - font-family: 'Roboto Mono', monospace; - padding-top: 20px; - padding-bottom: 20px; -} - -p { - padding: 5px; -} - -.page-subtitle { - color: crimson; -} - -.navbar { - font-size: 1em; - margin-bottom: 20px; -} - -.comment { - margin: 20px 0px 20px 20px; -} - -.side-boxes { - padding: 9px 14px; - margin-bottom: 14px; - background-color: #f7f7f9; - border: 1px solid #e1e1e8; - border-radius: 4px; - border-color: #ddd; - border-width: 1px; -} - -.side-boxes { - padding: 9px 14px; - margin-bottom: 14px; - border: 1px solid #e1e1e8; - border-radius: 4px; - border-color: #ddd; - border-width: 1px; -} - -.date{ - text-align: right; -} - -img.center { - display: block; - margin: 0 auto; -} - -h4.title-img { - text-align: center; -} - -.zen { - border: 0; - padding: 0; - margin: 0; - font-size: 0.75em; - color: black; -} - -h2.post_detail_title { - font-family: "Helvetica Neue",Helvetica,Arial,sans-serif; - font-size: xx-large; - text-align: left; - margin-left: 12px; -} - -h2.post_detail_title_alone { - font-family: "Helvetica Neue",Helvetica,Arial,sans-serif; - font-size: xx-large; - text-align: left; -} - -div.post_detail { - background-color: gainsboro; -} -pre { - margin: 0px 30px 2px; -} - -h6.date { - font-weight: bold; -} - -div.titles{ - padding: 0px 10px; -} - -ul.post_detail_ul { - list-style-type: none; -} - -.pic-link { - width: 17px; - height: 17px; -} - -li.grey { - background-color: #e2e2e2; - padding-bottom: 15px; -} - -div.menu { - font-size: medium; - padding: 0px; -} - -.post_detail_title { - text-align: center; -} - -.tag-item { - display: inline; - list-style-type: none; -} -.tags { - padding-left: 0px; -} - -.size-1 { font-size: 1em } -.size-2 { font-size: 1.2em } -.size-3 { font-size: 1.25em } -.size-4 { font-size: 1.3em } -.size-5 { font-size: 1.35em } -.size-6 { font-size: 1.4em } -.size-7 { font-size: 1.45em } -.size-8 { font-size: 1.5em } -.size-9 { font-size: 1.55em } -.size-10 { font-size: 1.6em } -.size-11 { font-size: 1.65em } -.size-12 { font-size: 1.7em } -.size-13 { font-size: 1.75em } -.size-14 { font-size: 1.8em } -.size-15 { font-size: 1.9em } -.size-16 { font-size: 2em } - -.clase{ - padding-left: 10px; -} - -.txt-clases{ - text-align: justify; - font-size: 1.9em; -} - -.portrait{ - max-width: 130%; - margin-left: -25px; - margin-top: 15px; -} - -.vcenter { - display: inline-block; - vertical-align: middle; - float: none; -} - -.linkedin { - color: #355a82; -} -.github{ - color: #355a82; -} -.twitter{ - color: #337ab7; -} -.instagram{ - color: #337ab7; -} -.email{ - color: #355a82; -} diff --git a/blog/static/blog/img/bio_pic_1.jpg b/blog/static/blog/img/bio_pic_1.jpg index 0c395511..35a01134 100644 Binary files a/blog/static/blog/img/bio_pic_1.jpg and b/blog/static/blog/img/bio_pic_1.jpg differ diff --git a/blog/static/blog/img/bio_pic_2.jpg b/blog/static/blog/img/bio_pic_2.jpg index 3ce131d8..c7828183 100644 Binary files a/blog/static/blog/img/bio_pic_2.jpg and b/blog/static/blog/img/bio_pic_2.jpg differ diff --git a/blog/static/blog/img/bio_pic_3.jpg b/blog/static/blog/img/bio_pic_3.jpg index 3813c23b..14d2aebf 100644 Binary files a/blog/static/blog/img/bio_pic_3.jpg and b/blog/static/blog/img/bio_pic_3.jpg differ diff --git a/blog/static/blog/img/bio_pic_5.jpg b/blog/static/blog/img/bio_pic_5.jpg index c8190357..c19faf00 100644 Binary files a/blog/static/blog/img/bio_pic_5.jpg and b/blog/static/blog/img/bio_pic_5.jpg differ diff --git a/blog/static/blog/img/book_blue.png b/blog/static/blog/img/book_blue.png deleted file mode 100644 index e6d228e3..00000000 Binary files a/blog/static/blog/img/book_blue.png and /dev/null differ diff --git a/blog/static/blog/img/book_yellow.png b/blog/static/blog/img/book_yellow.png deleted file mode 100644 index d07644e6..00000000 Binary files a/blog/static/blog/img/book_yellow.png and /dev/null differ diff --git a/blog/static/blog/img/diskette.png b/blog/static/blog/img/diskette.png deleted file mode 100644 index d1c6401f..00000000 Binary files a/blog/static/blog/img/diskette.png and /dev/null differ diff --git a/blog/static/blog/img/email-red.png b/blog/static/blog/img/email-red.png deleted file mode 100644 index e3ab91ac..00000000 Binary files a/blog/static/blog/img/email-red.png and /dev/null differ diff --git a/blog/static/blog/img/house_blue.png b/blog/static/blog/img/house_blue.png deleted file mode 100644 index ceb73394..00000000 Binary files a/blog/static/blog/img/house_blue.png and /dev/null differ diff --git a/blog/static/blog/img/lamp-blue.png b/blog/static/blog/img/lamp-blue.png deleted file mode 100644 index c2ec0770..00000000 Binary files a/blog/static/blog/img/lamp-blue.png and /dev/null differ diff --git a/blog/static/blog/img/lamp-yellow.png b/blog/static/blog/img/lamp-yellow.png deleted file mode 100644 index 743a2381..00000000 Binary files a/blog/static/blog/img/lamp-yellow.png and /dev/null differ diff --git a/blog/static/blog/img/logo-django.svg b/blog/static/blog/img/logo-django.svg deleted file mode 100644 index 4e6db240..00000000 --- a/blog/static/blog/img/logo-django.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - logo-django - Created with Sketch (http://www.bohemiancoding.com/sketch) - - - - - - - diff --git a/blog/static/blog/img/logo-pyar.png b/blog/static/blog/img/logo-pyar.png deleted file mode 100644 index 5aa9f673..00000000 Binary files a/blog/static/blog/img/logo-pyar.png and /dev/null differ diff --git a/blog/static/blog/img/octocat.png b/blog/static/blog/img/octocat.png deleted file mode 100644 index ea287159..00000000 Binary files a/blog/static/blog/img/octocat.png and /dev/null differ diff --git a/blog/static/blog/img/python-banner.png b/blog/static/blog/img/python-banner.png deleted file mode 100644 index 607f9338..00000000 Binary files a/blog/static/blog/img/python-banner.png and /dev/null differ diff --git a/blog/static/blog/img/python-logo.png b/blog/static/blog/img/python-logo.png deleted file mode 100644 index e6c63e1f..00000000 Binary files a/blog/static/blog/img/python-logo.png and /dev/null differ diff --git a/blog/static/blog/img/python-logo1.png b/blog/static/blog/img/python-logo1.png deleted file mode 100644 index e6c63e1f..00000000 Binary files a/blog/static/blog/img/python-logo1.png and /dev/null differ diff --git a/blog/static/blog/img/python-orange.png b/blog/static/blog/img/python-orange.png deleted file mode 100644 index b6210bc2..00000000 Binary files a/blog/static/blog/img/python-orange.png and /dev/null differ diff --git a/blog/static/blog/img/pyvideo-logo.png b/blog/static/blog/img/pyvideo-logo.png deleted file mode 100644 index b49587b1..00000000 Binary files a/blog/static/blog/img/pyvideo-logo.png and /dev/null differ diff --git a/blog/static/blog/js/colorize.js b/blog/static/blog/js/colorize.js index ddc0fbd3..1b6f527e 100644 --- a/blog/static/blog/js/colorize.js +++ b/blog/static/blog/js/colorize.js @@ -1,19 +1,3 @@ -function colorize() { - return { - randomColor: function() { - const colors = [ - 'text-pink-400', - 'text-orange-400', - 'text-green-400', - 'text-purple-500', - 'text-yellow-400', - 'text-blue-400' - ]; - return colors[Math.floor(Math.random() * colors.length)]; - } - } -} - function splitHTMLByWords(html) { return html.split(/(<.*?>|[\s\n]+)/).filter(chunk => chunk.trim() !== ""); } @@ -49,7 +33,38 @@ function colorizeParagraph(paragraphElement) { paragraphElement.innerHTML = colorizeContent(paragraphElement.innerHTML, 0.3); } -document.addEventListener("DOMContentLoaded", function() { +function colorizeAllParagraphs() { const paragraphs = document.querySelectorAll('p'); paragraphs.forEach(p => colorizeParagraph(p)); +} + +function shouldColorize() { + // Check for homepage in different languages + if (window.location.pathname === '/en/' || window.location.pathname === '/es/') { + return false; + } + + // Check for blog page in different languages + if (window.location.pathname.startsWith('/en/blog/') || window.location.pathname.startsWith('/es/blog/')) { + return false; + } + + // If none of the above, return true + return true; +} + +// Export the function for external use +window.colorizeAllParagraphs = colorizeAllParagraphs; + + +document.body.addEventListener('htmx:afterOnLoad', function() { + if (shouldColorize()) { + window.colorizeAllParagraphs(); + } +}); + +document.addEventListener("DOMContentLoaded", function() { + if (shouldColorize()) { + window.colorizeAllParagraphs(); + } }); diff --git a/blog/static/blog/js/htmx.min.1.9.4.js b/blog/static/blog/js/htmx.min.1.9.4.js new file mode 100644 index 00000000..40de7f6b --- /dev/null +++ b/blog/static/blog/js/htmx.min.1.9.4.js @@ -0,0 +1 @@ +(function(e,t){if(typeof define==="function"&&define.amd){define([],t)}else if(typeof module==="object"&&module.exports){module.exports=t()}else{e.htmx=e.htmx||t()}})(typeof self!=="undefined"?self:this,function(){return function(){"use strict";var G={onLoad:t,process:Nt,on:le,off:ue,trigger:oe,ajax:xr,find:b,findAll:f,closest:d,values:function(e,t){var r=er(e,t||"post");return r.values},remove:U,addClass:B,removeClass:n,toggleClass:V,takeClass:j,defineExtension:Cr,removeExtension:Rr,logAll:X,logNone:F,logger:null,config:{historyEnabled:true,historyCacheSize:10,refreshOnHistoryMiss:false,defaultSwapStyle:"innerHTML",defaultSwapDelay:0,defaultSettleDelay:20,includeIndicatorStyles:true,indicatorClass:"htmx-indicator",requestClass:"htmx-request",addedClass:"htmx-added",settlingClass:"htmx-settling",swappingClass:"htmx-swapping",allowEval:true,inlineScriptNonce:"",attributesToSettle:["class","style","width","height"],withCredentials:false,timeout:0,wsReconnectDelay:"full-jitter",wsBinaryType:"blob",disableSelector:"[hx-disable], [data-hx-disable]",useTemplateFragments:false,scrollBehavior:"smooth",defaultFocusScroll:false,getCacheBusterParam:false,globalViewTransitions:false,methodsThatUseUrlParams:["get"]},parseInterval:v,_:e,createEventSource:function(e){return new EventSource(e,{withCredentials:true})},createWebSocket:function(e){var t=new WebSocket(e,[]);t.binaryType=G.config.wsBinaryType;return t},version:"1.9.4"};var C={addTriggerHandler:bt,bodyContains:re,canAccessLocalStorage:M,findThisElement:he,filterValues:ar,hasAttribute:o,getAttributeValue:Z,getClosestAttributeValue:Y,getClosestMatch:c,getExpressionVars:gr,getHeaders:ir,getInputValues:er,getInternalData:ee,getSwapSpecification:sr,getTriggerSpecs:Ge,getTarget:de,makeFragment:l,mergeObjects:ne,makeSettleInfo:S,oobSwap:me,querySelectorExt:ie,selectAndSwap:De,settleImmediately:Wt,shouldCancel:Qe,triggerEvent:oe,triggerErrorEvent:ae,withExtensions:w};var R=["get","post","put","delete","patch"];var O=R.map(function(e){return"[hx-"+e+"], [data-hx-"+e+"]"}).join(", ");function v(e){if(e==undefined){return undefined}if(e.slice(-2)=="ms"){return parseFloat(e.slice(0,-2))||undefined}if(e.slice(-1)=="s"){return parseFloat(e.slice(0,-1))*1e3||undefined}if(e.slice(-1)=="m"){return parseFloat(e.slice(0,-1))*1e3*60||undefined}return parseFloat(e)||undefined}function J(e,t){return e.getAttribute&&e.getAttribute(t)}function o(e,t){return e.hasAttribute&&(e.hasAttribute(t)||e.hasAttribute("data-"+t))}function Z(e,t){return J(e,t)||J(e,"data-"+t)}function u(e){return e.parentElement}function K(){return document}function c(e,t){while(e&&!t(e)){e=u(e)}return e?e:null}function T(e,t,r){var n=Z(t,r);var i=Z(t,"hx-disinherit");if(e!==t&&i&&(i==="*"||i.split(" ").indexOf(r)>=0)){return"unset"}else{return n}}function Y(t,r){var n=null;c(t,function(e){return n=T(t,e,r)});if(n!=="unset"){return n}}function h(e,t){var r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.oMatchesSelector;return r&&r.call(e,t)}function q(e){var t=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i;var r=t.exec(e);if(r){return r[1].toLowerCase()}else{return""}}function i(e,t){var r=new DOMParser;var n=r.parseFromString(e,"text/html");var i=n.body;while(t>0){t--;i=i.firstChild}if(i==null){i=K().createDocumentFragment()}return i}function H(e){return e.match(/",0);return r.querySelector("template").content}else{var n=q(e);switch(n){case"thead":case"tbody":case"tfoot":case"colgroup":case"caption":return i(""+e+"
",1);case"col":return i(""+e+"
",2);case"tr":return i(""+e+"
",2);case"td":case"th":return i(""+e+"
",3);case"script":return i("
"+e+"
",1);default:return i(e,0)}}}function Q(e){if(e){e()}}function L(e,t){return Object.prototype.toString.call(e)==="[object "+t+"]"}function A(e){return L(e,"Function")}function N(e){return L(e,"Object")}function ee(e){var t="htmx-internal-data";var r=e[t];if(!r){r=e[t]={}}return r}function I(e){var t=[];if(e){for(var r=0;r=0}function re(e){if(e.getRootNode&&e.getRootNode()instanceof window.ShadowRoot){return K().body.contains(e.getRootNode().host)}else{return K().body.contains(e)}}function P(e){return e.trim().split(/\s+/)}function ne(e,t){for(var r in t){if(t.hasOwnProperty(r)){e[r]=t[r]}}return e}function y(e){try{return JSON.parse(e)}catch(e){x(e);return null}}function M(){var e="htmx:localStorageTest";try{localStorage.setItem(e,e);localStorage.removeItem(e);return true}catch(e){return false}}function D(t){try{var e=new URL(t);if(e){t=e.pathname+e.search}if(!t.match("^/$")){t=t.replace(/\/+$/,"")}return t}catch(e){return t}}function e(e){return hr(K().body,function(){return eval(e)})}function t(t){var e=G.on("htmx:load",function(e){t(e.detail.elt)});return e}function X(){G.logger=function(e,t,r){if(console){console.log(t,e,r)}}}function F(){G.logger=null}function b(e,t){if(t){return e.querySelector(t)}else{return b(K(),e)}}function f(e,t){if(t){return e.querySelectorAll(t)}else{return f(K(),e)}}function U(e,t){e=s(e);if(t){setTimeout(function(){U(e);e=null},t)}else{e.parentElement.removeChild(e)}}function B(e,t,r){e=s(e);if(r){setTimeout(function(){B(e,t);e=null},r)}else{e.classList&&e.classList.add(t)}}function n(e,t,r){e=s(e);if(r){setTimeout(function(){n(e,t);e=null},r)}else{if(e.classList){e.classList.remove(t);if(e.classList.length===0){e.removeAttribute("class")}}}}function V(e,t){e=s(e);e.classList.toggle(t)}function j(e,t){e=s(e);te(e.parentElement.children,function(e){n(e,t)});B(e,t)}function d(e,t){e=s(e);if(e.closest){return e.closest(t)}else{do{if(e==null||h(e,t)){return e}}while(e=e&&u(e));return null}}function r(e){var t=e.trim();if(t.startsWith("<")&&t.endsWith("/>")){return t.substring(1,t.length-2)}else{return t}}function W(e,t){if(t.indexOf("closest ")===0){return[d(e,r(t.substr(8)))]}else if(t.indexOf("find ")===0){return[b(e,r(t.substr(5)))]}else if(t.indexOf("next ")===0){return[_(e,r(t.substr(5)))]}else if(t.indexOf("previous ")===0){return[z(e,r(t.substr(9)))]}else if(t==="document"){return[document]}else if(t==="window"){return[window]}else{return K().querySelectorAll(r(t))}}var _=function(e,t){var r=K().querySelectorAll(t);for(var n=0;n=0;n--){var i=r[n];if(i.compareDocumentPosition(e)===Node.DOCUMENT_POSITION_FOLLOWING){return i}}};function ie(e,t){if(t){return W(e,t)[0]}else{return W(K().body,e)[0]}}function s(e){if(L(e,"String")){return b(e)}else{return e}}function $(e,t,r){if(A(t)){return{target:K().body,event:e,listener:t}}else{return{target:s(e),event:t,listener:r}}}function le(t,r,n){Tr(function(){var e=$(t,r,n);e.target.addEventListener(e.event,e.listener)});var e=A(r);return e?r:n}function ue(t,r,n){Tr(function(){var e=$(t,r,n);e.target.removeEventListener(e.event,e.listener)});return A(r)?r:n}var fe=K().createElement("output");function ce(e,t){var r=Y(e,t);if(r){if(r==="this"){return[he(e,t)]}else{var n=W(e,r);if(n.length===0){x('The selector "'+r+'" on '+t+" returned no matches!");return[fe]}else{return n}}}}function he(e,t){return c(e,function(e){return Z(e,t)!=null})}function de(e){var t=Y(e,"hx-target");if(t){if(t==="this"){return he(e,"hx-target")}else{return ie(e,t)}}else{var r=ee(e);if(r.boosted){return K().body}else{return e}}}function ve(e){var t=G.config.attributesToSettle;for(var r=0;r0){o=e.substr(0,e.indexOf(":"));t=e.substr(e.indexOf(":")+1,e.length)}else{o=e}var r=K().querySelectorAll(t);if(r){te(r,function(e){var t;var r=i.cloneNode(true);t=K().createDocumentFragment();t.appendChild(r);if(!pe(o,e)){t=r}var n={shouldSwap:true,target:e,fragment:t};if(!oe(e,"htmx:oobBeforeSwap",n))return;e=n.target;if(n["shouldSwap"]){Pe(o,e,e,t,a)}te(a.elts,function(e){oe(e,"htmx:oobAfterSwap",n)})});i.parentNode.removeChild(i)}else{i.parentNode.removeChild(i);ae(K().body,"htmx:oobErrorNoTarget",{content:i})}return e}function xe(e,t,r){var n=Y(e,"hx-select-oob");if(n){var i=n.split(",");for(let e=0;e0){var r=t.replace("'","\\'");var n=e.tagName.replace(":","\\:");var i=o.querySelector(n+"[id='"+r+"']");if(i&&i!==o){var a=e.cloneNode();ge(e,i);s.tasks.push(function(){ge(e,a)})}}})}function we(e){return function(){n(e,G.config.addedClass);Nt(e);St(e);Se(e);oe(e,"htmx:load")}}function Se(e){var t="[autofocus]";var r=h(e,t)?e:e.querySelector(t);if(r!=null){r.focus()}}function a(e,t,r,n){be(e,r,n);while(r.childNodes.length>0){var i=r.firstChild;B(i,G.config.addedClass);e.insertBefore(i,t);if(i.nodeType!==Node.TEXT_NODE&&i.nodeType!==Node.COMMENT_NODE){n.tasks.push(we(i))}}}function Ee(e,t){var r=0;while(r-1){var t=e.replace(/]*>|>)([\s\S]*?)<\/svg>/gim,"");var r=t.match(/]*>|>)([\s\S]*?)<\/title>/im);if(r){return r[2]}}}function De(e,t,r,n,i,a){i.title=Me(n);var o=l(n);if(o){xe(r,o,i);o=ke(r,o,a);ye(o);return Pe(e,r,t,o,i)}}function Xe(e,t,r){var n=e.getResponseHeader(t);if(n.indexOf("{")===0){var i=y(n);for(var a in i){if(i.hasOwnProperty(a)){var o=i[a];if(!N(o)){o={value:o}}oe(r,a,o)}}}else{var s=n.split(",");for(var l=0;l0){var o=t[0];if(o==="]"){n--;if(n===0){if(a===null){i=i+"true"}t.shift();i+=")})";try{var s=hr(e,function(){return Function(i)()},function(){return true});s.source=i;return s}catch(e){ae(K().body,"htmx:syntax:error",{error:e,source:i});return null}}}else if(o==="["){n++}if(_e(o,a,r)){i+="(("+r+"."+o+") ? ("+r+"."+o+") : (window."+o+"))"}else{i=i+o}a=t.shift()}}}function m(e,t){var r="";while(e.length>0&&!e[0].match(t)){r+=e.shift()}return r}var $e="input, textarea, select";function Ge(e){var t=Z(e,"hx-trigger");var r=[];if(t){var n=We(t);do{m(n,je);var i=n.length;var a=m(n,/[,\[\s]/);if(a!==""){if(a==="every"){var o={trigger:"every"};m(n,je);o.pollInterval=v(m(n,/[,\[\s]/));m(n,je);var s=ze(e,n,"event");if(s){o.eventFilter=s}r.push(o)}else if(a.indexOf("sse:")===0){r.push({trigger:"sse",sseEvent:a.substr(4)})}else{var l={trigger:a};var s=ze(e,n,"event");if(s){l.eventFilter=s}while(n.length>0&&n[0]!==","){m(n,je);var u=n.shift();if(u==="changed"){l.changed=true}else if(u==="once"){l.once=true}else if(u==="consume"){l.consume=true}else if(u==="delay"&&n[0]===":"){n.shift();l.delay=v(m(n,p))}else if(u==="from"&&n[0]===":"){n.shift();var f=m(n,p);if(f==="closest"||f==="find"||f==="next"||f==="previous"){n.shift();f+=" "+m(n,p)}l.from=f}else if(u==="target"&&n[0]===":"){n.shift();l.target=m(n,p)}else if(u==="throttle"&&n[0]===":"){n.shift();l.throttle=v(m(n,p))}else if(u==="queue"&&n[0]===":"){n.shift();l.queue=m(n,p)}else if((u==="root"||u==="threshold")&&n[0]===":"){n.shift();l[u]=m(n,p)}else{ae(e,"htmx:syntax:error",{token:n.shift()})}}r.push(l)}}if(n.length===i){ae(e,"htmx:syntax:error",{token:n.shift()})}m(n,je)}while(n[0]===","&&n.shift())}if(r.length>0){return r}else if(h(e,"form")){return[{trigger:"submit"}]}else if(h(e,'input[type="button"], input[type="submit"]')){return[{trigger:"click"}]}else if(h(e,$e)){return[{trigger:"change"}]}else{return[{trigger:"click"}]}}function Je(e){ee(e).cancelled=true}function Ze(e,t,r){var n=ee(e);n.timeout=setTimeout(function(){if(re(e)&&n.cancelled!==true){if(!tt(r,e,kt("hx:poll:trigger",{triggerSpec:r,target:e}))){t(e)}Ze(e,t,r)}},r.pollInterval)}function Ke(e){return location.hostname===e.hostname&&J(e,"href")&&J(e,"href").indexOf("#")!==0}function Ye(t,r,e){if(t.tagName==="A"&&Ke(t)&&(t.target===""||t.target==="_self")||t.tagName==="FORM"){r.boosted=true;var n,i;if(t.tagName==="A"){n="get";i=t.href}else{var a=J(t,"method");n=a?a.toLowerCase():"get";if(n==="get"){}i=J(t,"action")}e.forEach(function(e){rt(t,function(e,t){if(d(e,G.config.disableSelector)){g(e);return}se(n,i,e,t)},r,e,true)})}}function Qe(e,t){if(e.type==="submit"||e.type==="click"){if(t.tagName==="FORM"){return true}if(h(t,'input[type="submit"], button')&&d(t,"form")!==null){return true}if(t.tagName==="A"&&t.href&&(t.getAttribute("href")==="#"||t.getAttribute("href").indexOf("#")!==0)){return true}}return false}function et(e,t){return ee(e).boosted&&e.tagName==="A"&&t.type==="click"&&(t.ctrlKey||t.metaKey)}function tt(e,t,r){var n=e.eventFilter;if(n){try{return n.call(t,r)!==true}catch(e){ae(K().body,"htmx:eventFilter:error",{error:e,source:n.source});return true}}return false}function rt(a,o,e,s,l){var u=ee(a);var t;if(s.from){t=W(a,s.from)}else{t=[a]}if(s.changed){t.forEach(function(e){var t=ee(e);t.lastValue=e.value})}te(t,function(n){var i=function(e){if(!re(a)){n.removeEventListener(s.trigger,i);return}if(et(a,e)){return}if(l||Qe(e,a)){e.preventDefault()}if(tt(s,a,e)){return}var t=ee(e);t.triggerSpec=s;if(t.handledFor==null){t.handledFor=[]}if(t.handledFor.indexOf(a)<0){t.handledFor.push(a);if(s.consume){e.stopPropagation()}if(s.target&&e.target){if(!h(e.target,s.target)){return}}if(s.once){if(u.triggeredOnce){return}else{u.triggeredOnce=true}}if(s.changed){var r=ee(n);if(r.lastValue===n.value){return}r.lastValue=n.value}if(u.delayed){clearTimeout(u.delayed)}if(u.throttle){return}if(s.throttle){if(!u.throttle){o(a,e);u.throttle=setTimeout(function(){u.throttle=null},s.throttle)}}else if(s.delay){u.delayed=setTimeout(function(){o(a,e)},s.delay)}else{oe(a,"htmx:trigger");o(a,e)}}};if(e.listenerInfos==null){e.listenerInfos=[]}e.listenerInfos.push({trigger:s.trigger,listener:i,on:n});n.addEventListener(s.trigger,i)})}var nt=false;var it=null;function at(){if(!it){it=function(){nt=true};window.addEventListener("scroll",it);setInterval(function(){if(nt){nt=false;te(K().querySelectorAll("[hx-trigger='revealed'],[data-hx-trigger='revealed']"),function(e){ot(e)})}},200)}}function ot(t){if(!o(t,"data-hx-revealed")&&k(t)){t.setAttribute("data-hx-revealed","true");var e=ee(t);if(e.initHash){oe(t,"revealed")}else{t.addEventListener("htmx:afterProcessNode",function(e){oe(t,"revealed")},{once:true})}}}function st(e,t,r){var n=P(r);for(var i=0;i=0){var t=ct(n);setTimeout(function(){lt(s,r,n+1)},t)}};t.onopen=function(e){n=0};ee(s).webSocket=t;t.addEventListener("message",function(e){if(ut(s)){return}var t=e.data;w(s,function(e){t=e.transformResponse(t,null,s)});var r=S(s);var n=l(t);var i=I(n.children);for(var a=0;a0){oe(u,"htmx:validation:halted",i);return}t.send(JSON.stringify(l));if(Qe(e,u)){e.preventDefault()}})}else{ae(u,"htmx:noWebSocketSourceError")}}function ct(e){var t=G.config.wsReconnectDelay;if(typeof t==="function"){return t(e)}if(t==="full-jitter"){var r=Math.min(e,6);var n=1e3*Math.pow(2,r);return n*Math.random()}x('htmx.config.wsReconnectDelay must either be a function or the string "full-jitter"')}function ht(e,t,r){var n=P(r);for(var i=0;i0){var o=n.shift();var s=o.match(/^\s*([a-zA-Z:\-]+:)(.*)/);if(a===0&&s){o.split(":");i=s[1].slice(0,-1);r[i]=s[2]}else{r[i]+=o}a+=Tt(o)}for(var l in r){qt(e,l,r[l])}}}function Lt(t){Re(t);for(var e=0;eG.config.historyCacheSize){i.shift()}while(i.length>0){try{localStorage.setItem("htmx-history-cache",JSON.stringify(i));break}catch(e){ae(K().body,"htmx:historyCacheError",{cause:e,cache:i});i.shift()}}}function Ft(e){if(!M()){return null}e=D(e);var t=y(localStorage.getItem("htmx-history-cache"))||[];for(var r=0;r=200&&this.status<400){oe(K().body,"htmx:historyCacheMissLoad",o);var e=l(this.response);e=e.querySelector("[hx-history-elt],[data-hx-history-elt]")||e;var t=Dt();var r=S(t);var n=Me(this.response);if(n){var i=b("title");if(i){i.innerHTML=n}else{window.document.title=n}}Ie(t,e,r);Wt(r.tasks);Mt=a;oe(K().body,"htmx:historyRestore",{path:a,cacheMiss:true,serverResponse:this.response})}else{ae(K().body,"htmx:historyCacheMissLoadError",o)}};e.send()}function zt(e){Bt();e=e||location.pathname+location.search;var t=Ft(e);if(t){var r=l(t.content);var n=Dt();var i=S(n);Ie(n,r,i);Wt(i.tasks);document.title=t.title;setTimeout(function(){window.scrollTo(0,t.scroll)},0);Mt=e;oe(K().body,"htmx:historyRestore",{path:e,item:t})}else{if(G.config.refreshOnHistoryMiss){window.location.reload(true)}else{_t(e)}}}function $t(e){var t=ce(e,"hx-indicator");if(t==null){t=[e]}te(t,function(e){var t=ee(e);t.requestCount=(t.requestCount||0)+1;e.classList["add"].call(e.classList,G.config.requestClass)});return t}function Gt(e){te(e,function(e){var t=ee(e);t.requestCount=(t.requestCount||0)-1;if(t.requestCount===0){e.classList["remove"].call(e.classList,G.config.requestClass)}})}function Jt(e,t){for(var r=0;r=0}function sr(e,t){var r=t?t:Y(e,"hx-swap");var n={swapStyle:ee(e).boosted?"innerHTML":G.config.defaultSwapStyle,swapDelay:G.config.defaultSwapDelay,settleDelay:G.config.defaultSettleDelay};if(ee(e).boosted&&!or(e)){n["show"]="top"}if(r){var i=P(r);if(i.length>0){n["swapStyle"]=i[0];for(var a=1;a0?l.join(":"):null;n["scroll"]=u;n["scrollTarget"]=f}if(o.indexOf("show:")===0){var c=o.substr(5);var l=c.split(":");var h=l.pop();var f=l.length>0?l.join(":"):null;n["show"]=h;n["showTarget"]=f}if(o.indexOf("focus-scroll:")===0){var d=o.substr("focus-scroll:".length);n["focusScroll"]=d=="true"}}}}return n}function lr(e){return Y(e,"hx-encoding")==="multipart/form-data"||h(e,"form")&&J(e,"enctype")==="multipart/form-data"}function ur(t,r,n){var i=null;w(r,function(e){if(i==null){i=e.encodeParameters(t,n,r)}});if(i!=null){return i}else{if(lr(r)){return nr(n)}else{return rr(n)}}}function S(e){return{tasks:[],elts:[e]}}function fr(e,t){var r=e[0];var n=e[e.length-1];if(t.scroll){var i=null;if(t.scrollTarget){i=ie(r,t.scrollTarget)}if(t.scroll==="top"&&(r||i)){i=i||r;i.scrollTop=0}if(t.scroll==="bottom"&&(n||i)){i=i||n;i.scrollTop=i.scrollHeight}}if(t.show){var i=null;if(t.showTarget){var a=t.showTarget;if(t.showTarget==="window"){a="body"}i=ie(r,a)}if(t.show==="top"&&(r||i)){i=i||r;i.scrollIntoView({block:"start",behavior:G.config.scrollBehavior})}if(t.show==="bottom"&&(n||i)){i=i||n;i.scrollIntoView({block:"end",behavior:G.config.scrollBehavior})}}}function cr(e,t,r,n){if(n==null){n={}}if(e==null){return n}var i=Z(e,t);if(i){var a=i.trim();var o=r;if(a==="unset"){return null}if(a.indexOf("javascript:")===0){a=a.substr(11);o=true}else if(a.indexOf("js:")===0){a=a.substr(3);o=true}if(a.indexOf("{")!==0){a="{"+a+"}"}var s;if(o){s=hr(e,function(){return Function("return ("+a+")")()},{})}else{s=y(a)}for(var l in s){if(s.hasOwnProperty(l)){if(n[l]==null){n[l]=s[l]}}}}return cr(u(e),t,r,n)}function hr(e,t,r){if(G.config.allowEval){return t()}else{ae(e,"htmx:evalDisallowedError");return r}}function dr(e,t){return cr(e,"hx-vars",true,t)}function vr(e,t){return cr(e,"hx-vals",false,t)}function gr(e){return ne(dr(e),vr(e))}function pr(t,r,n){if(n!==null){try{t.setRequestHeader(r,n)}catch(e){t.setRequestHeader(r,encodeURIComponent(n));t.setRequestHeader(r+"-URI-AutoEncoded","true")}}}function mr(t){if(t.responseURL&&typeof URL!=="undefined"){try{var e=new URL(t.responseURL);return e.pathname+e.search}catch(e){ae(K().body,"htmx:badResponseUrl",{url:t.responseURL})}}}function E(e,t){return e.getAllResponseHeaders().match(t)}function xr(e,t,r){e=e.toLowerCase();if(r){if(r instanceof Element||L(r,"String")){return se(e,t,null,null,{targetOverride:s(r),returnPromise:true})}else{return se(e,t,s(r.source),r.event,{handler:r.handler,headers:r.headers,values:r.values,targetOverride:s(r.target),swapOverride:r.swap,returnPromise:true})}}else{return se(e,t,null,null,{returnPromise:true})}}function yr(e){var t=[];while(e){t.push(e);e=e.parentElement}return t}function se(e,t,n,r,i,M){var a=null;var o=null;i=i!=null?i:{};if(i.returnPromise&&typeof Promise!=="undefined"){var s=new Promise(function(e,t){a=e;o=t})}if(n==null){n=K().body}var D=i.handler||wr;if(!re(n)){return}var l=i.targetOverride||de(n);if(l==null||l==fe){ae(n,"htmx:targetError",{target:Z(n,"hx-target")});return}if(!M){var X=function(){return se(e,t,n,r,i,true)};var F={target:l,elt:n,path:t,verb:e,triggeringEvent:r,etc:i,issueRequest:X};if(oe(n,"htmx:confirm",F)===false){return}}var u=n;var f=ee(n);var c=Y(n,"hx-sync");var h=null;var d=false;if(c){var v=c.split(":");var g=v[0].trim();if(g==="this"){u=he(n,"hx-sync")}else{u=ie(n,g)}c=(v[1]||"drop").trim();f=ee(u);if(c==="drop"&&f.xhr&&f.abortable!==true){return}else if(c==="abort"){if(f.xhr){return}else{d=true}}else if(c==="replace"){oe(u,"htmx:abort")}else if(c.indexOf("queue")===0){var U=c.split(" ");h=(U[1]||"last").trim()}}if(f.xhr){if(f.abortable){oe(u,"htmx:abort")}else{if(h==null){if(r){var p=ee(r);if(p&&p.triggerSpec&&p.triggerSpec.queue){h=p.triggerSpec.queue}}if(h==null){h="last"}}if(f.queuedRequests==null){f.queuedRequests=[]}if(h==="first"&&f.queuedRequests.length===0){f.queuedRequests.push(function(){se(e,t,n,r,i)})}else if(h==="all"){f.queuedRequests.push(function(){se(e,t,n,r,i)})}else if(h==="last"){f.queuedRequests=[];f.queuedRequests.push(function(){se(e,t,n,r,i)})}return}}var m=new XMLHttpRequest;f.xhr=m;f.abortable=d;var x=function(){f.xhr=null;f.abortable=false;if(f.queuedRequests!=null&&f.queuedRequests.length>0){var e=f.queuedRequests.shift();e()}};var y=Y(n,"hx-prompt");if(y){var b=prompt(y);if(b===null||!oe(n,"htmx:prompt",{prompt:b,target:l})){Q(a);x();return s}}var w=Y(n,"hx-confirm");if(w){if(!confirm(w)){Q(a);x();return s}}var S=ir(n,l,b);if(i.headers){S=ne(S,i.headers)}var E=er(n,e);var C=E.errors;var R=E.values;if(i.values){R=ne(R,i.values)}var B=gr(n);var O=ne(R,B);var T=ar(O,n);if(e!=="get"&&!lr(n)){S["Content-Type"]="application/x-www-form-urlencoded"}if(G.config.getCacheBusterParam&&e==="get"){T["org.htmx.cache-buster"]=J(l,"id")||"true"}if(t==null||t===""){t=K().location.href}var q=cr(n,"hx-request");var V=ee(n).boosted;var H=G.config.methodsThatUseUrlParams.indexOf(e)>=0;var L={boosted:V,useUrlParams:H,parameters:T,unfilteredParameters:O,headers:S,target:l,verb:e,errors:C,withCredentials:i.credentials||q.credentials||G.config.withCredentials,timeout:i.timeout||q.timeout||G.config.timeout,path:t,triggeringEvent:r};if(!oe(n,"htmx:configRequest",L)){Q(a);x();return s}t=L.path;e=L.verb;S=L.headers;T=L.parameters;C=L.errors;H=L.useUrlParams;if(C&&C.length>0){oe(n,"htmx:validation:halted",L);Q(a);x();return s}var j=t.split("#");var W=j[0];var A=j[1];var N=t;if(H){N=W;var _=Object.keys(T).length!==0;if(_){if(N.indexOf("?")<0){N+="?"}else{N+="&"}N+=rr(T);if(A){N+="#"+A}}}m.open(e.toUpperCase(),N,true);m.overrideMimeType("text/html");m.withCredentials=L.withCredentials;m.timeout=L.timeout;if(q.noHeaders){}else{for(var I in S){if(S.hasOwnProperty(I)){var z=S[I];pr(m,I,z)}}}var k={xhr:m,target:l,requestConfig:L,etc:i,boosted:V,pathInfo:{requestPath:t,finalRequestPath:N,anchor:A}};m.onload=function(){try{var e=yr(n);k.pathInfo.responsePath=mr(m);D(n,k);Gt(P);oe(n,"htmx:afterRequest",k);oe(n,"htmx:afterOnLoad",k);if(!re(n)){var t=null;while(e.length>0&&t==null){var r=e.shift();if(re(r)){t=r}}if(t){oe(t,"htmx:afterRequest",k);oe(t,"htmx:afterOnLoad",k)}}Q(a);x()}catch(e){ae(n,"htmx:onLoadError",ne({error:e},k));throw e}};m.onerror=function(){Gt(P);ae(n,"htmx:afterRequest",k);ae(n,"htmx:sendError",k);Q(o);x()};m.onabort=function(){Gt(P);ae(n,"htmx:afterRequest",k);ae(n,"htmx:sendAbort",k);Q(o);x()};m.ontimeout=function(){Gt(P);ae(n,"htmx:afterRequest",k);ae(n,"htmx:timeout",k);Q(o);x()};if(!oe(n,"htmx:beforeRequest",k)){Q(a);x();return s}var P=$t(n);te(["loadstart","loadend","progress","abort"],function(t){te([m,m.upload],function(e){e.addEventListener(t,function(e){oe(n,"htmx:xhr:"+t,{lengthComputable:e.lengthComputable,loaded:e.loaded,total:e.total})})})});oe(n,"htmx:beforeSend",k);var $=H?null:ur(m,n,T);m.send($);return s}function br(e,t){var r=t.xhr;var n=null;var i=null;if(E(r,/HX-Push:/i)){n=r.getResponseHeader("HX-Push");i="push"}else if(E(r,/HX-Push-Url:/i)){n=r.getResponseHeader("HX-Push-Url");i="push"}else if(E(r,/HX-Replace-Url:/i)){n=r.getResponseHeader("HX-Replace-Url");i="replace"}if(n){if(n==="false"){return{}}else{return{type:i,path:n}}}var a=t.pathInfo.finalRequestPath;var o=t.pathInfo.responsePath;var s=Y(e,"hx-push-url");var l=Y(e,"hx-replace-url");var u=ee(e).boosted;var f=null;var c=null;if(s){f="push";c=s}else if(l){f="replace";c=l}else if(u){f="push";c=o||a}if(c){if(c==="false"){return{}}if(c==="true"){c=o||a}if(t.pathInfo.anchor&&c.indexOf("#")===-1){c=c+"#"+t.pathInfo.anchor}return{type:f,path:c}}else{return{}}}function wr(l,u){var f=u.xhr;var c=u.target;var e=u.etc;if(!oe(l,"htmx:beforeOnLoad",u))return;if(E(f,/HX-Trigger:/i)){Xe(f,"HX-Trigger",l)}if(E(f,/HX-Location:/i)){Bt();var t=f.getResponseHeader("HX-Location");var h;if(t.indexOf("{")===0){h=y(t);t=h["path"];delete h["path"]}xr("GET",t,h).then(function(){Vt(t)});return}if(E(f,/HX-Redirect:/i)){location.href=f.getResponseHeader("HX-Redirect");return}if(E(f,/HX-Refresh:/i)){if("true"===f.getResponseHeader("HX-Refresh")){location.reload();return}}if(E(f,/HX-Retarget:/i)){u.target=K().querySelector(f.getResponseHeader("HX-Retarget"))}var d=br(l,u);var r=f.status>=200&&f.status<400&&f.status!==204;var v=f.response;var n=f.status>=400;var i=ne({shouldSwap:r,serverResponse:v,isError:n},u);if(!oe(c,"htmx:beforeSwap",i))return;c=i.target;v=i.serverResponse;n=i.isError;u.target=c;u.failed=n;u.successful=!n;if(i.shouldSwap){if(f.status===286){Je(l)}w(l,function(e){v=e.transformResponse(v,f,l)});if(d.type){Bt()}var a=e.swapOverride;if(E(f,/HX-Reswap:/i)){a=f.getResponseHeader("HX-Reswap")}var h=sr(l,a);c.classList.add(G.config.swappingClass);var g=null;var p=null;var o=function(){try{var e=document.activeElement;var t={};try{t={elt:e,start:e?e.selectionStart:null,end:e?e.selectionEnd:null}}catch(e){}var r;if(E(f,/HX-Reselect:/i)){r=f.getResponseHeader("HX-Reselect")}var n=S(c);De(h.swapStyle,c,l,v,n,r);if(t.elt&&!re(t.elt)&&J(t.elt,"id")){var i=document.getElementById(J(t.elt,"id"));var a={preventScroll:h.focusScroll!==undefined?!h.focusScroll:!G.config.defaultFocusScroll};if(i){if(t.start&&i.setSelectionRange){try{i.setSelectionRange(t.start,t.end)}catch(e){}}i.focus(a)}}c.classList.remove(G.config.swappingClass);te(n.elts,function(e){if(e.classList){e.classList.add(G.config.settlingClass)}oe(e,"htmx:afterSwap",u)});if(E(f,/HX-Trigger-After-Swap:/i)){var o=l;if(!re(l)){o=K().body}Xe(f,"HX-Trigger-After-Swap",o)}var s=function(){te(n.tasks,function(e){e.call()});te(n.elts,function(e){if(e.classList){e.classList.remove(G.config.settlingClass)}oe(e,"htmx:afterSettle",u)});if(d.type){if(d.type==="push"){Vt(d.path);oe(K().body,"htmx:pushedIntoHistory",{path:d.path})}else{jt(d.path);oe(K().body,"htmx:replacedInHistory",{path:d.path})}}if(u.pathInfo.anchor){var e=b("#"+u.pathInfo.anchor);if(e){e.scrollIntoView({block:"start",behavior:"auto"})}}if(n.title){var t=b("title");if(t){t.innerHTML=n.title}else{window.document.title=n.title}}fr(n.elts,h);if(E(f,/HX-Trigger-After-Settle:/i)){var r=l;if(!re(l)){r=K().body}Xe(f,"HX-Trigger-After-Settle",r)}Q(g)};if(h.settleDelay>0){setTimeout(s,h.settleDelay)}else{s()}}catch(e){ae(l,"htmx:swapError",u);Q(p);throw e}};var s=G.config.globalViewTransitions;if(h.hasOwnProperty("transition")){s=h.transition}if(s&&oe(l,"htmx:beforeTransition",u)&&typeof Promise!=="undefined"&&document.startViewTransition){var m=new Promise(function(e,t){g=e;p=t});var x=o;o=function(){document.startViewTransition(function(){x();return m})}}if(h.swapDelay>0){setTimeout(o,h.swapDelay)}else{o()}}if(n){ae(l,"htmx:responseError",ne({error:"Response Status Error Code "+f.status+" from "+u.pathInfo.requestPath},u))}}var Sr={};function Er(){return{init:function(e){return null},onEvent:function(e,t){return true},transformResponse:function(e,t,r){return e},isInlineSwap:function(e){return false},handleSwap:function(e,t,r,n){return false},encodeParameters:function(e,t,r){return null}}}function Cr(e,t){if(t.init){t.init(C)}Sr[e]=ne(Er(),t)}function Rr(e){delete Sr[e]}function Or(e,r,n){if(e==undefined){return r}if(r==undefined){r=[]}if(n==undefined){n=[]}var t=Z(e,"hx-ext");if(t){te(t.split(","),function(e){e=e.replace(/ /g,"");if(e.slice(0,7)=="ignore:"){n.push(e.slice(7));return}if(n.indexOf(e)<0){var t=Sr[e];if(t&&r.indexOf(t)<0){r.push(t)}}})}return Or(u(e),r,n)}function Tr(e){if(K().readyState!=="loading"){e()}else{K().addEventListener("DOMContentLoaded",e)}}function qr(){if(G.config.includeIndicatorStyles!==false){K().head.insertAdjacentHTML("beforeend","")}}function Hr(){var e=K().querySelector('meta[name="htmx-config"]');if(e){return y(e.content)}else{return null}}function Lr(){var e=Hr();if(e){G.config=ne(G.config,e)}}Tr(function(){Lr();qr();var e=K().body;Nt(e);var t=K().querySelectorAll("[hx-trigger='restored'],[data-hx-trigger='restored']");e.addEventListener("htmx:abort",function(e){var t=e.target;var r=ee(t);if(r&&r.xhr){r.xhr.abort()}});var r=window.onpopstate;window.onpopstate=function(e){if(e.state&&e.state.htmx){zt();te(t,function(e){oe(e,"htmx:restored",{document:K(),triggerEvent:oe})})}else{if(r){r(e)}}};setTimeout(function(){oe(e,"htmx:load",{});e=null},0)});return G}()}); diff --git a/blog/static/blog/js/menu.js b/blog/static/blog/js/menu.js index d5e1cd25..c2b30030 100644 --- a/blog/static/blog/js/menu.js +++ b/blog/static/blog/js/menu.js @@ -1,20 +1,67 @@ document.addEventListener("DOMContentLoaded", function() { - let dropdown = document.querySelector(".absolute.right-0.z-20.mt-2"); - let button = document.querySelector("button.language-dropdown"); + function handleDropdownBehavior() { + document.addEventListener("click", function(event) { + const dropdown = document.getElementById("language-dropdown"); + const button = document.getElementById("language-button"); + const mobileMenu = document.getElementById("mobile-menu"); + const mobileButton = document.getElementById("mobile-menu-button"); - document.addEventListener("click", function(event) { - // Check if the dropdown and button exist and if the clicked element is not the dropdown or the button + + // Hide language dropdown if clicked outside if (dropdown && button && !dropdown.contains(event.target) && !button.contains(event.target) && dropdown.style.display !== "none") { - dropdown.style.display = "none"; + dropdown.style.display = "none"; + } + + // Hide mobile menu if clicked outside + if (mobileMenu && mobileButton && !mobileMenu.contains(event.target) && !mobileButton.contains(event.target) && mobileMenu.style.display !== "none") { + mobileMenu.style.display = "none"; } - }); - const mobileButton = document.getElementById("mobile-menu-button"); - const mobileMenu = document.getElementById("mobile-menu"); + }); + } - if (mobileButton && mobileMenu) { + function handleMobileMenuBehavior() { + const mobileButton = document.getElementById("mobile-menu-button"); + const mobileMenu = document.getElementById("mobile-menu"); + const mobileLinks = mobileMenu ? mobileMenu.querySelectorAll('a') : []; // Get all anchor tags within the mobile menu + + if (mobileButton && mobileMenu) { mobileButton.addEventListener("click", function() { - mobileMenu.style.display = mobileMenu.style.display === "none" ? "block" : "none"; + mobileMenu.style.display = mobileMenu.style.display === "none" ? "block" : "none"; + }); + } + + // Add this part to close the mobile menu when a link is clicked + mobileLinks.forEach(link => { + link.addEventListener("click", function() { + mobileMenu.style.display = "none"; }); + }); } + + // Update active link in navbar + function updateActiveLink(event) { + if (!event || !event.detail || !event.detail.pathInfo || !event.detail.pathInfo.requestPath) { + return; // Exit if no proper event details are provided + } + + const navLinks = document.querySelectorAll("#main-navbar .nav-link"); + navLinks.forEach(link => { + // If the href in the id of the link matches the current path + if (event.detail.pathInfo.requestPath.includes(link.id)) { + link.classList.add('active-link'); + } else { + link.classList.remove('active-link'); + } + }); + } + + // Initialize functions + handleDropdownBehavior(); + handleMobileMenuBehavior(); + updateActiveLink(); + + // Attach htmx listener + document.body.addEventListener('htmx:afterSwap', updateActiveLink); + }); diff --git a/blog/static/blog/js/twitter.js b/blog/static/blog/js/twitter.js deleted file mode 100644 index a3ccff89..00000000 --- a/blog/static/blog/js/twitter.js +++ /dev/null @@ -1,19 +0,0 @@ -window.twttr = (function(d, s, id) { - var js, fjs = d.getElementsByTagName(s)[0], - t = window.twttr || {}; - if (d.getElementById(id)) return t; - js = d.createElement(s); - js.id = id; - js.src = "https://platform.twitter.com/widgets.js"; - fjs.parentNode.insertBefore(js, fjs); - - t._e = []; - t.ready = function(f) { - t._e.push(f); - }; - - return t; -}(document, "script", "twitter-wjs")); - - -// twttr.widgets.load(); diff --git a/blog/templates/blog/_about.html b/blog/templates/blog/_about.html new file mode 100644 index 00000000..9a71cd36 --- /dev/null +++ b/blog/templates/blog/_about.html @@ -0,0 +1,81 @@ +{% load i18n static %} + +

+ {% translate "About me" %} +

+ +
+

+ {% translate "Hello World! My name is Eduardo and I'm a developer 💻." %} + {% blocktrans with years=years_in_python %}I've been working ⛏️ with Python 🐍 for the last {{ years }} years, most of the time working as a backend developer with Django.{% endblocktrans %} + {% translate "Currently living in" %} {% translate "Buenos Aires" %}, {% translate "München" %}, {% translate "Amsterdam" %}, {% translate "while working from home." %} 🏠 +

+
+ + +
+ + +
+
+ +
+ eduzen +
+
+

{% translate 'A bit more about me 😉, so here it goes:' %}

+

+ {% translate "I'm Eduardo Enriquez, aka eduzen." %} + {% blocktranslate with years=years_of_experience %}I've been working in the IT industry for quite a long time, {{ years }} years and counting,mostly as a backend developer 💻.{% endblocktranslate %} + {% translate "But I also have some experience working as a team leader." %} + {% translate "Python 🐍, Django 🟩, and Flask are the main technologies 🧪 that I've been working with." %} + {% translate "Naturally, I have some experience 💡 with other things like Javascript, Docker 🐳, Redis 🟥, RabbitMQ 🐰, Celery 🌿, and Linux 🐧." %} +

+

+ {% translate "You can check my code at " %}https://github.com/eduzen/. + {% translate "There you can find some bots like the one that I have for Telegram," %} + eduzen_bot 🤖 + {% translate "(you can talk to it following this link:" %} + bot . + {% translate "Or you can find the source code of this website at" %} + https://github.com/eduzen/website. +

+
+
+

+ {% translate "Besides computers, I like good music, books, philosophy, movies, series, and good food. I started trying some mechanical keyboards (right now using a Leo pold 75 %)! But I have also a Keychron K12." %} +

+

+ {% translate "Some people find it weird that I have a bachelor's degree in philosophy from the University of Buenos Aires 🇦🇷. But I think that rational thinking is something that my profession and studies share."%} + {% translate "In general, philosophy has shaped my analytical thinking and fostered my curiosity. Some of my favorite philosophers are Nietzsche, Descartes, and Foucault." %} + {% translate "Writers... many; Jorge Luis Borges, Ursula K. Le Guin, Arthur C. Clarke, and many more..." %} +

+

+ {% translate "Last but not least, I'm passionate about teaching 👨🏽‍🏫. I think my background in philosophy has helped me to be a better teacher." %} + {% translate "I've been teaching in the past, and I'm looking forward to doing it more often in the IT field." %} +

+
+ +

+ {% translate "If you want to contact me, you can do it through this " %}{% translate "form" %} + {% translate "or through my " %}{% translate "LinkedIn." %} +

+
+
+
diff --git a/blog/templates/blog/_classes.html b/blog/templates/blog/_classes.html new file mode 100644 index 00000000..39b65237 --- /dev/null +++ b/blog/templates/blog/_classes.html @@ -0,0 +1,89 @@ +{% load i18n static %} + +

+ {% translate 'Classes' %} +

+ +
+
+
+

+ {% translate "Hello! Thank you for your interest 😊. My name is Eduardo and I'm a teacher. Learn more about me on my 'About' page: " %} + {% translate 'here'%} +

+

+ {% translate "My goal as a teacher is not just to impart knowledge, but to inspire and guide you in a way that you can lose me (and be independent) in your learning journey." %} +

+

+ {% translate "We can learn about: Python, or about web frameworks like Django, Flask, or FastAPI. We can also explore other topics like: object-oriented programming, unit tests, clean code or the one that you need." %} +

+

+ {% translate "It's not easy to learn new things. It's hard also to find the motivation and the resources that are good for you. In these modern times, what we have is data 🗃️, data 🗃️ and data 🗃️, available everywhere." %} + {% translate "However, discerning the quality of this data can be challenging. That's where a guide or companion comes in handy 😉." %} + {% translate "So I can help you to organize and curate the data and tell you what to use or not." %} +

+

+ {% translate "Reach out to me " %}{% translate "here"%} + {% translate "or drop me an email at "%}me@eduzen.com.ar{% translate " and let's chat!"%} +

+

+ {% translate "If you're in the Netherlands 🇳🇱, let's schedule a coffee ☕ and chat 💬 about your learning objectives. If you're based elsewhere in the world 🌍, not to worry!" %} + {% translate "We can set up a Zoom or Meet call to discuss how I can assist you in your coding adventure." %} +

+
+
+
+
+
+

+ {% translate "Online Resources to Learn Python:" %} +

+

+ {% translate "Impossible not to recommend ChatGPT: " %}link + {% translate "I think it's one of the most important resources from our modern times. It's a great companion that could answer almost everything that you need in this field."%} + {% translate "Certainly it's not infallible, it has its caveats and you need to learn how to use it. But it's worthy. I'm using it every day. " %} +

+

+ {% translate "I also recommend the following resources:" %} +

+ +

+ {% translate "Some recommended books:" %} +

+
    +
  • +

    {% translate 'Beginners'%}

    +
      +
    1. Grokking Algorithms link
    2. +
    3. Automate the Boring Stuff with Python link
    4. +
    5. Python Distilled link
    6. +
    +
  • +
  • +

    {% translate 'Medium/Advance'%}

    +
      +
    1. Fluent Python link
    2. +
    3. Architecture Patterns with Python link
    4. +
    5. System Design Interviews link
    6. +
    +
  • +
+
+
+
diff --git a/blog/templates/blog/_consultancy.html b/blog/templates/blog/_consultancy.html new file mode 100644 index 00000000..818b2815 --- /dev/null +++ b/blog/templates/blog/_consultancy.html @@ -0,0 +1,75 @@ +{% load i18n static %} + +

+ {% translate 'Consultancy Services' %} +

+ +
+

+ {% translate "Crafting tech magic 🧙🏼‍♀️ for individuals 🧍🏻‍♀️ and businesses 🏭, with a sprinkle of fun and a dollop of expertise." %} + {% translate "Let's code something delightful!" %} + {% translate "With over 10 years in the industry 👴🏿, I offer useful insights and expertise for daily challenges." %} + {% translate "Remote 💻 or in-person 🪑, I'm here to assist." %} + {% translate "Interested in my professional journey?" %} + {% translate "Check out my" %}{% translate "LinkedIn profile"%}. +

+ +
+

{% translate "Services"%}

+
+ +
+

{% translate 'For the Rising Tech Stars: Individuals' %}

+

+ {% translate "Personalized training 🏋🏼‍♂️, classes 👨🏽‍🏫, and tutoring 🤓 to help you blossom into an autonomous developer." %} + {% translate "Stuck on a bug 🐛? I've got your back, literally!" %} +

+
+ +
+

{% translate 'For the Business: Companies' %}

+

+ {% translate "Crafting day-to-day solutions, providing stellar training (unittesting, robust code writing, you name it!), fixing Django/Python 🐍 performance issues, evaluating legacy code 🔖, or upgrading versions ⬆️." %} + {% translate "If it's tech, I'm your guy!" %} +

+
+
+
+ + +
+

{% translate "Experience & Skills" %}

+
+
+

{% translate "Years of Mischief & Mastery" %}

+

+ {% translate "Code wizardry 🧙🏼‍♂️, business acumen 👨🏻‍💼, and maybe a few harmless pranks along the way. Dive into my tech journey!" %} +

+

+ {% translate "Read more about my experience on linkedin " %} + {% translate "here"%}. +

+
+
+

{% translate 'Techno-Sorcery' %}

+

+ {% translate "From Python 🐍 to Django, from debugging to spellbinding code – I've mastered the digital alchemy ⚗️." %} +

+

+ {% translate "Read more about me here: " %} + {% translate 'about' %}. +

+
+
+
+ + +
+

{% translate 'Get in Touch' %}

+

+ {% translate "Ready to embark on a tech adventure or brew up a business solution? Let's talk!" %} +

+ {% translate 'Contact Me' %} + +
+
diff --git a/blog/templates/blog/_contact.html b/blog/templates/blog/_contact.html new file mode 100644 index 00000000..7eda7418 --- /dev/null +++ b/blog/templates/blog/_contact.html @@ -0,0 +1,38 @@ +{% load i18n static %} + +

+ {% translate 'Contact' %} +

+ +
+ {% csrf_token %} +
+ + +
+ +
+ + +
+ +
+ + +
+ + +
+ + +
+ +
+ +
+
diff --git a/blog/templates/blog/about.html b/blog/templates/blog/about.html index 9a18899a..841c10f9 100644 --- a/blog/templates/blog/about.html +++ b/blog/templates/blog/about.html @@ -1,88 +1,5 @@ {% extends 'blog/utils/base.html' %} -{% load static i18n %} - -{% block section_title %} - {% translate "About me" %} -{% endblock section_title %} {% block content %} - -
-

- {% blocktranslate with years=years_of_experience %}Hello World! My name is Eduardo and I'm a developer 💻. I've been working ⛏️ with Python 🐍 - for the last {{ years }} years, most of the time working as a backend developer with Django. Currently living in Buenos Aires, München, - Amsterdam, while working from home 🏠.{% endblocktranslate %} -

-
- - -
- - -
-
- -
- eduzen -
-
-

{% translate 'A bit more about me 😉, so here it goes:' %}

-

- {% blocktranslate with years=years_of_experience %}I'm Eduardo Enriquez, aka eduzen. I've been working in the IT industry for quite a long time, {{ years }} years and counting, - mostly as a backend developer 💻. But I also have some experience working as a team leader. Python 🐍, Django 🟩, and Flask are the main technologies 🧪 that I've been working with. - Naturally, I have some experience 💡 with other things like Javascript, Docker 🐳, Redis 🟥, RabbitMQ 🐰, Celery 🌿, and Linux 🐧.{% endblocktranslate %} -

-

- {% blocktranslate %} - You can check my code at https://github.com/eduzen/. There you can find some bots - like the one that I have for Telegram, eduzen_bot 🤖 (you can talk to it following this link: - bot ). Or you can find the source code of this website at - https://github.com/eduzen/website.{% endblocktranslate %} -

-
-
-

- {% translate "Besides computers, I like good music, books, philosophy, movies, series, and good food. I started trying some mechanical keyboards (right now using a Leo pold 75 %)! But I have also a Keychron K12." %} -

-

- {% translate "Some people find it weird that I have a bachelor's degree in philosophy from the University of Buenos Aires 🇦🇷. But I think that rational thinking is something that my profession and studies share."%} - {% translate "In general, philosophy has shaped my analytical thinking and fostered my curiosity. Some of my favorite philosophers are Nietzsche, Descartes, and Foucault." %} - {% translate "Writers... many; Jorge Luis Borges, Ursula K. Le Guin, Arthur C. Clarke, and many more..." %} -

-

- {% translate "Last but not least, I'm passionate about teaching 👨🏽‍🏫. I think my background in philosophy has helped me to be a better teacher." %} - {% translate "I've been teaching in the past, and I'm looking forward to doing it more often in the IT field." %} -

-
- -

- {% translate "If you want to contact me, you can do it through this " %}{% translate "form" %} - {% translate "or through my " %}{% translate "LinkedIn." %} -

-
-
-
- + {% include "blog/_about.html" %} {% endblock content %} - - -{% block footer %} - {{ block.super }} - -{% endblock %} diff --git a/blog/templates/blog/advance_search.html b/blog/templates/blog/advance_search.html index 0d038d15..e10d2a2a 100644 --- a/blog/templates/blog/advance_search.html +++ b/blog/templates/blog/advance_search.html @@ -1,22 +1,20 @@ {% extends 'blog/utils/base.html' %} -{% load i18n %} -{% load static %} -{% load crispy_forms_tags %} +{% load i18n static crispy_forms_tags %} {% block content %} -
-
-
-

{% translate 'Advance Search' %}

- {% if form %} -

{% translate 'No results' %}

-

- {% translate 'How-to-look' %} -

- {% csrf_token %} - {% crispy form %} - {% endif %} +
+
+
+

{% translate 'Advance Search' %}

+ {% if form %} +

{% translate 'No results' %}

+

+ {% translate 'How-to-look' %} +

+ {% csrf_token %} + {% crispy form %} + {% endif %} +
-
{% endblock %} diff --git a/blog/templates/blog/classes.html b/blog/templates/blog/classes.html index 051107af..1cdf98ac 100644 --- a/blog/templates/blog/classes.html +++ b/blog/templates/blog/classes.html @@ -1,97 +1,5 @@ {% extends 'blog/utils/base.html' %} -{% load static i18n %} - -{% block section_title %} - {% translate 'Classes' %} -{% endblock section_title %} {% block content %} -
-
-
-

- {% translate "Hello! Thank you for your interest 😊. My name is Eduardo and I'm a teacher. Learn more about me on my 'About' page: " %} - {% translate 'here'%} -

-

- {% translate "My goal as a teacher is not just to impart knowledge, but to inspire and guide you in a way that you can lose me (and be independent) in your learning journey." %} -

-

- {% translate "We can learn about: Python, or about web frameworks like Django, Flask, or FastAPI. We can also explore other topics like: object-oriented programming, unit tests, clean code or the one that you need." %} -

-

- {% translate "It's not easy to learn new things. It's hard also to find the motivation and the resources that are good for you. In these modern times, what we have is data 🗃️, data 🗃️ and data 🗃️, available everywhere." %} - {% translate "However, discerning the quality of this data can be challenging. That's where a guide or companion comes in handy 😉." %} - {% translate "So I can help you to organize and curate the data and tell you what to use or not." %} -

-

- {% translate "Reach out to me " %}{% translate "here"%} - {% translate "or drop me an email at "%}me@eduzen.com.ar{% translate " and let's chat!"%} -

-

- {% translate "If you're in the Netherlands 🇳🇱, let's schedule a coffee ☕ and chat 💬 about your learning objectives. If you're based elsewhere in the world 🌍, not to worry!" %} - {% translate "We can set up a Zoom or Meet call to discuss how I can assist you in your coding adventure." %} -

-
-
-
-
-
-

- {% translate "Online Resources to Learn Python:" %} -

-

- {% translate "Impossible not to recommend ChatGPT: " %}link - {% translate "I think it's one of the most important resources from our modern times. It's a great companion that could answer almost everything that you need in this field."%} - {% translate "Certainly it's not infallible, it has its caveats and you need to learn how to use it. But it's worthy. I'm using it every day. " %} -

-

- {% translate "I also recommend the following resources:" %} -

- -

- {% translate "Some recommended books:" %} -

-
    -
  • -

    {% translate 'Beginners'%}

    -
      -
    1. Grokking Algorithms link
    2. -
    3. Automate the Boring Stuff with Python link
    4. -
    5. Python Distilled link
    6. -
    -
  • -
  • -

    {% translate 'Medium/Advance'%}

    -
      -
    1. Fluent Python link
    2. -
    3. Architecture Patterns with Python link
    4. -
    5. System Design Interviews link
    6. -
    -
  • -
-
-
-
-{% endblock %} - -{% block extra_scripts %} - {{ block.super }} - + {% include "blog/_classes.html" %} {% endblock %} diff --git a/blog/templates/blog/consultancy.html b/blog/templates/blog/consultancy.html index e9cac750..d5f63d2f 100644 --- a/blog/templates/blog/consultancy.html +++ b/blog/templates/blog/consultancy.html @@ -1,83 +1,5 @@ {% extends 'blog/utils/base.html' %} -{% load static i18n %} - -{% block section_title %} - {% translate 'Consultancy Services' %} -{% endblock section_title %} {% block content %} -
-

- {% translate "Crafting tech magic 🧙🏼‍♀️ for individuals 🧍🏻‍♀️ and businesses 🏭, with a sprinkle of fun and a dollop of expertise." %} - {% translate "Let's code something delightful!" %} - {% translate "With over 10 years in the industry 👴🏿, I offer useful insights and expertise for daily challenges." %} - {% translate "Remote 💻 or in-person 🪑, I'm here to assist." %} - {% translate "Interested in my professional journey?" %} - {% translate "Check out my" %}LinkedIn profile. -

- -
-

Services

-
- -
-

{% translate 'For the Rising Tech Stars: Individuals' %}

-

- {% translate "Personalized training 🏋🏼‍♂️, classes 👨🏽‍🏫, and tutoring 🤓 to help you blossom into an autonomous developer." %} - {% translate "Stuck on a bug 🐛? I've got your back, literally!" %} -

-
- -
-

{% translate 'For the Business: Companies' %}

-

- {% translate "Crafting day-to-day solutions, providing stellar training (unittesting, robust code writing, you name it!), fixing Django/Python 🐍 performance issues, evaluating legacy code 🔖, or upgrading versions ⬆️." %} - {% translate "If it's tech, I'm your guy!" %} -

-
-
-
- - -
-

{% translate "Experience & Skills" %}

-
-
-

{% translate "Years of Mischief & Mastery" %}

-

- {% translate "Code wizardry 🧙🏼‍♂️, business acumen 👨🏻‍💼, and maybe a few harmless pranks along the way. Dive into my tech journey!" %} -

-

- {% translate "Read more about my experience on linkedin " %} - {% translate "here"%}. -

-
-
-

{% translate 'Techno-Sorcery' %}

-

- {% translate "From Python 🐍 to Django, from debugging to spellbinding code – I've mastered the digital alchemy ⚗️." %} -

-

- {% translate "Read more about me here: " %} - {% translate 'about' %}. -

-
-
-
- - -
-

{% translate 'Get in Touch' %}

-

- {% translate "Ready to embark on a tech adventure or brew up a business solution? Let's talk!" %} -

- {% translate 'Contact Me' %} - -
-
-{% endblock %} - -{% block extra_scripts %} - {{ block.super }} - + {% include "blog/_consultancy.html" %} {% endblock %} diff --git a/blog/templates/blog/contact.html b/blog/templates/blog/contact.html index 521dd673..eb749db4 100644 --- a/blog/templates/blog/contact.html +++ b/blog/templates/blog/contact.html @@ -1,43 +1,5 @@ {% extends 'blog/utils/base.html' %} -{% load crispy_forms_tags i18n %} - -{% block section_title %} - {% translate 'Contact' %} -{% endblock section_title %} - {% block content %} -
- {% csrf_token %} -
- - -
- -
- - -
- -
- - -
- - -
- - -
- -
- -
-
- + {% include "blog/_contact.html" %} {% endblock %} diff --git a/blog/templates/blog/extras/related_posts.html b/blog/templates/blog/extras/related_posts.html index 52d31976..ef066724 100644 --- a/blog/templates/blog/extras/related_posts.html +++ b/blog/templates/blog/extras/related_posts.html @@ -2,20 +2,18 @@ diff --git a/blog/templates/blog/google.html b/blog/templates/blog/google.html deleted file mode 100644 index 1b05eace..00000000 --- a/blog/templates/blog/google.html +++ /dev/null @@ -1 +0,0 @@ -google-site-verification: google448c52311d45450b.html diff --git a/blog/templates/blog/home.html b/blog/templates/blog/home.html index 039be886..b4b0f5dc 100644 --- a/blog/templates/blog/home.html +++ b/blog/templates/blog/home.html @@ -1,25 +1,20 @@ {% extends 'blog/utils/base.html' %} - {% load i18n %} - -{% block section_title %} - -{% endblock %} - {% block content %} -

- {% translate 'Software Engineer' %} & - {% translate 'Consultancy'%} -

+ -
- {% translate 'Based in Amsterdam' %}, {% translate 'available' %} - - {% translate 'everywhere!'%} - -
+

+ {% translate 'Software Engineer' %} & + {% translate 'Consultancy'%} +

+
+ {% translate 'Based in Amsterdam' %}, {% translate 'available' %} + + {% translate 'everywhere!'%} + +
{% endblock content %} diff --git a/blog/templates/blog/partials/about.html b/blog/templates/blog/partials/about.html new file mode 100644 index 00000000..d06f27cc --- /dev/null +++ b/blog/templates/blog/partials/about.html @@ -0,0 +1,5 @@ +{% extends 'blog/utils/partial.html' %} + +{% block content %} + {% include "blog/_about.html" %} +{% endblock content %} diff --git a/blog/templates/blog/partials/classes.html b/blog/templates/blog/partials/classes.html new file mode 100644 index 00000000..552619ec --- /dev/null +++ b/blog/templates/blog/partials/classes.html @@ -0,0 +1,5 @@ +{% extends 'blog/utils/partial.html' %} + +{% block content %} + {% include "blog/_classes.html" %} +{% endblock %} diff --git a/blog/templates/blog/partials/consultancy.html b/blog/templates/blog/partials/consultancy.html new file mode 100644 index 00000000..0d809e40 --- /dev/null +++ b/blog/templates/blog/partials/consultancy.html @@ -0,0 +1,5 @@ +{% extends 'blog/utils/partial.html' %} + +{% block content %} + {% include "blog/_consultancy.html" %} +{% endblock %} diff --git a/blog/templates/blog/partials/contact.html b/blog/templates/blog/partials/contact.html new file mode 100644 index 00000000..3de45ea6 --- /dev/null +++ b/blog/templates/blog/partials/contact.html @@ -0,0 +1,5 @@ +{% extends 'blog/utils/partial.html' %} + +{% block content %} + {% include "blog/_contact.html" %} +{% endblock %} diff --git a/blog/templates/blog/partials/posts/list.html b/blog/templates/blog/partials/posts/list.html new file mode 100644 index 00000000..6935f4a6 --- /dev/null +++ b/blog/templates/blog/partials/posts/list.html @@ -0,0 +1,5 @@ +{% extends 'blog/utils/partial.html' %} + +{% block content %} + {% include "blog/posts/_list.html" %} +{% endblock %} diff --git a/blog/templates/blog/personal_links.html b/blog/templates/blog/personal_links.html index fc8ccb6d..e0b79eab 100644 --- a/blog/templates/blog/personal_links.html +++ b/blog/templates/blog/personal_links.html @@ -1,14 +1,14 @@ diff --git a/blog/templates/blog/posts/_list.html b/blog/templates/blog/posts/_list.html new file mode 100644 index 00000000..312eee9d --- /dev/null +++ b/blog/templates/blog/posts/_list.html @@ -0,0 +1,43 @@ +{% load crispy_forms_tags i18n %} + +

+ Blog + {% if tag %} + | + {{ tag }} + {% else %} + {% translate 'or just public notes' %} + {% endif %} +

+ +{% for post in posts %} +
+ {% if post.image %} +
+ {{ post.title }} image +
+ {% endif %} +
+ + {{ post.title }} + +

+

{{ post.pompadour }}

+
+ {% for tag in post.tags.all %} + + {{tag}} + + {% endfor %} +
+
+
+{% empty %} +

Empty posts

+{% endfor %} + +{% include 'blog/extras/paginator.html' %} diff --git a/blog/templates/blog/posts/list.html b/blog/templates/blog/posts/list.html index 10d5b66f..0d1daec5 100644 --- a/blog/templates/blog/posts/list.html +++ b/blog/templates/blog/posts/list.html @@ -1,52 +1,5 @@ {% extends 'blog/utils/base.html' %} -{% load crispy_forms_tags i18n %} - - -{% block section_title %} -

- Blog - {% if tag %} - | - {{ tag }} - {% else %} - {% translate 'or just public notes' %} - {% endif %} -

-{% endblock %} - {% block content %} - - {% for post in posts %} -
- {% if post.image %} -
- {{ post.title }} image -
- {% endif %} -
- - {{ post.title }} - -

-

{{ post.pompadour }}

-
- {% for tag in post.tags.all %} - - {{tag}} - - {% endfor %} -
-
-
- {% empty %} -

Empty posts

- {% endfor %} - - {% include 'blog/extras/paginator.html' %} - + {% include "blog/posts/_list.html" %} {% endblock %} diff --git a/blog/templates/blog/utils/base.html b/blog/templates/blog/utils/base.html index 2a6c3ffe..92116ebb 100644 --- a/blog/templates/blog/utils/base.html +++ b/blog/templates/blog/utils/base.html @@ -1,4 +1,4 @@ -{% load static i18n tz %} +{% load static i18n %} {% get_current_language as LANGUAGE_CODE %} @@ -11,20 +11,14 @@ {% endblock head %} - + {% block navbar %} {% include "blog/utils/navbar.html" %} {% endblock navbar %} - {% block body %} - -
-

{% block section_title %}{% endblock section_title %}

- {% block content %} - {% endblock content %} -
- - {% endblock body %} +
+ {% block content %}{% endblock content %} +
{% block footer %} {% include "blog/utils/footer.html" %} @@ -32,6 +26,7 @@

{% block sec {% block extra_scripts %} + {% endblock extra_scripts %} diff --git a/blog/templates/blog/utils/head.html b/blog/templates/blog/utils/head.html index 341235eb..50f5efab 100644 --- a/blog/templates/blog/utils/head.html +++ b/blog/templates/blog/utils/head.html @@ -1,4 +1,4 @@ -{% load i18n static%} +{% load i18n static django_htmx %} @@ -41,12 +41,8 @@ crossorigin="anonymous" referrerpolicy="no-referrer"> - + +{% django_htmx_script %} diff --git a/blog/templates/blog/utils/language_dropdown.html b/blog/templates/blog/utils/language_dropdown.html index f7f0d008..1ac73038 100644 --- a/blog/templates/blog/utils/language_dropdown.html +++ b/blog/templates/blog/utils/language_dropdown.html @@ -1,6 +1,6 @@ {% load i18n %} -
+
{% translate "English" %} diff --git a/blog/templates/blog/utils/nav_links.html b/blog/templates/blog/utils/nav_links.html index 14ffd9da..90871476 100644 --- a/blog/templates/blog/utils/nav_links.html +++ b/blog/templates/blog/utils/nav_links.html @@ -1,25 +1,81 @@ {% load i18n static %} -{% translate "Blog" %} + + {% translate "Blog" %} + · -{% translate "Consultancy" %} + + + {% translate "Consultancy" %} + · -{% translate "Classes" %} + + + {% translate "Classes" %} + · -{% translate "About" %} + + + {% translate "About" %} + · -{% translate "Contact" %} + + + {% translate "Contact" %} + · + {% if user.is_superuser %} - {% translate "Admin" %} + {% translate "Admin" %} · {% endif %} -
-