Fuente a local; deshabilitación de toggle; habilitación de tooltip

This commit is contained in:
perro tuerto 2023-01-09 17:41:36 -08:00
parent 567f28122c
commit e1c2e209e8
6 changed files with 96 additions and 17 deletions

View File

@ -0,0 +1,33 @@
# Generated by Django 3.2.15 on 2023-01-09 18:10
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('main', '0004_auto_20210807_2207'),
]
operations = [
migrations.AlterField(
model_name='country',
name='id',
field=models.AutoField(primary_key=True, serialize=False),
),
migrations.AlterField(
model_name='gender',
name='id',
field=models.AutoField(primary_key=True, serialize=False),
),
migrations.AlterField(
model_name='movie',
name='id',
field=models.AutoField(primary_key=True, serialize=False),
),
migrations.AlterField(
model_name='person',
name='id',
field=models.AutoField(primary_key=True, serialize=False),
),
]

View File

@ -1,5 +1,3 @@
import requests
import shutil
import random
import time
import wikipediaapi
@ -131,7 +129,7 @@ class MovieQuerySet(models.QuerySet):
key = Gender.objects.get(pk=gender).name
picked = self.random_pick(genders=gender)
if picked:
sections["genders"][key] = self.fix_all_data(picked)
sections["genders"][key] = self.fix_all(picked)
return sections
def home_sections(self):
@ -141,14 +139,14 @@ class MovieQuerySet(models.QuerySet):
Las secciones son novedades, mejor valorados y más descargados.
"""
sections = {
"Novedades": self.fix_all_data(self.top_pick("id")),
"Mejor valorados": self.fix_all_data(self.top_random_pick("stars")),
"Más descargados": self.fix_all_data(self.top_pick("count")),
"Novedades": self.fix_all(self.top_pick("id")),
"Mejor valorados": self.fix_all(self.top_random_pick("stars")),
"Más descargados": self.fix_all(self.top_pick("count")),
}
sections["genders"] = {}
return sections
def fix_all_data(self, movies):
def fix_all(self, movies):
"""
Enmienda los datos de las películas.
"""
@ -167,7 +165,7 @@ class MovieQuerySet(models.QuerySet):
movie["count_formatted"] = self.format_count(movie["count"])
movie["stars_icons"] = self.format_stars(movie["stars"])
movie["file_name"] = self.fix_path(movie["file_name"])
movie["cartel"] = settings.MEDIA_URL + movie["cartel"]
movie["cartel"] = self.fix_path(movie["cartel"])
if wikipedia:
movie["wiki"] = self.get_wiki(movie)
@ -176,10 +174,11 @@ class MovieQuerySet(models.QuerySet):
Enmienda ruta a medio.
La ruta es distinta según se esté en producción o en desarrollo
('DEBUG').
('DEBUG'). La URL_DEBUB apunta a la dirección en nebula.
"""
# ~ print('EL', el)
if settings.DEBUG:
if str(Path(el).parent) == '.':
el = f"{el[0]}/{el}"
return settings.URL_DEBUG.format(el)
else:
return settings.MEDIA_ROOT / el
@ -189,8 +188,8 @@ class MovieQuerySet(models.QuerySet):
Enmienda sinopsis de Wikipedia.
Los sumarios de artículos a la Wikipedia vienen con notas al pie que no
son necesarias. Para la sinopsis estas notas son eliminadas y se regresa
el código HTML como una cadena de caracteres.
son necesarias. Para la sinopsis estas notas son eliminadas y se
regresa el código HTML como una cadena de caracteres.
"""
html = BeautifulSoup(raw, "lxml")
for ref in html.find_all("sup", "reference"):
@ -259,7 +258,7 @@ class MovieQuerySet(models.QuerySet):
}
else:
return None
except:
except Exception:
return None
def get_movie_by_id(self, id):

File diff suppressed because one or more lines are too long

View File

@ -230,6 +230,39 @@
height: calc(100% - 3em);
}
/* Tooltip de la ficha; Cfr:
* https://www.w3schools.com/howto/howto_css_tooltip.asp
*/
/* Tooltip container */
.tooltip {
position: relative;
}
/* Tooltip text */
.tooltip .tooltiptext {
visibility: hidden;
opacity: 0;
width: 100%;
background-color: var(--color-background);
color: #fff;
border-top: 3px solid var(--color-primary);
text-align: center;
font-size: 1.25rem;
padding: .5em;
position: absolute;
z-index: 1;
top: 0;
left: 0;
transition: opacity 0.3s;
}
/* Show the tooltip text when you mouse over the tooltip container */
.tooltip:hover .tooltiptext {
visibility: visible;
opacity: 1;
}
/* Reproductor */
button.plyr__control--overlaid {

Binary file not shown.

View File

@ -14,13 +14,21 @@
{% endif %}
<div class="cartels">
{% for movie in content %}
<div class="cartel">
<input type="checkbox" class="toggle">
<div class="cartel tooltip">
<span class="tooltiptext">{{ movie.name }}</span>
<!--
Lo comentado activaría una ficha que se ve en lugar del cartel.
Una idea a futuro es que sirva para mostrar la ficha de la
pelicula como ventana flotante.
<input type="checkbox" class="toggle">
-->
<div class="info">
{% include 'info.html' with movie=movie %}
</div>
<figure class="image is-2by3">
<img src="{{ movie.cartel }}">
<a href="/movie/{{ movie.id }}">
<img src="{{ movie.cartel }}">
</a>
</figure>
</div>
{% endfor %}