cambios btn flotante, menú y se añade gráfica de visitas por red social

This commit is contained in:
David Itehua Xalamihua 2025-05-24 12:05:16 -06:00
parent 52369e0479
commit 0b7f825387
8 changed files with 980 additions and 216 deletions

View File

@ -99,6 +99,7 @@ SELECT
END AS nombre_legible, END AS nombre_legible,
COUNT(source_name) AS total COUNT(source_name) AS total
FROM visited_from FROM visited_from
GROUP BY source_name; GROUP BY source_name
ORDER BY total DESC;
-- select * from visited_from; -- select * from visited_from;

18
main.py
View File

@ -893,6 +893,22 @@ def data_metrics():
LIMIT 3; LIMIT 3;
""" """
q_visited_from = """
SELECT
CASE source_name
WHEN 'li' THEN 'LinkedIn'
WHEN 'wa' THEN 'WhatsApp'
WHEN 'fb' THEN 'Facebook'
WHEN 'x' THEN 'X'
ELSE 'Otro'
END AS nombre_legible,
COUNT(source_name) AS total
FROM visited_from
GROUP BY source_name
ORDER BY total DESC;
"""
data_contact = { data_contact = {
"count_monthly": dbUsers.get_all_data(q_contact, ()), "count_monthly": dbUsers.get_all_data(q_contact, ()),
"count_state": dbUsers.get_all_data(q_count_state, ()), "count_state": dbUsers.get_all_data(q_count_state, ()),
@ -902,7 +918,9 @@ def data_metrics():
"group_status": dbUsers.get_all_data(q_group_status, ()), "group_status": dbUsers.get_all_data(q_group_status, ()),
"top_ten": dbUsers.get_all_data(q_posts_mas_vistos, ()), "top_ten": dbUsers.get_all_data(q_posts_mas_vistos, ()),
"top_three_authors": dbUsers.get_all_data(q_top_three_authors, ()), "top_three_authors": dbUsers.get_all_data(q_top_three_authors, ()),
"visited_from": dbUsers.get_all_data(q_visited_from, ())
} }
return jsonify(data_contact) return jsonify(data_contact)

View File

