|
|
|
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(): |
|
|
|
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() |
|
|
|
|
|
with gr.Column(scale=1): |
|
gr.Markdown("### Solicitud de Acceso") |
|
|
|
|
|
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: |
|
|
|
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") |
|
|
|
|
|
success = store_application_request( |
|
name=name, |
|
email=email, |
|
institution=institution, |
|
current_role=role, |
|
desired_role=role, |
|
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)}") |
|
|
|
|
|
register_button.click( |
|
fn=handle_registration, |
|
inputs=[name, email, institution, role, reason], |
|
outputs=register_message |
|
) |
|
|
|
|
|
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. |
|
""") |
|
|
|
|
|
start_button = gr.Button(visible=False) |
|
|
|
return view, login_button |