g1a / modules /ui /views /landing_view.py
AIdeaText's picture
Update modules/ui/views/landing_view.py
eaa20c8 verified
raw
history blame
5.3 kB
# modules/ui/views/landing_view.py
import gradio as gr
from ...database.sql_db import store_application_request
from datetime import datetime
import uuid
def create_landing_view():
"""Crea la vista de landing con tres columnas"""
with gr.Blocks() as view:
gr.Markdown("# Bienvenido a AIdeaText")
with gr.Row():
# Primera columna - Login (25%)
with gr.Column(scale=1):
gr.Markdown("### Iniciar Sesión")
username = gr.Textbox(label="Usuario")
password = gr.Textbox(label="Contraseña", type="password")
login_button = gr.Button("Ingresar", variant="primary")
login_message = gr.Markdown()
# Segunda columna - Registro (25%)
with gr.Column(scale=1):
gr.Markdown("### Solicitud de Acceso")
# Campos del formulario
name = gr.Textbox(
label="Nombre Completo",
placeholder="Ej: Juan Pérez"
)
email = gr.Textbox(
label="Correo Electrónico",
placeholder="[email protected]"
)
institution = gr.Textbox(
label="Institución",
placeholder="Universidad, Colegio, Empresa, etc."
)
role = gr.Dropdown(
choices=[
"Estudiante",
"Profesor",
"Investigador",
"Otro"
],
label="Rol",
value="Estudiante"
)
reason = gr.TextArea(
label="¿Por qué te interesa usar AIdeaText?",
placeholder="Describe brevemente tu interés en la plataforma...",
lines=4
)
register_button = gr.Button(
"Enviar Solicitud",
variant="secondary"
)
register_message = gr.Markdown()
def handle_registration(name, email, institution, role, reason):
try:
# Validaciones básicas
if not all([name, email, institution, role, reason]):
return gr.Markdown("❌ Todos los campos son obligatorios")
if "@" not in email or "." not in email:
return gr.Markdown("❌ El correo electrónico no es válido")
# Crear y almacenar la solicitud
success = store_application_request(
name=name,
email=email,
institution=institution,
current_role=role, # Campo en la base de datos
desired_role=role, # Campo en la base de datos
reason=reason
)
if success:
return gr.Markdown("✅ Solicitud enviada correctamente. Te contactaremos pronto.")
else:
return gr.Markdown("❌ Error al enviar la solicitud. Por favor, intenta nuevamente.")
except Exception as e:
return gr.Markdown(f"❌ Error: {str(e)}")
# Conectar el evento del botón
register_button.click(
fn=handle_registration,
inputs=[name, email, institution, role, reason],
outputs=register_message
)
# Tercera columna - Videos (50%)
with gr.Column(scale=2):
gr.Markdown("### Videos Tutoriales")
with gr.Tabs():
with gr.TabItem("Introducción"):
gr.Markdown("""
### ¿Qué es AIdeaText?
AIdeaText es una herramienta avanzada para el análisis y mejora
de textos académicos. Utiliza inteligencia artificial para
proporcionar retroalimentación en tiempo real sobre la estructura,
coherencia y calidad de tus textos.
""")
with gr.TabItem("Tutorial"):
gr.Markdown("""
### Cómo usar AIdeaText
Aprende a utilizar todas las funcionalidades de AIdeaText
para mejorar tu escritura académica.
""")
with gr.TabItem("Ejemplos"):
gr.Markdown("""
### Ejemplos de Uso
Mira ejemplos prácticos de cómo AIdeaText puede ayudarte
en tus tareas de escritura.
""")
# Mantener la funcionalidad de navegación existente
start_button = gr.Button(visible=False)
return view, login_button