componentsDjangoType 0.0.4__tar.gz → 1.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (16) hide show
  1. {componentsdjangotype-0.0.4/componentsDjangoType.egg-info → componentsDjangoType-1.0.0}/PKG-INFO +2 -3
  2. {componentsdjangotype-0.0.4 → componentsDjangoType-1.0.0}/README.md +1 -1
  3. componentsDjangoType-1.0.0/componentsDjangoType/management/commands/createcomponentApp.py +248 -0
  4. {componentsdjangotype-0.0.4 → componentsDjangoType-1.0.0/componentsDjangoType.egg-info}/PKG-INFO +2 -3
  5. {componentsdjangotype-0.0.4 → componentsDjangoType-1.0.0}/componentsDjangoType.egg-info/SOURCES.txt +2 -1
  6. {componentsdjangotype-0.0.4 → componentsDjangoType-1.0.0}/setup.py +1 -1
  7. {componentsdjangotype-0.0.4 → componentsDjangoType-1.0.0}/LICENSE +0 -0
  8. {componentsdjangotype-0.0.4 → componentsDjangoType-1.0.0}/MANIFEST.in +0 -0
  9. {componentsdjangotype-0.0.4 → componentsDjangoType-1.0.0}/componentsDjangoType/__init__.py +0 -0
  10. {componentsdjangotype-0.0.4 → componentsDjangoType-1.0.0}/componentsDjangoType/management/__init__.py +0 -0
  11. {componentsdjangotype-0.0.4 → componentsDjangoType-1.0.0}/componentsDjangoType/management/commands/__init__.py +0 -0
  12. {componentsdjangotype-0.0.4 → componentsDjangoType-1.0.0}/componentsDjangoType/management/commands/createcomponent.py +0 -0
  13. {componentsdjangotype-0.0.4 → componentsDjangoType-1.0.0}/componentsDjangoType.egg-info/dependency_links.txt +0 -0
  14. {componentsdjangotype-0.0.4 → componentsDjangoType-1.0.0}/componentsDjangoType.egg-info/requires.txt +0 -0
  15. {componentsdjangotype-0.0.4 → componentsDjangoType-1.0.0}/componentsDjangoType.egg-info/top_level.txt +0 -0
  16. {componentsdjangotype-0.0.4 → componentsDjangoType-1.0.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: componentsDjangoType
3
- Version: 0.0.4
3
+ Version: 1.0.0
4
4
  Summary: A Django app for creating HTML components
5
5
  Home-page: https://github.com/jose-CR/componentsDjangoType
6
6
  Author: Alejandro
@@ -17,7 +17,6 @@ Classifier: Programming Language :: Python :: 3.7
17
17
  Classifier: Framework :: Django :: 3.2
18
18
  Description-Content-Type: text/markdown
19
19
  License-File: LICENSE
20
- Requires-Dist: Django>=3.2
21
20
 
22
21
  # componentsDjangotype
23
22
 
@@ -39,7 +38,7 @@ Este comando de Django te permite crear un componente HTML dentro del directorio
39
38
 
40
39
  ## Uso
41
40
 
42
- 1. Ejecuta el comando en tu terminal: `python manage.py create_html_component <nombre_de_aplicación> <ruta_del_archivo> --type=<template|static>`
41
+ 1. Ejecuta el comando en tu terminal: `python manage.py createcomponent <nombre_de_aplicación> <carpeta/archivo> --type=<template|static>`
43
42
  2. Reemplaza `<nombre_de_aplicación>` con el nombre de la aplicación donde deseas crear el componente.
44
43
  3. Reemplaza `<ruta_del_archivo>` con la ruta donde deseas crear el componente dentro del directorio `templates` o `static` de la aplicación.
45
44
  4. La bandera `--type` especifica si deseas crear un componente en el directorio `templates` o `static`. Por defecto, se establece en `template`.
@@ -18,7 +18,7 @@ Este comando de Django te permite crear un componente HTML dentro del directorio
18
18
 
19
19
  ## Uso
20
20
 
21
- 1. Ejecuta el comando en tu terminal: `python manage.py create_html_component <nombre_de_aplicación> <ruta_del_archivo> --type=<template|static>`
21
+ 1. Ejecuta el comando en tu terminal: `python manage.py createcomponent <nombre_de_aplicación> <carpeta/archivo> --type=<template|static>`
22
22
  2. Reemplaza `<nombre_de_aplicación>` con el nombre de la aplicación donde deseas crear el componente.
23
23
  3. Reemplaza `<ruta_del_archivo>` con la ruta donde deseas crear el componente dentro del directorio `templates` o `static` de la aplicación.
24
24
  4. La bandera `--type` especifica si deseas crear un componente en el directorio `templates` o `static`. Por defecto, se establece en `template`.
@@ -0,0 +1,248 @@
1
+ # componentsDjangoType/management/commands/createcomponentApp.py
2
+ import os
3
+ from django.core.management.base import BaseCommand
4
+ from django.core.management import call_command
5
+
6
+
7
+ class Command(BaseCommand):
8
+ help = 'Crea una aplicación llamada Home, estructura de carpetas y configura urls automáticamente en el proyecto especificado'
9
+
10
+ def handle(self, *args, **kwargs):
11
+ # Nombre de la aplicación a crear
12
+ app_name = "Home"
13
+
14
+ # Paso 1: Solicitar el nombre de la aplicación principal al usuario
15
+ project_name = input(
16
+ "Por favor, ingresa el nombre de la aplicación principal del proyecto: ")
17
+
18
+ # Paso 2: Crear la aplicación "Home" si no existe
19
+ if not os.path.exists(app_name):
20
+ self.stdout.write(f"Creando la aplicación '{app_name}'...")
21
+ call_command('startapp', app_name)
22
+ else:
23
+ self.stdout.write(f"La aplicación '{app_name}' ya existe.")
24
+
25
+ # Paso 3: Crear el archivo urls.py en la aplicación "Home" si no existe
26
+ urls_path = os.path.join(app_name, 'urls.py')
27
+ if not os.path.exists(urls_path):
28
+ self.stdout.write(f"Creando el archivo '{urls_path}'...")
29
+ with open(urls_path, 'w') as f:
30
+ f.write(
31
+ "from django.urls import path\n\n"
32
+ "urlpatterns = [\n"
33
+ " # Añade tus rutas aquí\n"
34
+ "]\n"
35
+ )
36
+ else:
37
+ self.stdout.write(f"El archivo '{urls_path}' ya existe.")
38
+
39
+ # Paso 4: Modificar el archivo urls.py principal del proyecto
40
+ project_urls_path = os.path.join(project_name, 'urls.py')
41
+ if os.path.exists(project_urls_path):
42
+ with open(project_urls_path, 'r') as f:
43
+ content = f.read()
44
+
45
+ include_statement = "path('', include('Home.urls'))"
46
+ if include_statement not in content:
47
+ self.stdout.write(f"Añadiendo la ruta '{
48
+ include_statement}' al archivo urls.py principal...")
49
+ with open(project_urls_path, 'a') as f:
50
+ f.write(
51
+ "\nfrom django.urls import include, path\n\n"
52
+ "urlpatterns += [\n"
53
+ f" {include_statement},\n"
54
+ "]\n"
55
+ )
56
+ else:
57
+ self.stdout.write(
58
+ "La ruta ya existe en el archivo urls.py principal.")
59
+ else:
60
+ self.stdout.write(f"No se encontró el archivo principal urls.py en '{
61
+ project_urls_path}'. Asegúrate de que el nombre del proyecto sea correcto.")
62
+
63
+ # Paso 5: Crear la carpeta services y el archivo authentication.py en Home
64
+ services_dir = os.path.join(app_name, 'services')
65
+ # Crea la carpeta si no existe
66
+ os.makedirs(services_dir, exist_ok=True)
67
+ authentication_file_path = os.path.join(
68
+ services_dir, 'authentication.py')
69
+
70
+ if not os.path.exists(authentication_file_path):
71
+ self.stdout.write(f"Creando el archivo '{
72
+ authentication_file_path}'...")
73
+ with open(authentication_file_path, 'w') as f:
74
+ f.write(
75
+ "from django.shortcuts import render, redirect\n"
76
+ "from django.contrib.auth.forms import UserCreationForm, AuthenticationForm\n"
77
+ "from django.contrib.auth.models import User\n"
78
+ "from django.contrib.auth import login, logout, authenticate\n"
79
+ "from django.db import IntegrityError\n\n\n"
80
+ "class Authentication:\n"
81
+ " @staticmethod\n"
82
+ " def get_signup(request):\n"
83
+ " if request.method == 'GET':\n"
84
+ " return render(request, 'singup.html', {\n"
85
+ " 'form': UserCreationForm()\n"
86
+ " })\n"
87
+ " elif request.method == 'POST':\n"
88
+ " if request.POST['password1'] == request.POST['password2']:\n"
89
+ " try:\n"
90
+ " # Register user\n"
91
+ " user = User.objects.create_user(\n"
92
+ " username=request.POST['username'], password=request.POST['password2'])\n"
93
+ " user.save()\n"
94
+ " login(request, user)\n"
95
+ " return redirect('logged')\n"
96
+ " except IntegrityError:\n"
97
+ " return render(request, 'singup.html', {\n"
98
+ " 'form': UserCreationForm(),\n"
99
+ " 'error': 'User already exists'\n"
100
+ " })\n"
101
+ " return render(request, 'singup.html', {\n"
102
+ " 'form': UserCreationForm(),\n"
103
+ " 'error': 'Passwords do not match'\n"
104
+ " })\n\n"
105
+ " @staticmethod\n"
106
+ " def get_signout(request):\n"
107
+ " logout(request)\n"
108
+ " return redirect('home')\n\n"
109
+ " @staticmethod\n"
110
+ " def get_signing(request):\n"
111
+ " if request.method == 'GET':\n"
112
+ " return render(request, 'login.html', {\n"
113
+ " 'form': AuthenticationForm,\n"
114
+ " })\n"
115
+ " elif request.method == 'POST':\n"
116
+ " try:\n"
117
+ " User.objects.get(username=request.POST['username'])\n"
118
+ " except User.DoesNotExist:\n"
119
+ " return render(request, 'login.html', {\n"
120
+ " 'form': AuthenticationForm,\n"
121
+ " 'error': 'User does not exist in the database'\n"
122
+ " })\n"
123
+ " user = authenticate(\n"
124
+ " request, username=request.POST['username'], password=request.POST['password'])\n"
125
+ " if user is None:\n"
126
+ " return render(request, 'login.html', {\n"
127
+ " 'form': AuthenticationForm,\n"
128
+ " 'error': 'username or password is incorrect'\n"
129
+ " })\n"
130
+ " else:\n"
131
+ " login(request, user)\n"
132
+ " return redirect('logged')\n\n"
133
+ " @staticmethod\n"
134
+ " def get_logged(request):\n"
135
+ " return render(request, 'logged.html')\n\n"
136
+ " def dispatch(self, request, *args, **kwargs):\n"
137
+ " match request.path:\n"
138
+ " case \"/signup\":\n"
139
+ " return self.get_signup(request)\n"
140
+ " case \"/login\":\n"
141
+ " return self.get_signing(request)\n"
142
+ " case \"/logout\":\n"
143
+ " return self.get_signout(request)\n"
144
+ " case \"/logged\":\n"
145
+ " return self.get_logged(request)\n"
146
+ " case \"/\":\n"
147
+ " return self.get(request)\n"
148
+ " case _:\n"
149
+ " return self.get(request)\n"
150
+ )
151
+ else:
152
+ self.stdout.write(
153
+ f"El archivo '{authentication_file_path}' ya existe.")
154
+
155
+ # Paso 6: Crear la carpeta templates y los archivos HTML
156
+ templates_dir = os.path.join(project_name, 'templates')
157
+ layouts_dir = os.path.join(templates_dir, 'layouts')
158
+ static_dir = os.path.join(project_name, 'static')
159
+ css_dir = os.path.join(static_dir, 'css')
160
+ js_dir = os.path.join(static_dir, 'js')
161
+
162
+ # Crear los directorios necesarios
163
+ os.makedirs(js_dir, exist_ok=True)
164
+ os.makedirs(css_dir, exist_ok=True)
165
+ os.makedirs(layouts_dir, exist_ok=True)
166
+ os.makedirs(templates_dir, exist_ok=True)
167
+ os.makedirs(static_dir, exist_ok=True)
168
+
169
+ # Rutas de los archivos fuente y destino
170
+ css_source_path = os.path.join('utils', 'css', 'authentication.css')
171
+ authentication_css = os.path.join(css_dir, 'authentication.css')
172
+ js_source_path = os.path.join('utils', 'js', 'alertErrors.js')
173
+ alertErrors_js = os.path.join(js_dir, 'alertErrors.js')
174
+
175
+ # Crear archivos si no existen
176
+ if not os.path.exists(authentication_css):
177
+ try:
178
+ with open(css_source_path, 'r') as source_file:
179
+ css_content = source_file.read()
180
+ with open(js_source_path, 'r') as source_file:
181
+ js_content = source_file.read()
182
+
183
+ with open(authentication_css, 'w') as f:
184
+ f.write(css_content)
185
+ with open(alertErrors_js, 'w') as f:
186
+ f.write(js_content)
187
+
188
+ print(f"Archivo CSS creado exitosamente en {
189
+ authentication_css}")
190
+ print(f"Archivo JS creado exitosamente en {alertErrors_js}")
191
+ except FileNotFoundError as e:
192
+ print(f"Archivo fuente no encontrado: {e}")
193
+ except Exception as e:
194
+ print(f"Error al crear el archivo: {e}")
195
+
196
+ # Crear el archivo de layout (index.html) si no existe
197
+ index_page_source = os.path.join('utils', 'layouts', 'index.html')
198
+ layouts_source = os.path.join(layouts_dir, 'index.html')
199
+
200
+ if not os.path.exists(layouts_source):
201
+ try:
202
+ with open(index_page_source, 'r') as source_file:
203
+ index_content = source_file.read()
204
+
205
+ with open(layouts_source, 'w') as f:
206
+ f.write(index_content)
207
+
208
+ print("Archivo de layout creado exitosamente")
209
+ except FileNotFoundError as e:
210
+ print(f"Archivo fuente no encontrado: {e}")
211
+ except Exception as e:
212
+ print(f"Error al crear el archivo: {e}")
213
+
214
+ # Crear las páginas HTML adicionales (home, signup, login, logged)
215
+ # Rutas de los archivos fuente
216
+ home_page = os.path.join('utils', 'pages', 'home.html')
217
+ signup_page = os.path.join('utils', 'pages', 'signup.html')
218
+ login_page = os.path.join('utils', 'pages', 'login.html')
219
+ logged_page = os.path.join('utils', 'pages', 'logged.html')
220
+
221
+ # Rutas de los archivos de destino
222
+ home_dest = os.path.join(templates_dir, 'home.html')
223
+ signup_dest = os.path.join(templates_dir, 'signup.html')
224
+ login_dest = os.path.join(templates_dir, 'login.html')
225
+ logged_dest = os.path.join(templates_dir, 'logged.html')
226
+
227
+ # Crear cada archivo HTML si no existe
228
+ for source_path, dest_path, page_name in [
229
+ (home_page, home_dest, 'Home'),
230
+ (signup_page, signup_dest, 'Signup'),
231
+ (login_page, login_dest, 'Login'),
232
+ (logged_page, logged_dest, 'Logged')
233
+ ]:
234
+ if not os.path.exists(dest_path):
235
+ try:
236
+ with open(source_path, 'r') as source_file:
237
+ content = source_file.read()
238
+ with open(dest_path, 'w') as dest_file:
239
+ dest_file.write(content)
240
+ print(f"Archivo {page_name} creado exitosamente en {
241
+ dest_path}")
242
+ except FileNotFoundError as e:
243
+ print(f"Archivo fuente no encontrado: {source_path}")
244
+ except Exception as e:
245
+ print(f"Error al crear el archivo {page_name}: {e}")
246
+
247
+ self.stdout.write(self.style.SUCCESS(
248
+ "Comando ejecutado exitosamente."))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: componentsDjangoType
3
- Version: 0.0.4
3
+ Version: 1.0.0
4
4
  Summary: A Django app for creating HTML components
5
5
  Home-page: https://github.com/jose-CR/componentsDjangoType
6
6
  Author: Alejandro
@@ -17,7 +17,6 @@ Classifier: Programming Language :: Python :: 3.7
17
17
  Classifier: Framework :: Django :: 3.2
18
18
  Description-Content-Type: text/markdown
19
19
  License-File: LICENSE
20
- Requires-Dist: Django>=3.2
21
20
 
22
21
  # componentsDjangotype
23
22
 
@@ -39,7 +38,7 @@ Este comando de Django te permite crear un componente HTML dentro del directorio
39
38
 
40
39
  ## Uso
41
40
 
42
- 1. Ejecuta el comando en tu terminal: `python manage.py create_html_component <nombre_de_aplicación> <ruta_del_archivo> --type=<template|static>`
41
+ 1. Ejecuta el comando en tu terminal: `python manage.py createcomponent <nombre_de_aplicación> <carpeta/archivo> --type=<template|static>`
43
42
  2. Reemplaza `<nombre_de_aplicación>` con el nombre de la aplicación donde deseas crear el componente.
44
43
  3. Reemplaza `<ruta_del_archivo>` con la ruta donde deseas crear el componente dentro del directorio `templates` o `static` de la aplicación.
45
44
  4. La bandera `--type` especifica si deseas crear un componente en el directorio `templates` o `static`. Por defecto, se establece en `template`.
@@ -10,4 +10,5 @@ componentsDjangoType.egg-info/requires.txt
10
10
  componentsDjangoType.egg-info/top_level.txt
11
11
  componentsDjangoType/management/__init__.py
12
12
  componentsDjangoType/management/commands/__init__.py
13
- componentsDjangoType/management/commands/createcomponent.py
13
+ componentsDjangoType/management/commands/createcomponent.py
14
+ componentsDjangoType/management/commands/createcomponentApp.py
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name='componentsDjangoType',
5
- version='0.0.4',
5
+ version='1.0.0',
6
6
  packages=find_packages(),
7
7
  include_package_data=True,
8
8
  license='MIT',