@ -1,17 +1,21 @@
:root { :root {
--navbar-footer-color: #5d9dd1; --navbar-footer-color: #5d9dd1;
--font-size-formha: 1.2rem; --font-size-formha: 1.2rem;
--border-radius-button: 15px;
--button-padding-y: 8px;
--button-padding-x: 15px;
--button-background: transparent;
--button-hover-background: rgba(255, 255, 255, 0.2);
--button-active-background: rgba(2, 62, 138, 0.8);
} }
.navbar-custom { .navbar-custom {
background-color: var(--navbar-footer-color) !important; background-color: var(--navbar-footer-color) !important;
font-size: var(--font-size-formha); font-size: var(--font-size-formha);
padding-top: 15px; padding: 15px 0;
padding-bottom: 15px;
/* min-height: 80px; */
& .navbar-brand, .nav-link { & .navbar-brand,
& .nav-link {
color: white !important; color: white !important;
} }
@ -19,53 +23,38 @@
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 1%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 1%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
} }
& .navbar-nav .nav-item .nav-link { & .navbar-nav .nav-item {
position: relative; margin: 0 0.5em;
text-decoration: none; border: 2px solid white;
border-radius: var(--border-radius-button);
background-color: var(--button-background);
transition: background-color 0.3s ease;
& .nav-link {
display: inline-block;
padding: var(--button-padding-y) var(--button-padding-x);
position: relative;
text-decoration: none;
&.active {
background-color: var(--button-active-background);
box-shadow: 0 0 10px rgba(255, 255, 255, 0.5);
transition: background-color 0.3s ease, box-shadow 0.3s ease;
border-radius: var(--border-radius-button);
}
}
&:hover {
background-color: var(--button-hover-background);
}
} }
/* Efecto de hover */
& .navbar-nav.effect-3 .nav-item .nav-link:before,
& .navbar-nav.effect-3 .nav-item .nav-link:after {
content: "";
height: 1px;
width: 0;
opacity: 0;
background-color: #fff;
position: absolute;
transition: all .4s;
}
& .navbar-nav.effect-3 .nav-item .nav-link:before {
top: 0px;
}
& .navbar-nav.effect-3 .nav-item .nav-link:after {
bottom: 0px;
right: 0;
}
/* Aplicar el efecto de hover al enlace activo */
& .navbar-nav.effect-3 .nav-item .nav-link.active:before,
& .navbar-nav.effect-3 .nav-item .nav-link.active:after {
width: calc(100% + 0px);
opacity: 0.9;
}
/* Aplicar el efecto de hover al hacer hover */
& .navbar-nav.effect-3 .nav-item .nav-link:hover:before,
& .navbar-nav.effect-3 .nav-item .nav-link:hover:after {
width: calc(100% + 0px);
opacity: 0.9;
}
& li.nav-item {
margin-left: 1em;
margin-right: 1em;
}
} }
/* ############################# */
.logo { .logo {
background-color: white; background-color: white;
border-radius: 50%; border-radius: 50%;

View File

@ -0,0 +1,88 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="BACKGROUND" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 1920 1920">
<!-- Generator: Adobe Illustrator 29.5.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 137) -->
<defs>
<style>
.st0 {
fill: #9c175e;
}
.st1 {
fill: #82b61d;
}
.st2 {
fill: #002f77;
}
.st3 {
fill: #449ed5;
}
</style>
</defs>
<g>
<path class="st2" d="M125.62,1145c9.8-99.98,37.85-194.59,80.77-280.49,88.4-341.61,398.71-593.9,767.95-593.9,207.39,0,396.17,79.6,537.5,209.89l42.09-42.09c-152.12-141.04-355.78-227.28-579.59-227.28-470.91,0-852.67,381.75-852.67,852.67,0,223.81,86.23,427.47,227.28,579.59l.05-.05c-123.74-133.5-205.27-306.69-223.38-498.35Z"/>
<path class="st3" d="M602.94,1165.52c-.08-.31-.17-.61-.25-.92.08.31.16.61.25.92Z"/>
<path class="st3" d="M1380.19,602.49c-58.73-17.93-121.06-27.59-185.65-27.59-342.23,0-511.81,138.21-567.94,323.47,61.88-129.84,194.33-219.58,347.74-219.58,64.69,0,125.63,15.98,179.15,44.16,38.07-9.38,77.84-14.44,118.8-14.44,3.81,0,7.61.06,11.4.14l105.46-105.46c-2.77.44-5.78.27-8.96-.7Z"/>
<path class="st3" d="M595.03,1130.05c-.38-2.2-.75-4.4-1.1-6.61.34,2.21.71,4.42,1.1,6.61Z"/>
<path class="st3" d="M600.49,1156.11c-.17-.7-.34-1.4-.51-2.1.17.7.34,1.4.51,2.1Z"/>
<path class="st3" d="M596.81,1139.64c-.4-2.01-.79-4.02-1.16-6.04.37,2.02.76,4.03,1.16,6.04Z"/>
<path class="st3" d="M928.27,418.01c174.92,0,336.79,55.74,468.92,150.37,7,5.01,9.05,12.37,7.72,19.05l106.94-106.94c-141.33-130.3-330.12-209.89-537.5-209.89-369.24,0-679.54,252.3-767.95,593.9,132.28-264.71,405.83-446.5,721.88-446.5Z"/>
<path class="st3" d="M598.41,1147.16c-.25-1.13-.5-2.26-.74-3.4.24,1.13.49,2.27.74,3.4Z"/>
<path class="st3" d="M593.51,1120.59c-.31-2.12-.61-4.24-.89-6.37.28,2.13.58,4.25.89,6.37Z"/>
<path class="st3" d="M597.65,983.93c.27-1.29.55-2.57.84-3.85-.29,1.28-.57,2.57-.84,3.85Z"/>
<path class="st3" d="M595.65,994.06c.38-2.07.77-4.14,1.19-6.2-.41,2.06-.81,4.12-1.19,6.2Z"/>
<path class="st3" d="M593.93,1004.2c.35-2.25.73-4.49,1.12-6.73-.39,2.24-.77,4.48-1.12,6.73Z"/>
<path class="st3" d="M591.46,1023.16c.25-2.4.52-4.79.82-7.17-.3,2.38-.57,4.77-.82,7.17Z"/>
<path class="st3" d="M592.59,1013.55c.29-2.21.6-4.41.92-6.6-.33,2.19-.64,4.39-.92,6.6Z"/>
<path class="st3" d="M602.62,963.26c.13-.47.25-.94.38-1.41-.13.47-.26.94-.38,1.41Z"/>
<path class="st3" d="M599.95,973.74c.2-.84.41-1.68.62-2.52-.21.84-.41,1.68-.62,2.52Z"/>
<path class="st3" d="M626.51,1229.04c.37,1.54.75,3.08,1.13,4.62,1.14,1.55,2.27,3.11,3.43,4.65-1.56-3.07-3.08-6.16-4.56-9.27Z"/>
<path class="st3" d="M590.55,1033.11c.21-2.7.45-5.39.72-8.07-.27,2.68-.5,5.37-.72,8.07Z"/>
<path class="st3" d="M590.4,1092.59c-.2-2.73-.38-5.46-.52-8.21.14,2.74.32,5.48.52,8.21Z"/>
<path class="st3" d="M589.79,1082.69c-.14-2.84-.25-5.7-.32-8.56.08,2.86.19,5.71.32,8.56Z"/>
<path class="st3" d="M591.26,1102.54c-.27-2.67-.5-5.34-.71-8.02.21,2.68.45,5.35.71,8.02Z"/>
<path class="st3" d="M592.28,1111.58c-.29-2.35-.56-4.71-.81-7.07.25,2.36.52,4.72.81,7.07Z"/>
<path class="st3" d="M589.88,1043.23c.15-2.75.32-5.5.52-8.23-.2,2.74-.38,5.48-.52,8.23Z"/>
<path class="st3" d="M589.33,1063.81c0-3.06.04-6.12.12-9.17-.07,3.05-.12,6.1-.12,9.17Z"/>
<path class="st3" d="M589.47,1053.48c.08-2.86.19-5.72.33-8.56-.14,2.85-.25,5.7-.33,8.56Z"/>
<path class="st3" d="M589.44,1072.97c-.07-3.05-.12-6.1-.12-9.17,0,3.06.04,6.12.12,9.17Z"/>
<path class="st0" d="M590.55,1094.52c-.05-.64-.1-1.29-.15-1.93.05.64.1,1.29.15,1.93Z"/>
<path class="st0" d="M592.61,1114.21c-.12-.88-.23-1.76-.34-2.64.11.88.22,1.76.34,2.64Z"/>
<path class="st0" d="M589.47,1074.13c-.01-.39-.02-.77-.02-1.16,0,.39.01.77.02,1.16Z"/>
<path class="st0" d="M591.47,1104.51c-.07-.66-.14-1.31-.21-1.97.07.66.14,1.31.21,1.97Z"/>
<path class="st0" d="M589.8,1044.91c.03-.56.05-1.12.08-1.68-.03.56-.06,1.12-.08,1.68Z"/>
<path class="st0" d="M589.44,1054.64c0-.39.01-.78.02-1.16-.01.39-.02.78-.02,1.16Z"/>
<path class="st0" d="M599.98,1154.01c-.55-2.27-1.07-4.56-1.58-6.85.51,2.29,1.03,4.57,1.58,6.85Z"/>
<path class="st0" d="M602.69,1164.6c-.76-2.82-1.49-5.65-2.19-8.49.7,2.84,1.43,5.67,2.19,8.49Z"/>
<path class="st0" d="M590.4,1035c.05-.63.1-1.26.15-1.89-.05.63-.1,1.26-.15,1.89Z"/>
<path class="st0" d="M595.66,1133.6c-.22-1.18-.43-2.37-.63-3.55.21,1.19.41,2.37.63,3.55Z"/>
<path class="st0" d="M597.67,1143.77c-.29-1.37-.58-2.75-.85-4.13.28,1.38.56,2.75.85,4.13Z"/>
<path class="st0" d="M593.93,1123.43c-.15-.95-.28-1.9-.42-2.85.14.95.28,1.9.42,2.85Z"/>
<path class="st0" d="M589.88,1084.38c-.03-.56-.06-1.13-.08-1.69.03.56.05,1.13.08,1.69Z"/>
<path class="st0" d="M591.26,1025.04c.06-.63.13-1.26.2-1.89-.07.63-.14,1.26-.2,1.89Z"/>
<path class="st0" d="M600.57,971.21c.66-2.66,1.34-5.32,2.06-7.96-.71,2.64-1.4,5.29-2.06,7.96Z"/>
<path class="st0" d="M626.6,898.37c-9.65,20.24-17.57,41.47-23.6,63.47,6.02-21.95,13.93-43.11,23.55-63.31.02-.06.03-.11.05-.17Z"/>
<path class="st0" d="M596.84,987.86c.26-1.31.54-2.63.81-3.93-.28,1.31-.55,2.62-.81,3.93Z"/>
<path class="st0" d="M602.94,1165.52c6.02,22.02,13.93,43.26,23.57,63.53,0-.04-.02-.08-.03-.12-9.62-20.23-17.53-41.42-23.54-63.4Z"/>
<path class="st0" d="M598.49,980.08c.47-2.12.96-4.23,1.46-6.34-.5,2.11-.99,4.22-1.46,6.34Z"/>
<path class="st0" d="M592.28,1015.99c.1-.81.2-1.63.31-2.44-.11.81-.21,1.63-.31,2.44Z"/>
<path class="st0" d="M595.04,997.47c.2-1.14.4-2.28.61-3.41-.21,1.14-.41,2.27-.61,3.41Z"/>
<path class="st0" d="M593.52,1006.95c.14-.91.27-1.83.41-2.74-.14.91-.27,1.83-.41,2.74Z"/>
<path class="st0" d="M181.14,1063.81c0-68.83,8.77-135.62,25.25-199.3-42.92,85.89-70.98,180.51-80.77,280.49,18.11,191.66,99.64,364.84,223.38,498.35l42.03-42.03c-130.3-141.33-209.89-330.12-209.89-537.5Z"/>
<path class="st0" d="M391.04,1601.31l56.13-56.13c-61.87-100.74-99.44-217.82-104.28-342.94-6.7-173.23,48.48-333.3,145.12-460.1,12.44-16.32,38.54-4.9,34.47,15.22-7.83,38.65-11.96,78.64-11.96,119.6,0,133.54,43.54,256.87,117.11,356.71-.38-1.54-.76-3.08-1.13-4.62-9.64-20.26-17.56-41.5-23.57-63.53-.08-.31-.17-.61-.25-.92-.76-2.82-1.49-5.65-2.19-8.49-.17-.7-.34-1.4-.51-2.1-.55-2.27-1.07-4.56-1.58-6.85-.25-1.13-.5-2.26-.74-3.4-.29-1.37-.58-2.75-.85-4.13-.4-2.01-.79-4.02-1.16-6.04-.22-1.18-.43-2.37-.63-3.55-.38-2.2-.75-4.4-1.1-6.61-.15-.95-.28-1.9-.42-2.85-.31-2.12-.61-4.24-.89-6.37-.12-.88-.23-1.76-.34-2.64-.29-2.35-.56-4.71-.81-7.07-.07-.66-.14-1.31-.21-1.97-.27-2.66-.5-5.34-.71-8.02-.05-.64-.1-1.29-.15-1.93-.2-2.73-.38-5.46-.52-8.21-.03-.56-.06-1.13-.08-1.69-.14-2.84-.25-5.7-.32-8.56-.01-.39-.02-.77-.02-1.16-.07-3.05-.12-6.1-.12-9.17s.04-6.12.12-9.17c0-.39.01-.78.02-1.16.08-2.86.19-5.72.33-8.56.03-.56.05-1.12.08-1.68.15-2.75.32-5.5.52-8.23.05-.63.1-1.26.15-1.89.21-2.7.45-5.39.72-8.07.06-.63.13-1.26.2-1.89.25-2.4.52-4.79.82-7.17.1-.81.2-1.63.31-2.44.29-2.21.6-4.41.92-6.6.14-.91.27-1.83.41-2.74.35-2.25.73-4.49,1.12-6.73.2-1.14.4-2.28.61-3.41.38-2.07.77-4.14,1.19-6.2.26-1.31.54-2.62.81-3.93.27-1.29.55-2.57.84-3.85.47-2.12.96-4.23,1.46-6.34.2-.84.41-1.68.62-2.52.66-2.66,1.34-5.32,2.06-7.96.13-.47.25-.94.38-1.41,6.03-22.01,13.95-43.23,23.6-63.47,56.13-185.26,225.71-323.47,567.94-323.47,64.6,0,126.93,9.66,185.65,27.59,3.18.97,6.19,1.14,8.96.7l15.75-15.75c1.34-6.69-.72-14.04-7.72-19.05-132.13-94.63-293.99-150.37-468.92-150.37-316.05,0-589.6,181.79-721.88,446.5-16.48,63.68-25.25,130.46-25.25,199.3,0,207.38,79.6,396.17,209.89,537.5Z"/>
<path class="st1" d="M631.07,1238.31c13.52,26.55,30.05,51.31,49.11,73.86l.05-.05c-18.91-22.39-35.32-46.97-48.79-73.3-.13-.17-.25-.34-.37-.51Z"/>
<path class="st1" d="M1222.66,769.68l.05-.05c-21.23-17.94-44.42-33.62-69.22-46.68-.03,0-.06.01-.09.02,24.81,13.06,48.02,28.76,69.26,46.71Z"/>
<path class="st1" d="M1153.49,722.95c24.8,13.06,47.99,28.74,69.22,46.68l60.98-60.98c-3.79-.09-7.59-.14-11.4-.14-40.97,0-80.73,5.07-118.8,14.44Z"/>
<path class="st1" d="M680.17,1312.17c-19.06-22.55-35.58-47.31-49.11-73.86-1.16-1.54-2.29-3.1-3.43-4.65,8.25,33.64,18.58,67.2,30.75,100.29l21.79-21.79Z"/>
<path class="st1" d="M627.64,1233.67c-73.57-99.84-117.11-223.17-117.11-356.71,0-40.96,4.13-80.95,11.96-119.6,4.07-20.11-22.03-31.54-34.47-15.22-96.63,126.8-151.82,286.87-145.12,460.1,4.84,125.12,42.41,242.19,104.28,342.94l211.21-211.21c-12.17-33.09-22.5-66.65-30.75-100.29Z"/>
<path d="M1687.4,909.08c19.11-57.41,25.74-118.24,19.44-178.41-6.3-60.18-25.37-118.32-55.96-170.52-19.35-33.7-43.06-64.39-70.35-91.4l-79.09,79.09c30.23,29.71,54.4,65.25,70.89,104.69,23.41,56.01,30.39,117.52,20.12,177.34-2.51-1.55-6.92-4.2-10.09-6.01l-226.25-130.69-81.63,81.63,252.21,145.6c52.59,30.38,95.45,75.11,123.53,128.97,28.09,53.85,40.25,114.58,35.07,175.1-5.18,60.51-27.5,118.3-64.33,166.58-36.84,48.3-86.67,85.09-143.66,106.08v-404c.08-9.78-2.44-19.41-7.32-27.89-4.87-8.49-11.9-15.52-20.39-20.39l-282.23-162.96-57.09,57.09,31.39,18.12v213.21l-184.62,106.57-117.09-67.58-57.08,57.08,96.17,55.52-143.52,82.87c-.71.46-1.52.75-2.35.82-.85.08-1.7-.06-2.48-.38l-54.92-31.73-81.65,81.65,77.17,44.57c8.46,4.94,18.08,7.55,27.89,7.55s19.43-2.61,27.88-7.55l414.55-239.37v165.74c.05.84-.12,1.7-.47,2.46-.36.77-.9,1.44-1.58,1.94l-343.25,198.18c-73.41,42.28-160.62,53.72-242.46,31.8-40.49-10.85-78.02-29.43-110.76-54.31l-79.69,79.69c29.48,24.15,62.21,44.44,97.45,60.14,83.16,37.05,175.96,46.72,264.99,27.62,40.15,45.26,89.51,81.41,144.77,106.05,55.26,24.62,115.14,37.18,175.64,36.8,91.07.24,179.87-28.47,253.55-81.98,73.7-53.49,128.49-129.03,156.47-215.69,59.29-12.15,115.31-36.8,164.31-72.34,48.99-35.54,89.83-81.14,119.78-133.75,45.64-78.74,65.1-169.94,55.58-260.45-9.53-90.51-47.54-175.67-108.56-243.18ZM1365.7,1485.4c-.12,84.68-33.78,165.86-93.61,225.75-59.85,59.91-141,93.65-225.67,93.83-74.76.11-147.16-26.07-204.57-73.96,2.59-1.4,7.13-3.9,10.08-5.71l339.55-196.13c8.53-4.86,15.6-11.88,20.5-20.38,4.91-8.49,7.46-18.13,7.4-27.93v-478.7l143.52,82.86c.76.38,1.4.93,1.89,1.62.48.69.78,1.48.9,2.32v396.43Z"/>
</g>
<g>
<path class="st1" d="M440.15,128.36l33.61-17.45,75.39,145.25-33.62,17.45-75.39-145.25Z"/>
<path class="st1" d="M735.59,152.05l-73.28,20.09-4.71,37.65-37.43,10.26,27.08-177.11,36.07-9.89,113.84,138.48-38.33,10.51-23.25-29.99ZM716.49,127.47l-41.59-53.57-8.46,67.29,50.05-13.72Z"/>
<path class="st1" d="M859.45,86.83l66.07-3.54,1.56,29.18-66.07,3.54-1.56-29.18Z"/>
<path class="st1" d="M1125.99,181.77l-23.85-50.06-1.85-.3-32.54-5.28-7.3,45-37.39-6.07,26.22-161.54,69.92,11.35c43.15,7,66.52,33.77,60.64,70-3.93,24.23-19.05,40.02-41.51,45.61l27.81,57.8-40.16-6.52ZM1112.19,45l-30.46-4.94-9.14,56.31,30.46,4.94c22.85,3.71,36.11-5.04,38.96-22.58,2.88-17.77-6.97-30.03-29.82-33.73Z"/>
<path class="st1" d="M1453.76,127.07l-67.73,148.98-34.48-15.67,27.77-61.08-67.68-30.77-27.77,61.08-34.48-15.67,67.73-148.98,34.48,15.67-26.7,58.74,67.68,30.77,26.7-58.74,34.48,15.68Z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 142 KiB

View File

@ -62,6 +62,11 @@
<canvas id="dbTop3Autores"></canvas> <canvas id="dbTop3Autores"></canvas>
</div> </div>
</div> </div>
<div class="col-12 col-sm-6">
<div class="p-3 bg-light rounded shadow-sm">
<canvas id="dbVisitedFrom"></canvas>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -462,7 +467,6 @@
// dbTop3Autores dbTop3Autores // dbTop3Autores dbTop3Autores
let top_3 = data.top_three_authors; let top_3 = data.top_three_authors;
console.log(top_3);
let lbl_top_3 = top_3.map(e => `${e[0]}`); let lbl_top_3 = top_3.map(e => `${e[0]}`);
let val_top_3 = top_3.map(e => e[1]); let val_top_3 = top_3.map(e => e[1]);
let colors_top_3 = top_3.map((_, i) => getColor(i)); let colors_top_3 = top_3.map((_, i) => getColor(i));
@ -506,6 +510,55 @@
} }
}); });
// dbVisitedFrom
let visited_from = data.visited_from;
let lbl_visited_from = visited_from.map(e => `${e[0]}`);
let val_visited_from = visited_from.map(e => e[1]);
let colors_visited_from = visited_from.map((_, i) => getColor(i));
let ctx9 = document.getElementById("dbVisitedFrom");
new Chart(ctx9, {
type: 'bar',
data: {
labels: lbl_visited_from,
datasets: [{
label: 'Visto',
data: val_visited_from,
backgroundColor: colors_visited_from,
borderWidth: 1
}]
},
options: {
indexAxis: 'x',
elements: {
bar: {
borderWidth: 2,
cursor: 'pointer' // Cursor de pointer para indicar interactividad
}
},
responsive: true,
plugins: {
tooltip: {
callbacks: {
label: function (tooltipItem) {
return tooltipItem.dataset.label + ': ' + tooltipItem.raw;
}
}
},
legend: {
display: false
},
title: {
display: true,
text: 'Visitas por redes sociales'
}
}
}
});

