File size: 5,298 Bytes
4885161
f2dc27c
eaa20c8
 
 
f2dc27c
833239c
eaa20c8
2e144f6
eaa20c8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2e144f6
eaa20c8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
# 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