View File

@ -1,8 +1,8 @@
<style> <style>
.floating-btn { .floating-btn {
position: fixed; position: fixed;
width: 60px; width: 5em;
height: 60px; height: 5em;
background-color: #ffffff; background-color: #ffffff;
border-radius: 50%; border-radius: 50%;
display: flex; display: flex;
@ -22,7 +22,7 @@
cursor: grabbing; cursor: grabbing;
} }
@keyframes spin-right { /* @keyframes spin-right {
from { from {
transform: rotate(0deg); transform: rotate(0deg);
} }
@ -33,12 +33,12 @@
.rotating { .rotating {
animation: spin-right 4s linear infinite; animation: spin-right 4s linear infinite;
} } */
</style> </style>
<div class="floating-btn border border-light shadow-lg" id="floatingBtn"> <div class="floating-btn border border-light shadow-lg" id="floatingBtn">
<a id="floatingBtnLink" target="_blank" href="https://chatgpt.com/g/g-6828126fba608191a2803ac89f54f504-formha-rh-para-pymes"> <a id="floatingBtnLink" target="_blank" href="https://chatgpt.com/g/g-6828126fba608191a2803ac89f54f504-formha-rh-para-pymes">
<img src="{{ url_for('static', filename='y_img/logos/circulo_logo.png') }}" <img src="{{ url_for('static', filename='y_img/logos/chat_ia_formha.svg') }}"
alt="logo" alt="logo"
class="img-fluid rounded-circle rotating" class="img-fluid rounded-circle rotating"
style="width: 100%; height: 100%;"> style="width: 100%; height: 100%;">

View File

@ -1,5 +1,3 @@
<nav class="navbar navbar-expand-lg bg-body-tertiary navbar-custom"> <nav class="navbar navbar-expand-lg bg-body-tertiary navbar-custom">
<div class="container-fluid"> <div class="container-fluid">
<a class="navbar-brand" href="{{ url_for('home') }}"> <a class="navbar-brand" href="{{ url_for('home') }}">