From d2a957761e9caf0a7e20aaf438e4f3434dc2e1df Mon Sep 17 00:00:00 2001 From: KyMAN <0kyman0@gmail.com> Date: Sun, 12 Oct 2025 21:02:03 +0200 Subject: [PATCH] #wip: Targets, questions and basic GUI. --- .gitignore | 5 + AIPattern.md | 89 ++ Public/ecma/Application/Components.ecma.js | 409 +++++ Public/ecma/Application/OpoTests.ecma.js | 323 ++++ Public/ecma/Managers/CookiesManager.ecma.js | 112 ++ Public/ecma/Managers/I18NManager.ecma.js | 139 ++ .../ecma/Managers/IdentifiersManager.ecma.js | 89 ++ Public/ecma/Managers/SettingsManager.ecma.js | 135 ++ Public/ecma/Snippets/Baquedano.snippet.js | 102 ++ Public/ecma/Snippets/Cibertest.snippet.js | 90 ++ Public/ecma/Snippets/Cookies.snippet.js | 79 + .../ecma/Snippets/LaConstitucionEs.snippet.js | 125 ++ .../Snippets/LeyesDeOposiciones.snippet.js | 78 + Public/ecma/Snippets/Oposito.snippet.js | 70 + Public/ecma/Snippets/TemariosEnPDF.snippet.js | 132 ++ Public/ecma/Snippets/TestDeLeyCom.snippet.js | 92 ++ Public/ecma/Utils/Check.ecma.js | 100 ++ Public/ecma/Utils/Utils.ecma.js | 329 ++++ Public/ecma/Views/BaseView.ecma.js | 137 ++ Public/ecma/Views/MainFormView.ecma.js | 215 +++ Public/ecma/Views/TestsView.ecma.js | 481 ++++++ Public/ecma/Views/UserView.ecma.js | 78 + Public/index.html | 33 + Public/json/OpoTests.settings.json | 10 + Public/json/database.json | 153 ++ Public/json/extras/1noro.json | 23 + .../gemini/gemini.00.ce-preliminar.00.json | 109 ++ .../gemini/gemini.01.ce-preliminar.01.json | 131 ++ .../gpt5-mini-tab.00.ce-preambulo.json | 46 + .../gpt5-mini-tab/gpt5-mini-tab.01.ce.json | 66 + Public/json/gpt5-mini/preliminar_qs_01.json | 58 + Public/json/gpt5-mini/preliminar_qs_02.json | 58 + Public/json/gpt5-mini/preliminar_qs_03.json | 58 + Public/json/gpt5-mini/preliminar_qs_04.json | 58 + Public/json/gpt5-mini/preliminar_qs_05.json | 58 + Public/json/gpt5-mini/preliminar_qs_06.json | 59 + Public/json/gpt5-mini/preliminar_qs_07.json | 58 + Public/json/gpt5-mini/preliminar_qs_08.json | 58 + Public/json/gpt5-mini/preliminar_qs_09.json | 58 + Public/json/gpt5-mini/preliminar_qs_10.json | 59 + Public/json/i18n/OpoTests.i18n.espanol.json | 60 + .../kyman/comun/kyman.00.tipos-leyes.json | 141 ++ .../kyman.00.redes.00.tipos-area.json | 140 ++ .../kyman.00.redes.01.tipologias.json | 222 +++ .../kyman.00.redes.02.protocolos.json | 492 ++++++ .../kyman.00.redes.03.ieee-802.json | 134 ++ .../especifico/kyman.00.redes.04.ipv4.json | 317 ++++ .../especifico/kyman.00.redes.05.ipv6.json | 450 ++++++ .../especifico/kyman.01.generaciones.json | 101 ++ .../especifico/kyman.02.hardware.00.ics.json | 107 ++ ...03.desarrollo.02.codificaciones-texto.json | 154 ++ .../kyman/especifico/kyman.aa.red-sara.json | 159 ++ Public/json/paco/paco.ce.00.constitucion.json | 526 ++++++ .../paco.ce.01.constitucion.preliminar.json | 172 ++ ...02.constitucion.preliminar-articulado.json | 123 ++ .../json/paco/paco.ce.03.constitucion.i.json | 1404 +++++++++++++++++ .../paco.ce.04.constitucion.i-articulado.json | 244 +++ .../paco/paco.ce.05.constitucion.i-leyes.json | 148 ++ .../random/random.ce.00.constitucion.json | 28 + Public/scss/OpoTests.css | 380 +++++ Public/scss/OpoTests.css.map | 7 + Public/scss/OpoTests.scss | 421 +++++ Python/Application/OpoTests.py | 87 + Python/Drivers/FilesDriver.py | 61 + Python/Drivers/HTTPSocketDriver.py | 94 ++ Python/Interfaces/FilesDriverInterface.py | 13 + .../Interfaces/HTTPSocketDriverInterface.py | 4 + Python/Interfaces/I18NManagerInterface.py | 7 + Python/Interfaces/OpoTestsInterface.py | 24 + Python/Interfaces/SettingsManagerInterface.py | 7 + Python/Managers/I18NManager.py | 47 + Python/Managers/SettingsManager.py | 18 + Python/Utils/Check.py | 22 + Python/Utils/Patterns.py | 13 + Python/Utils/Utils.py | 83 + Python/server.py | 5 + README.md | 13 +- .../OpoTests.scssc | Bin 0 -> 140449 bytes Tools/run.server.bat | 8 + Tools/run.server.ps1 | 8 + Tools/run.server.sh | 3 + Tools/sass.sh | 3 + version | 1 + 83 files changed, 11011 insertions(+), 2 deletions(-) create mode 100644 .gitignore create mode 100644 AIPattern.md create mode 100644 Public/ecma/Application/Components.ecma.js create mode 100644 Public/ecma/Application/OpoTests.ecma.js create mode 100644 Public/ecma/Managers/CookiesManager.ecma.js create mode 100644 Public/ecma/Managers/I18NManager.ecma.js create mode 100644 Public/ecma/Managers/IdentifiersManager.ecma.js create mode 100644 Public/ecma/Managers/SettingsManager.ecma.js create mode 100644 Public/ecma/Snippets/Baquedano.snippet.js create mode 100644 Public/ecma/Snippets/Cibertest.snippet.js create mode 100644 Public/ecma/Snippets/Cookies.snippet.js create mode 100644 Public/ecma/Snippets/LaConstitucionEs.snippet.js create mode 100644 Public/ecma/Snippets/LeyesDeOposiciones.snippet.js create mode 100644 Public/ecma/Snippets/Oposito.snippet.js create mode 100644 Public/ecma/Snippets/TemariosEnPDF.snippet.js create mode 100644 Public/ecma/Snippets/TestDeLeyCom.snippet.js create mode 100644 Public/ecma/Utils/Check.ecma.js create mode 100644 Public/ecma/Utils/Utils.ecma.js create mode 100644 Public/ecma/Views/BaseView.ecma.js create mode 100644 Public/ecma/Views/MainFormView.ecma.js create mode 100644 Public/ecma/Views/TestsView.ecma.js create mode 100644 Public/ecma/Views/UserView.ecma.js create mode 100644 Public/index.html create mode 100644 Public/json/OpoTests.settings.json create mode 100644 Public/json/database.json create mode 100644 Public/json/extras/1noro.json create mode 100644 Public/json/gemini/gemini.00.ce-preliminar.00.json create mode 100644 Public/json/gemini/gemini.01.ce-preliminar.01.json create mode 100644 Public/json/gpt5-mini-tab/gpt5-mini-tab.00.ce-preambulo.json create mode 100644 Public/json/gpt5-mini-tab/gpt5-mini-tab.01.ce.json create mode 100644 Public/json/gpt5-mini/preliminar_qs_01.json create mode 100644 Public/json/gpt5-mini/preliminar_qs_02.json create mode 100644 Public/json/gpt5-mini/preliminar_qs_03.json create mode 100644 Public/json/gpt5-mini/preliminar_qs_04.json create mode 100644 Public/json/gpt5-mini/preliminar_qs_05.json create mode 100644 Public/json/gpt5-mini/preliminar_qs_06.json create mode 100644 Public/json/gpt5-mini/preliminar_qs_07.json create mode 100644 Public/json/gpt5-mini/preliminar_qs_08.json create mode 100644 Public/json/gpt5-mini/preliminar_qs_09.json create mode 100644 Public/json/gpt5-mini/preliminar_qs_10.json create mode 100644 Public/json/i18n/OpoTests.i18n.espanol.json create mode 100644 Public/json/kyman/comun/kyman.00.tipos-leyes.json create mode 100644 Public/json/kyman/especifico/kyman.00.redes.00.tipos-area.json create mode 100644 Public/json/kyman/especifico/kyman.00.redes.01.tipologias.json create mode 100644 Public/json/kyman/especifico/kyman.00.redes.02.protocolos.json create mode 100644 Public/json/kyman/especifico/kyman.00.redes.03.ieee-802.json create mode 100644 Public/json/kyman/especifico/kyman.00.redes.04.ipv4.json create mode 100644 Public/json/kyman/especifico/kyman.00.redes.05.ipv6.json create mode 100644 Public/json/kyman/especifico/kyman.01.generaciones.json create mode 100644 Public/json/kyman/especifico/kyman.02.hardware.00.ics.json create mode 100644 Public/json/kyman/especifico/kyman.03.desarrollo.02.codificaciones-texto.json create mode 100644 Public/json/kyman/especifico/kyman.aa.red-sara.json create mode 100644 Public/json/paco/paco.ce.00.constitucion.json create mode 100644 Public/json/paco/paco.ce.01.constitucion.preliminar.json create mode 100644 Public/json/paco/paco.ce.02.constitucion.preliminar-articulado.json create mode 100644 Public/json/paco/paco.ce.03.constitucion.i.json create mode 100644 Public/json/paco/paco.ce.04.constitucion.i-articulado.json create mode 100644 Public/json/paco/paco.ce.05.constitucion.i-leyes.json create mode 100644 Public/json/random/random.ce.00.constitucion.json create mode 100644 Public/scss/OpoTests.css create mode 100644 Public/scss/OpoTests.css.map create mode 100644 Public/scss/OpoTests.scss create mode 100644 Python/Application/OpoTests.py create mode 100644 Python/Drivers/FilesDriver.py create mode 100644 Python/Drivers/HTTPSocketDriver.py create mode 100644 Python/Interfaces/FilesDriverInterface.py create mode 100644 Python/Interfaces/HTTPSocketDriverInterface.py create mode 100644 Python/Interfaces/I18NManagerInterface.py create mode 100644 Python/Interfaces/OpoTestsInterface.py create mode 100644 Python/Interfaces/SettingsManagerInterface.py create mode 100644 Python/Managers/I18NManager.py create mode 100644 Python/Managers/SettingsManager.py create mode 100644 Python/Utils/Check.py create mode 100644 Python/Utils/Patterns.py create mode 100644 Python/Utils/Utils.py create mode 100644 Python/server.py create mode 100644 Tools/.sass-cache/831643d086e43d2bc72e628b249bc0635093b776/OpoTests.scssc create mode 100644 Tools/run.server.bat create mode 100644 Tools/run.server.ps1 create mode 100755 Tools/run.server.sh create mode 100755 Tools/sass.sh create mode 100644 version diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..35898e1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +/Data +/Public/data +*.[Ss]ecret.* +*.[Ss]ecrets.* +__pycache__ \ No newline at end of file diff --git a/AIPattern.md b/AIPattern.md new file mode 100644 index 0000000..d7f7b37 --- /dev/null +++ b/AIPattern.md @@ -0,0 +1,89 @@ +# Patrón IA + +Los Tests no son más que archivos JSON con la siguiente estructura: + +```json +[{ + "origin" : "Quién lo hizo", + "sources" : ["Links para el origen de los datos/Tests."], + "title" : "Título del Test.", + "queries" : [{ + "question" : "Pregunta arealizar.", + "rights" : ["Respuestas correctas simples.", ["Respuestas correctas porcentuadas.", 0.5]], + "wrongs" : ["Respuestas incorrectas simples.", ["Respuestas incorrectas porcentuadas.", 0.5]] + }] +}] +``` + +* **origin**: String. Nombre de la entidad o fuente de la información. +* **sources**: Array de Strings. Fuentes de la que parte la información. +* **title**: String. Título del tema a tratar. +* **Queries**: Array de diccionario. Conjunto de posibles preguntas. + * **question**: String. Texto de la pregunta. + * **rights** y **wrongs**: Array de Strings (Respuesta directa) y/o Array bidimensional con: + 0. String. Respuesta. + 1. Float. Probabilidad de prebalecer como seleccionada. + +Todos los campos ahnde existir siempre y el tipado va acorde a lo expuesto. + +Los Array indican que pueden tener uno o más elementos, a excepción de "sources", que puede estar vacío. + +Las respuestas porcentuadas indican cuál es la probabilidad de que una vez elegida por el programa, ésta se quede como respuesta y no se seleccione otra. Esto vale para equivaler conjuntos de respuestas dinámicas y estáticas. El valor que lo acompaña es la probabilidad de que permanezcan siendo 1 el 100% y 0 el 0%. + +Lo interesante es que halla cuántas más posibles respuestas mejor. No hay un número mínimo ni máximo. + +Las respuestas pueden tener factores dinámicos para que una sea más flexibles y dé más resultados. No puede haber anidamientos de éstos. Éstos se basan en claves las cuales son los siguientes. + +## rand + +Indica un conjunto de elementos de los cuales se eligirá uno aleatoriamente. + +```txt +[[rand,opcion1|opcion2|opcion3|opcionN]] +``` + +```json +{ + "wrongs" : ["Esto es [[rand,esto|eso|aquello]]."] +} +``` + +En el ejemplo puede dar como resultado que es "esto", o "eso" o "aquello". + +## range + +Indica uno o más rangos o valores fijos numéricos enteros de donde se sacarán valores aleatorios. + +```txt +[[rand,desde1-hasta1|desde2-hasta2|desde3-hasta3|desdeN-hastaN]] +``` + +```txt +[[rand,valor1|valor2|valor3|valorN]] +``` + +```txt +[[rand,desde1-hasta1|desde2-hasta2|valor3|desdeN-hastaN]] +``` + +```json +{ + "wrongs" : ["Esto es [[range,0-10|15-20|23|31-60]]."] +} +``` + +En el ejemplo puede coger cualquier valor comprendido entre 0 y 10, 15 y 20, el valor 23, y entre 31 y 60. + +## serie + +Es como el rango pero con memoria, y la siguiente serie del mismo texto procesado ha de ser igual o más grande. + +```json +{ + "wrongs" : ["Esto está entre [[serie,0-25]] y [[serie,10-50]]."] +} +``` + +En el ejemplo, el primer valor puede coger cualquier valor comprendido entre el 0 y el 25; y el segundo puede ser entre 10 si el primero es menor que 10 o desde el primero en caso contrario, hasta el 50. + +Sólo se contabiliza una serie por pregunta/respuesta. \ No newline at end of file diff --git a/Public/ecma/Application/Components.ecma.js b/Public/ecma/Application/Components.ecma.js new file mode 100644 index 0000000..15c712a --- /dev/null +++ b/Public/ecma/Application/Components.ecma.js @@ -0,0 +1,409 @@ +"use strict"; + +import {Check} from "../Utils/Check.ecma.js"; + +/** + * @typedef {import("../Application/OpoTests.ecma.js").OpoTests} OpoTests + */ + +/** + * @class Components + * @constructor + * @param {!OpoTests} ot + * @returns {void} + * @access public + * @static + */ +export const Components = (function(){ + + /** + * @callback components_event_callback + * @param {!HTMLElement} item + * @param {!Event} event + * @returns {boolean|void} + */ + + /** + * @constructs Components + * @param {!OpoTests} ot + * @returns {void} + * @access private + * @static + */ + const Components = function(ot){ + + /** @type {Components} */ + const self = this; + + /** + * @returns {void} + * @access private + */ + const constructor = () => {}; + + /** + * @param {!(string|Array.)} i18n + * @param {!string} [tag = "span"] + * @param {?string} [_default = null] + * @returns {[string, Object., string]} + * @access public + */ + this.i18n = (i18n, tag = "span", _default = null) => [tag, {data_i18n : i18n}, ot.i18n.get(i18n, null, _default)]; + + /** + * @param {!string} name + * @param {!string} [tag = "span"] + * @returns {[string, Object.]} + * @access public + */ + this.icon = (name, tag = "span") => [tag, {data_icon : name}]; + + /** + * @param {!string} name + * @param {?components_event_callback} [on_click = null] + * @param {!string} [type = "button"] + * @param {?string} [default_text = null] + * @returns {[string, Object., Array.<(string|[string, Object., string])>]} + * @access public + */ + this.button = (name, on_click = null, type = "button", default_text) => ["button", { + type : type, + data_i18n : name, + data_i18n_without : true, + title : ot.i18n.get(name, null, default_text), + ...(on_click ? {on_click : on_click} : {}) + }, [ + self.icon(name), + self.i18n(name, "span", default_text) + ]]; + + /** + * @param {!string} type + * @param {!string} name + * @param {!boolean} checked + * @param {?components_event_callback} on_change + * @param {?string} default_text + * @returns {[string, Object., Array.<(string|[string, Object., string])>]} + * @access private + */ + const select_item = (type, name, checked, on_change, default_text) => { + + /** @type {string} */ + const id = name.slice(-2) == "[]" ? ot.identifiers.get() : name; + + return ["label", { + for : id, + class : type + "-input", + data_i18n : name, + data_i18n_without : true, + title : ot.i18n.get(name, null, default_text) + }, [ + ["input", { + type : type, + id : id, + name : name, + ...(on_change ? {on_change : on_change} : {}), + ...(checked ? {checked : "checked"} : {}) + }], + self.icon(type, "span"), + self.i18n(name, "span", default_text) + ]]; + }; + + /** + * @param {!string} name + * @param {!boolean} [checked = false] + * @param {?components_event_callback} [on_change = null] + * @param {?string} [default_text = null] + * @returns {[string, Object., Array.<(string|[string, Object., string])>]} + */ + this.checkbox = (name, checked = false, on_change = null, default_text) => ( + select_item("checkbox", name, checked, on_change, default_text) + ); + + /** + * @param {!string} name + * @param {!boolean} [checked = false] + * @param {?components_event_callback} [on_change = null] + * @param {?string} [default_text = null] + * @returns {[string, Object., Array.<(string|[string, Object., string])>]} + */ + this.radio = (name, checked = false, on_change = null, default_text) => ( + select_item("radio", name, checked, on_change, default_text) + ); + + /** + * @param {!string} name + * @param {?number} [value = null] + * @param {?number} [minimum = null] + * @param {?number} [maximum = null] + * @param {?number} [step = null] + * @param {?components_event_callback} [on_change = null] + * @param {?string} [default_text = null] + * @returns {[string, Object., Array.<(string|[string, Object., string])>]} + * @access public + */ + this.number = (name, value = null, minimum = null, maximum = null, step = null, on_change = null, default_text) => { + + /** @type {string} */ + const text = ot.i18n.get(name, null, default_text); + + return ["label", { + for : name, + class : "number-input", + data_i18n : name, + data_i18n_without : true, + title : text, + }, [ + ["input", { + type : "number", + id : name, + name : name, + ...(value !== null ? {value : value} : {}), + ...(minimum !== null ? {min : minimum} : {}), + ...(maximum !== null ? {max : maximum} : {}), + ...(step !== null ? {step : step} : {}), + ...(on_change ? {on_change : on_change} : {}), + data_i18n : name, + data_i18n_without : true, + placeholder : text + "..." + }], + ["span", {class : "minimum"}, minimum || "-∞"], + ["span", {class : "maximum"}, maximum || "∞"] + ]]; + }; + + /** + * @param {!string} type + * @param {!string} name + * @param {?string} [value = null] + * @param {?number} [maximum_length = null] + * @param {?string} [pattern = null] + * @param {?components_event_callback} [on_change = null] + * @param {?string} [default_text = null] + * @returns {[string, Object., Array.<(string|[string, Object., string])>]} + * @access private + */ + const text = (type, name, value = null, maximum_length = null, pattern = null, on_change = null, default_text = null) => { + + /** @type {string} */ + const text = ot.i18n.get(name, null, default_text); + + return ["label", { + for : name, + class : "input-" + type + }, [ + ["input", { + type : type, + id : name, + name : name, + ...(value !== null ? {value : value} : {}), + ...(pattern !== null ? {pattern : pattern} : {}), + ...(on_change ? {on_input : on_change} : {}), + data_i18n : name, + data_i18n_without : true, + placeholder : text + "..." + }], + ["span", {class : "length"}, 0], + ...(maximum_length ? [["span", {class : "maximum-length"}, maximum_length || "∞"]] : []) + ]]; + }; + + /** + * @param {!string} name + * @param {?string} [value = null] + * @param {?number} [maximum_length = null] + * @param {?string} [pattern = null] + * @param {?components_event_callback} [on_change = null] + * @param {?string} [default_text = null] + * @returns {[string, Object., Array.<(string|[string, Object., string])>]} + * @access public + */ + this.text = (name, value = null, maximum_length = null, pattern = null, on_change = null, default_text = null) => ( + text("text", name, value, maximum_length, pattern, on_change, default_text) + ); + + /** + * @param {!string} name + * @param {?string} [value = null] + * @param {?number} [maximum_length = null] + * @param {?string} [pattern = null] + * @param {?components_event_callback} [on_change = null] + * @param {?string} [default_text = null] + * @returns {[string, Object., Array.<(string|[string, Object., string])>]} + * @access public + */ + this.password = (name, value = null, maximum_length = null, pattern = null, on_change = null, default_text = null) => ( + text("password", name, value, maximum_length, pattern, on_change, default_text) + ); + + /** + * @param {...[string, components_event_callback|null, string, string|null]} buttons + * @returns {[string, Object., Array.<(string|[string, Object., string])>]} + * @access public + */ + this.buttons = (...buttons) => ["div", {class : "buttons"}, buttons.map(button => self.button(...button))]; + + /** + * @param {!string} name + * @param {...any} items + * @returns {[string, Object., Array.<(string|[string, Object., string])>]} + */ + this.group = (name, ...items) => ["div", { + class : "group", + data_i18n : name, + data_i18n_without : true, + title : ot.i18n.get(name) + }, items]; + + /** + * @param {!string} name + * @param {!Array.} structure + * @param {?components_event_callback} on_submit + * @param {...(components_event_callback|null)} [extra_actions] + * @returns {[string, Object., Array.<(string|[string, Object., string])>]} + * @access public + */ + this.form = (name, structure, on_submit, ...extra_actions) => ["form", { + class : "form", + data_name : name, + method : "get", + action : "#", + ...(on_submit ? {on_submit : on_submit} : {}) + }, [ + ["fieldset", {}, [ + self.i18n(name, "legend"), + self.i18n(name + "_text", "p"), + ["div", {class : "structure"}, structure.map(([type, name, ...item], i) => { + return ["div", { + data_i : i, + data_type : type, + data_i18n : name, + data_i18n_without : true, + title : ot.i18n.get(name, null, item[1] || name) + }, [ + ["label", {for : name}, [ + self.i18n(name), + self.i18n(name + "_description") + ]], + ["span", {class : "input"}, self[type] ? [self[type](name, ...item)] : item], + ["ul", {class : "errors"}] + ]]; + })], + ["ul", {class : "form-errors"}], + self.buttons( + ["clean", null, "clean"], + ...extra_actions, + on_submit ? ["submit", null, "submit"] : null + ) + ]] + ]]; + + /** + * @param {!HTMLElement} form + * @returns {HTMLFormElement|null} + * @access public + */ + this.get_form = form => { + + if(form) + while(form.tagName.toLowerCase() != "form" && (form = form.parentNode)); + + return form; + }; + + /** + * @param {!HTMLElement} form + * @returns {Object.)>} + * @access public + */ + this.get_form_data = form => ( + [...self.get_form(form).querySelectorAll("[name]")].reduce((data, item) => { + + /** @type {string} */ + let name_value = item.getAttribute("name"); + /** @type {string} */ + const name = name_value.replace(/\[\]$/i, ""), + /** @type {boolean} */ + is_array = name_value != name; + + is_array && !(name in data) && (data[name] = []); + + switch(item.getAttribute("type")){ + case "radio": + data[name] == [] && (data[name] = false); + item.checked && (data[name] = Number(item.value)); + break; + case "checkbox": + if(is_array) + data[name].push(item.checked); + else + data[name] = item.checked; + break; + case "number": + if(is_array) + data[name].push(Number(item.value)); + else + data[name] = Number(item.value); + break; + default: + if(is_array) + data[name].push(item.value); + else + data[name] = item.value; + break; + }; + + return data; + }, {}) + ); + + /** + * @param {!(string|Array.)} sources + * @param {?(string|Array.)} [i18n = null] + * @param {?string} [default_text = null] + * @returns {[string, Object., (string|[string, Object., string])>]} + * @access public + */ + this.image = (sources, i18n = null, default_text = null) => { + + /** @type {number} */ + let i = 0; + + Check.is_array(sources) || (sources = [sources]); + + return ["span", { + class : "image", + data_status : "loading", + ...( + i18n ? {data_i18n : i18n, title : ot.i18n.get(i18n, null, default_text)} : + default_text ? {title : default_text} : + {}), + }, [ + ["img", { + src : sources[i], + ...( + i18n ? {data_i18n : i18n, alt : ot.i18n.get(i18n, null, default_text)} : + default_text ? {alt : default_text} : + {}), + on_error : (image, event) => { + if(i >= sources.length) + image.parentNode.setAttribute("data-status", "error"); + else + image.parentNode.setAttribute("src", sources[++ i]); + }, + on_load : (image, event) => { + image.parentNode.setAttribute("data-status", "loaded"); + image.parentNode.querySelector("span").style.backgroundImage = "url('" + sources[i] + "')"; + } + }], + ["span"] + ]]; + }; + + constructor(); + + }; + + return Components; +})(); \ No newline at end of file diff --git a/Public/ecma/Application/OpoTests.ecma.js b/Public/ecma/Application/OpoTests.ecma.js new file mode 100644 index 0000000..1a17e79 --- /dev/null +++ b/Public/ecma/Application/OpoTests.ecma.js @@ -0,0 +1,323 @@ +"use strict"; + +import {SettingsManager} from "../Managers/SettingsManager.ecma.js"; +import {I18NManager} from "../Managers/I18NManager.ecma.js"; +import {IdentifiersManager} from "../Managers/IdentifiersManager.ecma.js"; +import {Components} from "./Components.ecma.js"; +import {Utils} from "../Utils/Utils.ecma.js"; +import {Check} from "../Utils/Check.ecma.js"; +import {BaseView} from "../Views/BaseView.ecma.js"; +import {MainFormView} from "../Views/MainFormView.ecma.js"; +import {TestsView} from "../Views/TestsView.ecma.js"; +import {UserView} from "../Views/UserView.ecma.js"; +import {CookiesManager} from "../Managers/CookiesManager.ecma.js"; + +/** + * @class OpoTests + * @constructor + * @param {?(Object.|Array.)} inputs + * @returns {void} + * @access public + * @static + */ +export const OpoTests = (function(){ + + /** + * @callback opo_tests_preload_callback + * @param {?HTMLElement} item + * @param {!boolean} asynchronous + * @param {!boolean} success + * @returns {void} + */ + + /** + * @callback opo_tests_load_file_callback + * @param {?string} responseText + * @param {!number} status + * @param {!number} readyState + * @param {!string} message + * @param {!boolean} success + * @returns {void} + */ + + /** + * @callback opo_tests_load_file_end_callback + * @param {!string} message + * @returns {void} + */ + + /** + * @callback opo_tests_default_callback + * @returns {void} + */ + + /** + * @callback opo_tests_json_each_callback + * @param {!(Object.|Array.)} item + * @param {!opo_tests_default_callback} callback + * @returns {void} + */ + + /** + * @constructs OpoTests + * @param {?(Object.|Array.)} inputs + * @returns {void} + * @access private + * @static + */ + const OpoTests = function(inputs = null){ + + /** @type {OpoTests} */ + const self = this; + + this.database = []; + + /** @type {SettingsManager} */ + this.settings = new SettingsManager(self, inputs); + /** @type {I18NManager} */ + this.i18n = new I18NManager(self); + /** @type {IdentifiersManager} */ + this.identifiers = new IdentifiersManager(self); + /** @type {Components} */ + this.components = this.comp = new Components(self); + /** @type {BaseView} */ + this.base = new BaseView(self); + /** @type {MainFormView} */ + this.main_form = new MainFormView(self); + /** @type {TestsView} */ + this.tests = new TestsView(self); + /** @type {UserView} */ + this.user = new UserView(self); + this.cookies = new CookiesManager(self); + + /** + * @returns {void} + * @access private + */ + const end_constructor = () => { + Utils.execute_array(["default_database_files", "database_files"], (key, next_callback) => { + Utils.execute_array(self.settings.get(key, null, []), (file, next_callback) => { + self.load_file(file, (data, ..._) => { + + /** @type {Array.|null} */ + const json = data ? JSON.parse(data) : null; + + if(Check.is_array(json)) + load_database(json, () => { + next_callback(); + }); + else + next_callback(); + + }); + }, next_callback); + }, () => { + console.log(["database", self.database]); + self.main_form.build(); + }); + }; + + /** + * @returns {void} + * @access private + */ + const constructor = () => { + self.settings.start(() => { + self.i18n.start(() => { + self.cookies.start(() => { + self.preload(self.settings.get("position", null, "body"), (position, asynchronous, success) => { + if(success && position){ + Utils.html(position, self.base.build()); + if(self.cookies.get("ot") == "1") + Utils.execute(end_constructor); + else + self.user.build_login(end_constructor); + }; + }); + }); + }); + }); + }; + + /** + * @param {!(string|HTMLElement)} selector + * @param {!opo_tests_preload_callback} callback + * @param {?(Object.|Array.)} [inputs = null] + * @returns {void} + * @access public + */ + this.preload = (selector, callback, inputs = null) => { + if(!Check.is_function(callback)) + return; + if(Check.is_html_item(selector)) + return Utils.execute(callback, selector, false, true); + if(!Check.is_string(selector)) + return Utils.execute(callback, null, false, false); + + /** @type {HTMLElement|null} */ + let item; + + try{ + item = document.querySelector(selector) + }catch(e){ + return Utils.execute(callback, null, false, false); + }; + + if(item) + return Utils.execute(callback, item, false, true); + + /** @type {number} */ + const date = Date.now(), + /** @type {number} */ + timeout = self.settings.get(["preload_timeout", "timeout"], inputs, 2000); + /** @type {number} */ + let interval = setInterval(() => { + if(item = document.querySelector(selector)){ + clearInterval(interval); + Utils.execute(callback, item, true, true); + }else if(Date.now() - date >= timeout){ + clearInterval(interval); + Utils.execute(callback, null, true, false); + }; + }, 1000 / self.settings.get(["frames_per_second", "fps"], inputs, 24)); + + }; + + /** + * @param {!string} url + * @param {!opo_tests_load_file_callback} callback + * @param {?(Object.|Array.)} [inputs = null] + * @returns {XMLHttpRequest} + * @access public + */ + this.load_file = (url, callback, inputs = null) => { + + /** @type {boolean} */ + let ended = false; + /** @type {XMLHttpRequest} */ + const ajax = new XMLHttpRequest(), + /** @type {opo_tests_load_file_end_callback} */ + end = message => { + !ended && (ended = true) && Utils.execute(callback, ajax.responseText, ajax.status, ajax.readyState, message, message == "OK"); + }, + /** @type {number} */ + date = Date.now(), + /** @type {number} */ + timeout = self.settings.get(["ajax_timeout", "timeout"], inputs, 2000); + + ajax.open("GET", url, true); + ajax.timeout = timeout; + ajax.onload = () => { + if(ended) + return; + if(ajax.readyState == 4) + end((ajax.status >= 200 && ajax.status < 300) || [301, 302, 304].includes(ajax.status) ? "OK" : "HTTP_ERROR"); + else if(Date.now() - date >= timeout) + end("FORCED_TIMEOUT"); + }; + ajax.send(null); + + ajax.ontimeout = () => end("TIMEOUT"); + ajax.onerror = () => end("ERROR"); + ajax.onabort = () => end("ABORTED"); + + return ajax; + }; + + /** + * @param {!Array.} files + * @param {!opo_tests_default_callback} callback + * @returns {void} + * @access private + */ + const load_database = (files, callback) => { + Utils.execute_array(Check.is_array(files) ? files : [files], (file, next_callback) => { + self.load_file(file, (responseText, status, readyState, message, success) => { + if(success && responseText){ + try{ + self.database.push(...JSON.parse(responseText).map(item => { + + item.queries = item.queries.filter(Check.is_dictionary); + + return item; + })); + }catch(exception){ + console.log(responseText); + console.error([file, exception]); + }; + }else + console.error([file, responseText, message.toLowerCase(), status, readyState]); + next_callback(); + }); + }, () => { + Utils.execute(callback); + }); + }; + + /** + * @param {!string} message + * @param {?opo_tests_default_callback} [callback = null] + * @param {?string} [default_text = null] + * @return {void} + * @access public + */ + this.alert = (message, callback, default_text = null) => { + alert(self.i18n.get(message, null, default_text)); + Utils.execute(callback); + }; + + /** + * @param {?(Object.|Array.|string)} data + * @param {!opo_tests_json_each_callback} each_callback + * @param {?opo_tests_default_callback} [end_callback = null] + * @param {!boolean} [only_dictionaries = false] + * @returns {void} + * @access public + */ + this.load_json = (data, each_callback, end_callback = null, only_dictionaries = false) => { + if(Check.is_array(data)){ + if(only_dictionaries) + Utils.execute_array(data, (item, next_callback) => { + self.load_json(item, each_callback, next_callback, only_dictionaries); + }, end_callback); + else{ + Utils.execute(each_callback, data); + Utils.execute(end_callback); + }; + }else if(Check.is_dictionary(data)){ + Utils.execute(each_callback, data); + Utils.execute(end_callback); + }else if(Check.is_string(data)){ + + /** @type {Array.|Object.|null} */ + let json; + + try{ + if(json = JSON.parse(data)){ + self.load_json(json, each_callback, end_callback, only_dictionaries); + return; + }; + }catch(exception){}; + + self.load_file(data, (responseText, status, readyState, message, success) => { + if(success && responseText){ + try{ + if(json = JSON.parse(responseText)){ + self.load_json(json, each_callback, end_callback, only_dictionaries); + return; + }; + }catch(exception){}; + }; + Utils.execute(end_callback); + }); + + }else + Utils.execute(end_callback); + }; + + constructor(); + + }; + + return OpoTests; +})(); \ No newline at end of file diff --git a/Public/ecma/Managers/CookiesManager.ecma.js b/Public/ecma/Managers/CookiesManager.ecma.js new file mode 100644 index 0000000..75c91db --- /dev/null +++ b/Public/ecma/Managers/CookiesManager.ecma.js @@ -0,0 +1,112 @@ +"use strict"; + +/** + * @typedef {import("../OpoTests.ecma.js").OpoTests} OpoTests + */ + +import {Utils} from "../Utils/Utils.ecma.js"; + +/** + * @class CookiesManager + * @constructor + * @param {!OpoTests} ot + * @returns {void} + * @access public + * @static + */ +export const CookiesManager = (function(){ + + /** + * @callback cookies_manager_default_callback + * @returns {void} + */ + + /** + * @constructs CookiesManager + * @param {!OpoTests} ot + * @returns {void} + * @access private + * @static + */ + const CookiesManager = function(ot){ + + /** @type {CookiesManager} */ + const self = this; + /** @type {number} */ + let timeout = 3600000; + + /** + * @returns {void} + * @access private + */ + const constructor = () => {}; + + /** + * @param {?cookies_manager_default_callback} [callback = null] + * @return {void} + * @access public + */ + this.start = (callback = null) => { + + timeout = ot.settings.get(["cookies_timeout", "timeout"], null, timeout); + + Utils.execute(callback); + + }; + + /** + * @param {!string} name + * @returns {boolean} + * @access public + */ + this.has = name => { + + name += "="; + + return document.cookie.split(';').some(c => c.trim().startsWith(name)); + }; + + /** + * @param {!string} name + * @param {!string} value + * @returns {void} + * @access public + */ + this.set = (name, value) => { + document.cookie = ( + name + "=" + (value || "") + ";" + + "expires=" + new Date(Date.now() + timeout).toUTCString() + ";" + + "path=/" + ); + }; + + /** + * @param {!string} name + * @returns {?string} + * @access public + */ + this.get = name => { + + name += "="; + + for(const cookie of document.cookie.split(';')) + if(cookie.trim().startsWith(name)) + return cookie.trim().substring(name.length); + return null; + }; + + /** + * @param {!string} name + * @returns {void} + * @access public + */ + this.remove = name => { + self.has(name) && (document.cookie = name + "=; Max-Age=-99999999;"); + }; + + constructor(); + + }; + + return CookiesManager; +})(); \ No newline at end of file diff --git a/Public/ecma/Managers/I18NManager.ecma.js b/Public/ecma/Managers/I18NManager.ecma.js new file mode 100644 index 0000000..71e0a78 --- /dev/null +++ b/Public/ecma/Managers/I18NManager.ecma.js @@ -0,0 +1,139 @@ +"use strict"; + +import {Check} from "../Utils/Check.ecma.js"; +import {Utils} from "../Utils/Utils.ecma.js"; + +/** + * @typedef {import("../Application/OpoTests.ecma.js").OpoTests} OpoTests + */ + +/** + * @class I18NManager + * @constructor + * @param {!OpoTests} ot + * @returns {void} + * @access public + * @static + */ +export const I18NManager = (function(){ + + /** + * @callback i18n_manager_default_callback + * @returns {void} + */ + + /** + * @constructs I18NManager + * @param {!OpoTests} ot + * @returns {void} + * @access private + * @static + */ + const I18NManager = function(ot){ + + /** @type {I18NManager} */ + const self = this, + /** @type {Object.>} */ + sentences = {}; + /** @type {string} */ + let language_selected = "espanol", + /** @type {string} */ + default_language = "espanol"; + + /** + * @returns {void} + * @access private + */ + const constructor = () => { + + language_selected = ot.settings.get(["language_selected", "default_language"], null, language_selected); + default_language = ot.settings.get(["default_language", "language_selected"], null, default_language); + + }; + + /** + * @param {?i18n_manager_default_callback} [callback = null] + * @returns {void} + * @access public + */ + this.start = (callback = null) => { + Utils.execute_array([ + "default_i18n_files", "i18n_files" + ], (key, next_callback) => { + self.add(ot.settings.get(key), next_callback, true); + }, callback); + }; + + /** + * @param {!(string|Array.)} texts + * @param {?(Object.|Array.)} [variables = null] + * @param {?any} [_default = null] + * @returns {string|null} + * @access public + */ + this.get = (texts, variables = null, _default = null) => { + + /** @type {string|Array.|null} */ + let text = null; + /** @type {Array.} */ + const used = [], + /** @type {Array.} */ + languages = [language_selected, default_language].concat(Object.keys(sentences)), + /** @type {Array.} */ + keys = Utils.get_keys(texts); + + if(keys.length) + for(const language of languages){ + if(!used.includes(language) && sentences[language]) + for(const key of keys){ + if(sentences[language][key] !== undefined){ + text = sentences[language][key]; + break; + }; + }; + if(text !== undefined) + break; + used.push(language); + }; + + text === null && (text = ( + _default !== null ? _default : + texts !== null ? ( + Check.is_string(texts) ? texts : + Check.is_array(texts) && texts.length ? texts[0] : + null) : + null)) + + return Utils.string_variables(( + Check.is_array(text) ? text.join("") : + text), variables, _default); + }; + + /** + * @param {!(Object.|null>>|Array.|string)} inputs + * @param {?i18n_manager_default_callback} [callback = null] + * @param {!boolean} [overwrite = false] + * @returns {void} + * @access public + */ + this.add = (inputs, callback = null, overwrite = false) => { + ot.load_json(inputs, (item, next_callback) => { + for(const language in item){ + sentences[language] || (sentences[language] = {}); + for(const key in item[language]) + (overwrite || Check.is_null_or_undefined(sentences[language][key])) && + (sentences[language][key] = item[language][key]); + }; + next_callback(); + }, callback, true); + }; + + constructor(); + + }; + + /** @type {Object.} */ + I18NManager.DEFAULT_SETTINGS = {}; + + return I18NManager; +})(); \ No newline at end of file diff --git a/Public/ecma/Managers/IdentifiersManager.ecma.js b/Public/ecma/Managers/IdentifiersManager.ecma.js new file mode 100644 index 0000000..b5d272b --- /dev/null +++ b/Public/ecma/Managers/IdentifiersManager.ecma.js @@ -0,0 +1,89 @@ +"use strict"; + +import {Utils} from "../Utils/Utils.ecma.js"; + +/** + * @typedef {import("../Application/OpoTests.ecma.js").OpoTests} OpoTests + */ + +/** + * @class IdentifiersManager + * @constructor + * @param {!OpoTests} ot + * @returns {void} + * @access public + * @static + */ +export const IdentifiersManager = (function(){ + + /** + * @constructs IdentifiersManager + * @param {!OpoTests} ot + * @returns {void} + * @access private + * @static + */ + const IdentifiersManager = function(ot){ + + /** @type {IdentifiersManager} */ + const self = this, + /** @type {Array.} */ + identifiers = []; + /** @type {Array.|string} */ + let alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789", + /** @type {number} */ + length = 11; + + /** + * @returns {void} + * @access private + */ + const constructor = () => { + + alphabet = ot.settings.get(["identifiers_alphabet", "default_identifiers_alphabet"], null, alphabet); + length = ot.settings.get(["identifiers_length", "default_identifiers_length"], null, length); + + }; + + /** + * @param {!(string|Array.)} keys + * @param {?(Object.|Array.)} [inputs = null] + * @param {?any} [_default = null] + * @returns {any|null} + * @access public + */ + this.get = () => { + + /** @type {string} */ + let identifier; + + do{ + identifier = ""; + while((identifier += Utils.get_random(alphabet)).length < length); + }while( + identifiers.includes(identifier) || + /^[^a-z]/i.test(identifier) || + document.querySelector("." + identifier + ",#" + identifier + ",[name=" + identifier + "]") + ); + identifiers.push(identifier); + + return identifier; + }; + + /** + * @param {!string} identifier + * @returns {void} + */ + this.remove = identifier => { + identifier in identifiers && identifiers.splice(identifiers.indexOf(identifier), 1); + }; + + constructor(); + + }; + + /** @type {Object.} */ + IdentifiersManager.DEFAULT_SETTINGS = {}; + + return IdentifiersManager; +})(); \ No newline at end of file diff --git a/Public/ecma/Managers/SettingsManager.ecma.js b/Public/ecma/Managers/SettingsManager.ecma.js new file mode 100644 index 0000000..c14c1b3 --- /dev/null +++ b/Public/ecma/Managers/SettingsManager.ecma.js @@ -0,0 +1,135 @@ +"use strict"; + +import {Utils} from "../Utils/Utils.ecma.js"; + +/** + * @typedef {import("../Application/OpoTests.ecma.js").OpoTests} OpoTests + */ + +/** + * @class SettingsManager + * @constructor + * @param {!OpoTests} ot + * @param {?(Object.|Array.)} customs + * @returns {void} + * @access public + * @static + */ +export const SettingsManager = (function(){ + + /** + * @callback settings_manager_default_callback + * @returns {void} + */ + + /** + * @constructs SettingsManager + * @param {!OpoTests} ot + * @param {?(Object.|Array.)} customs + * @returns {void} + * @access private + * @static + */ + const SettingsManager = function(ot, customs = null){ + + /** @type {SettingsManager} */ + const self = this, + /** @type {Object.} */ + settings = {}, + /** @type {Object.} */ + secrets = {}; + + /** + * @returns {void} + * @access private + */ + const constructor = () => { + + customs = Utils.get_dictionary(customs); + + }; + + /** + * @param {?settings_manager_default_callback} [callback = null] + * @returns {void} + * @access public + */ + this.start = (callback = null) => { + Utils.execute_array([ + "default_settings_files", "settings_files" + ], (key, next_callback) => { + self.add(self.get(key), next_callback, true); + }, () => { + Utils.execute_array([ + "default_secrets_files", "secrets_files" + ], (key, next_callback) => { + self.add_secrets(self.get(key), next_callback, true); + }, callback); + }); + }; + + /** + * @param {!(string|Array.)} keys + * @param {?(Object.|Array.)} [inputs = null] + * @param {?any} [_default = null] + * @returns {any|null} + * @access public + */ + this.get = (keys, inputs = null, _default = null) => ( + Utils.get_value(keys, [inputs, customs, secrets, settings, SettingsManager.DEFAULT_SETTINGS], _default) + ); + + /** + * @param {!(Object.|null>>|Array.|string)} inputs + * @param {?i18n_manager_default_callback} callback + * @param {!boolean} overwrite + * @returns {void} + * @access public + */ + this.add = (inputs, callback = null, overwrite = false) => { + ot.load_json(inputs, (item, next_callback) => { + for(key in item) + (overwrite || Check.is_null_or_undefined(settings[key])) && + (settings[key] = item[key]); + next_callback(); + }, callback, true); + }; + + /** + * @param {!(Object.|Array.|string)} inputs + * @param {?settings_manager_default_callback} [callback = null] + * @param {!boolean} [overwrite = false] + * @returns {void} + * @access public + */ + this.add_secrets = (inputs, callback = null, overwrite = false) => { + ot.load_json(inputs, (item, next_callback) => { + for(const key in item) + (overwrite || Check.is_null_or_undefined(secrets[key])) && + (secrets[key] = item[key]); + next_callback(); + }, callback, true); + }; + + constructor(); + + }; + + /** @type {Object.} */ + SettingsManager.DEFAULT_SETTINGS = { + /** @type {Array.|string|Object.} */ + default_settings_files : ["/json/OpoTests.settings.json"], + /** @type {Array.|string|Object.} */ + default_secrets_files : ["/json/OpoTests.secrets.json"], + /** @type {Array.|string|Object.} */ + default_i18n_files : [ + "/json/i18n/OpoTests.i18n.espanol.json", + "/json/i18n/OpoTests.i18n.galego.json", + "/json/i18n/OpoTests.i18n.english.json" + ], + /** @type {Array.|string|Object.} */ + default_database_files : ["/json/database.json"], + }; + + return SettingsManager; +})(); \ No newline at end of file diff --git a/Public/ecma/Snippets/Baquedano.snippet.js b/Public/ecma/Snippets/Baquedano.snippet.js new file mode 100644 index 0000000..9178096 --- /dev/null +++ b/Public/ecma/Snippets/Baquedano.snippet.js @@ -0,0 +1,102 @@ +"use strict"; + +/** + * @class Baquedano + * @constructor + * @returns {void} + * @access public + * @static + */ +const Baquedano = (function(){ + + /** + * @callback cookies_click_callback + * @returns {void} + */ + + /** + * @constructs Baquedano + * @returns {void} + * @access private + * @static + */ + const Baquedano = function(){}; + + /** + * @param {!string} i + * @param {!Object.} fixer + * @param {!string} option + * @returns {string} + * @access public + * @static + */ + Baquedano.get_answer_key = (i, fixer, option) => fixer[i] == option ? "rights" : "wrongs"; + + /** + * @returns {void} + * @access public + * @static + */ + Baquedano.load_txt = () => { + + /** @type {string} */ + const string = document.querySelector("body").innerText, + /** @type {[string, string, string, string]} */ + [_, data_string, test_block, fix_block] = string.split(/^\#{3}\s*(?:test|fix|cor+ec+i[oó]n|data)/im), + /** @type {Object.} */ + fix_values = [...fix_block.matchAll(/^([0-9]+) *([a-d])/gmi)].concat( + [...fix_block.matchAll(/^([a-d]) *([0-9]+)/gmi)].map(([_, right, question]) => [_, question, right]) + ).reduce((values, [_, question, right]) => { + + values[question] = right; + + return values; + }, {}), + /** @type {Object.>>} */ + data = JSON.parse(data_string.trim()); + let i = -1, question = "", answer, option, number; + + data.queries = [...test_block.trim().split(/\n/)].reduce((queries, line) => { + + if(!line.trim()){ + if(question){ + queries.push({ + question : question.trim(), + rights : [], + wrongs : [] + }); + i ++; + question = ""; + }else if(answer){ + queries[i][Baquedano.get_answer_key(number, fix_values, option)].push(answer.trim()); + answer = ""; + }; + }else if(question) + question += " " + line.trim(); + else if(answer){ + if(/^[a-d]\) */i.test(line)){ + queries[i][Baquedano.get_answer_key(number, fix_values, option)].push(answer.trim()); + option = line[0]; + answer = line.replace(/^[a-d]\) */i, "").trim(); + }else + answer += " " + line.trim(); + }else if(/^[0-9]+ +/.test(line)){ + number = line.match(/^[0-9]+/)[0]; + question = line.trim().replace(/^[0-9]+ +/, ""); + }else if(/^[a-d]\) */i.test(line)){ + option = line[0]; + answer = line.replace(/^[a-d]\) */i, "").trim(); + }; + + return queries; + }, []); + data.queries[i][Baquedano.get_answer_key(number, fix_values, option)].push(answer.trim()); + + console.log(JSON.stringify([data])); + + }; + + return Baquedano; +})(); + +Baquedano.load_txt(); \ No newline at end of file diff --git a/Public/ecma/Snippets/Cibertest.snippet.js b/Public/ecma/Snippets/Cibertest.snippet.js new file mode 100644 index 0000000..f3edba3 --- /dev/null +++ b/Public/ecma/Snippets/Cibertest.snippet.js @@ -0,0 +1,90 @@ +"use strict"; + +/** + * @class Cibertest + * @constructor + * @returns {void} + * @access public + * @static + */ +const Cibertest = (function(){ + + /** + * @callback cookies_click_callback + * @returns {void} + */ + + /** + * @constructs Cibertest + * @returns {void} + * @access private + * @static + */ + const Cibertest = function(){}; + + /** + * @returns {void} + * @access public + * @static + */ + Cibertest.cookies_reject = () => { + if(!document.querySelector(".fc-dialog-container")) + return; + + /** + * @returns {void} + */ + const reject_all = () => { + document.querySelectorAll(".fc-dialog-container [type=checkbox]:checked").forEach(checkbox => { + checkbox.checked = false; + }); + }; + + /** + * @param {?string} selector + * @param {?cookies_click_callback} [callback = null] + * @returns {boolean} + */ + const click = (selector, callback = null) => { + + /** @type {boolean} */ + let ok = !selector; + + if(!ok){ + + /** @type {HTMLElement} */ + const button = document.querySelector(selector); + + if(button){ + button.click(); + ok = true; + }; + + }; + + ok && callback && callback(); + + return ok; + }; + + reject_all(); + ["fc-cta-manage-options", "fc-manage-vendors"].forEach(selector => { + click(".fc-dialog-container ." + selector, reject_all); + }); + click(".fc-dialog-container button.fc-confirm-choices"); + + }; + + /** + * @returns {void} + * @access public + * @static + */ + Cibertest.load_test = () => { + Cibertest.reject_cookies(); + }; + + return Cibertest; +})(); + +Cibertest.load_test(); \ No newline at end of file diff --git a/Public/ecma/Snippets/Cookies.snippet.js b/Public/ecma/Snippets/Cookies.snippet.js new file mode 100644 index 0000000..9e101ad --- /dev/null +++ b/Public/ecma/Snippets/Cookies.snippet.js @@ -0,0 +1,79 @@ +"use strict"; + +/** + * @class Cookies + * @constructor + * @returns {void} + * @access public + * @static + */ +export const Cookies = (function(){ + + /** + * @callback cookies_click_callback + * @returns {void} + */ + + /** + * @constructs Cookies + * @returns {void} + * @access private + * @static + */ + const Cookies = function(){}; + + /** + * @returns {void} + * @access public + * @static + */ + Cookies.reject = () => { + if(!document.querySelector(".fc-dialog-container")) + return; + + /** + * @returns {void} + */ + const reject_all = () => { + document.querySelectorAll(".fc-dialog-container [type=checkbox]:checked").forEach(checkbox => { + checkbox.checked = false; + }); + }; + + /** + * @param {?string} selector + * @param {?cookies_click_callback} [callback = null] + * @returns {boolean} + */ + const click = (selector, callback = null) => { + + /** @type {boolean} */ + let ok = !selector; + + if(!ok){ + + /** @type {HTMLElement} */ + const button = document.querySelector(selector); + + if(button){ + button.click(); + ok = true; + }; + + }; + + ok && callback && callback(); + + return ok; + }; + + reject_all(); + ["fc-cta-manage-options", "fc-manage-vendors"].forEach(selector => { + click(".fc-dialog-container ." + selector, reject_all); + }); + click(".fc-dialog-container button.fc-confirm-choices"); + + }; + + return Cookies; +})(); \ No newline at end of file diff --git a/Public/ecma/Snippets/LaConstitucionEs.snippet.js b/Public/ecma/Snippets/LaConstitucionEs.snippet.js new file mode 100644 index 0000000..cbbe83b --- /dev/null +++ b/Public/ecma/Snippets/LaConstitucionEs.snippet.js @@ -0,0 +1,125 @@ +"use strict"; + +/** + * @class LaConstitucionEs + * @constructor + * @returns {void} + * @access public + * @static + */ +const LaConstitucionEs = (function () { + + /** + * @constructs LaConstitucionEs + * @returns {void} + * @access private + * @static + */ + const LaConstitucionEs = function () { }; + + /** @type {Array.>>>} */ + LaConstitucionEs.DATA = []; + + /** + * @returns {void} + * @access public + * @static + */ + LaConstitucionEs.reject_cookies = () => { + if (document.querySelector(".fc-dialog-container")) { + document.querySelectorAll(".fc-dialog-container [type=checkbox]").forEach(checkbox => { + checkbox.checked = false; + }); + document.querySelector(".fc-dialog-container button.fc-manage-vendors").click(); + document.querySelectorAll(".fc-dialog-container [type=checkbox]:checked").forEach(checkbox => { + checkbox.checked = false; + }); + document.querySelector(".fc-dialog-container button.fc-confirm-choices").click(); + }; + }; + + /** + * @param {HTMLElement} item + * @returns {string} + * @access public + * @static + */ + LaConstitucionEs.get_answer_text = item => { + + while ((item = item.parentNode).tagName.toLowerCase() != "li"); + + return item.querySelector(".respuesta_txt").innerText.trim(); + }; + + /** + * @returns {void} + * @access public + * @static + */ + LaConstitucionEs.get_test_data = () => { + + /** @type {HTMLDivElement} */ + const base = document.querySelector(".panel-primary"); + + if (base) { + + /** @type {Object.>>} */ + const data = { + /** @type {string} */ + origin : "laConstitucion.es", + /** @type {string} */ + sources : [window.location.href], + /** @type {string} */ + title: base.querySelector(".panel-heading h1").innerText, + /** @type {Array.>>} */ + queries: [...base.querySelectorAll(".panel-body>ul")].map(query => ({ + /** @type {string} */ + question: query.querySelector("b").innerText.trim(), + /** @type {Array.} */ + rights: [...query.querySelectorAll("li .correcta")].map(LaConstitucionEs.get_answer_text), + /** @type {Array.} */ + wrongs: [...query.querySelectorAll("li .erronea")].map(LaConstitucionEs.get_answer_text) + })) + }; + /** @type {number} */ + let i; + + if (LaConstitucionEs.DATA.some((item, j) => { + if (item.title == data.title) { + i = j; + return true; + }; + return false; + })) { + data.queries.forEach(query => { + + /** @type {number} */ + let j; + + if (LaConstitucionEs.DATA[i].queries.some((item, k) => { + if (item.question == query.question) { + j = k; + return true; + }; + return false; + })) + ["rights", "wrongs"].forEach(type => { + LaConstitucionEs.DATA[i].queries[j][type].push(...query[type].filter(answer => !LaConstitucionEs.DATA[i].queries[j][type].includes(answer))); + }); + else + LaConstitucionEs.DATA[i].queries.push(query); + }); + } else + LaConstitucionEs.DATA.push(data); + + console.log(JSON.stringify(LaConstitucionEs.DATA)); + + }; + + }; + + return LaConstitucionEs; +})(); + +LaConstitucionEs.reject_cookies(); +LaConstitucionEs.get_test_data(); \ No newline at end of file diff --git a/Public/ecma/Snippets/LeyesDeOposiciones.snippet.js b/Public/ecma/Snippets/LeyesDeOposiciones.snippet.js new file mode 100644 index 0000000..ca23e04 --- /dev/null +++ b/Public/ecma/Snippets/LeyesDeOposiciones.snippet.js @@ -0,0 +1,78 @@ +"use strict"; + +const LeyesDeOposiciones = (function(){ + + /** + * @constructs LeyesDeOposiciones + * @returns {void} + * @access private + * @static + */ + const LeyesDeOposiciones = function(){}; + + /** + * @returns {void} + * @access public + * @static + */ + LeyesDeOposiciones.cookies_reject = () => { + if (document.querySelector(".fc-dialog-container")) { + document.querySelectorAll(".fc-dialog-container [type=checkbox]").forEach(checkbox => { + checkbox.checked = false; + }); + document.querySelector(".fc-dialog-container button.fc-manage-vendors").click(); + document.querySelectorAll(".fc-dialog-container [type=checkbox]:checked").forEach(checkbox => { + checkbox.checked = false; + }); + document.querySelector(".fc-dialog-container button.fc-confirm-choices").click(); + }; + }; + + /** + * @returns {void} + * @access public + * @static + */ + LeyesDeOposiciones.autoselect_answers = () => { + document.querySelectorAll(".wq-question").forEach(question => { + question.querySelector(".chosen") || + question.querySelector(".wq_answerTxtCtr").click(); + }); + }; + + /** + * @returns {void} + * @access public + * @static + */ + LeyesDeOposiciones.load_test_data = () => { + console.log(JSON.stringify([{ + /** @type {string} */ + origin : "LeyesDeOposiciones.es", + /** @type {Array.} */ + sources : [window.location.href], + /** @type {string} */ + title : document.querySelector(".wp-block-heading").innerText.trim(), + /** @type {Array.|string>>} */ + queries : [...document.querySelectorAll(".wq-question")].map(question => { + return { + /** @type {string} */ + question : question.querySelector(".wq_questionTextCtr>h4").innerText.trim(), + /** @type {Object.>} */ + ...[...question.querySelectorAll(".wq_answerTxtCtr")].reduce((answers, answer) => { + + answers[answer.parentNode.classList.contains("wq_correctAnswer") ? "rights" : "wrongs"].push(answer.innerText.trim().replace(/^[a-z]\)\s*/i, "")); + + return answers; + }, {rights : [], wrongs : []}) + }; + }) + }])); + }; + + return LeyesDeOposiciones; +}()); + +LeyesDeOposiciones.cookies_reject(); +LeyesDeOposiciones.autoselect_answers(); +LeyesDeOposiciones.load_test_data(); \ No newline at end of file diff --git a/Public/ecma/Snippets/Oposito.snippet.js b/Public/ecma/Snippets/Oposito.snippet.js new file mode 100644 index 0000000..c01179a --- /dev/null +++ b/Public/ecma/Snippets/Oposito.snippet.js @@ -0,0 +1,70 @@ +"use strict"; + +/** + * @class Oposito + * @constructor + * @returns {void} + * @access public + * @static + */ +const Oposito = (function(){ + + /** + * @constructs Oposito + * @returns {void} + * @access private + * @static + */ + const Oposito = function(){}; + + /** + * @returns {void} + * @access public + * @static + */ + Oposito.load_test = () => { + console.log(JSON.stringify([{ + origin : "oposito.es", + title : document.querySelector("h1").innerText.trim(), + sources : [window.location.href], + queries : [...document.querySelectorAll(".test-container>.test-question")].map(question => ({ + question : question.querySelector("p").innerText.trim(), + ...[...question.querySelectorAll(".test-option")].reduce((answers, answer) => { + + answers[answer.getAttribute("data-correct") == "true" ? "rights" : "wrongs"].push(answer.innerText.trim()); + + return answers; + }, {rights: [], wrongs: []}) + })) + }])); + }; + + /** + * @returns {void} + * @access public + * @static + */ + Oposito.quit_cookies = () => { + + /** @type {HTMLBodyElement} */ + const body = document.querySelector("body"); + + [ + "CybotCookiebotDialog", "CybotCookiebotDialogBodyUnderlay" + ].forEach(id => { + + /** @type {HTMLElement} */ + const cookie_item = document.querySelector("#" + id); + + cookie_item && cookie_item.remove(); + }); + + body.hasAttribute("style") && body.removeAttribute("style"); + + }; + + return Oposito; +})(); + +Oposito.quit_cookies(); +Oposito.load_test(); \ No newline at end of file diff --git a/Public/ecma/Snippets/TemariosEnPDF.snippet.js b/Public/ecma/Snippets/TemariosEnPDF.snippet.js new file mode 100644 index 0000000..e15ab23 --- /dev/null +++ b/Public/ecma/Snippets/TemariosEnPDF.snippet.js @@ -0,0 +1,132 @@ +"use strict"; + +export const TemariosEnPDF = (function(){ + + /** + * @callback temarios_en_pdf_preload_callback + * @param {?HTMLElement} item + * @returns {void} + */ + + /** + * @constructs TemariosEnPDF + * @returns {void} + * @access private + * @static + */ + const TemariosEnPDF = function(){}; + + /** + * @param {!string} selector + * @param {!temarios_en_pdf_preload_callback} callback + * @returns {void} + * @access public + * @static + */ + TemariosEnPDF.preload = (selector, callback) => { + + /** @type {number} */ + let interval = setInterval(() => { + + /** @type {?HTMLElement} */ + const item = document.querySelector(selector); + + if(item){ + clearInterval(interval); + callback(item); + }; + }, 100); + + }; + + /** + * @param {!string} html + * @returns {string} + * @access public + * @static + */ + TemariosEnPDF.load_tests_from_txt_body = () => { + TemariosEnPDF.preload("body", body => { + + /** @type {[string, string]} */ + const [questions_box, results_box] = body.innerHTML.split(/[\r\n](?:PREGUNTAS TIPO TEST|PLANTILLA DE CONTESTACIÓN|CLAVES DE CONTESTACIÓN)[\r\n]/ig).filter((_, i) => i % 2), + /** @type {string[]} */ + results = results_box.split(/[\r\n]+/).filter(line => /^[0-9]+[\s.-]*[A-Z]$/i.test(line)).map(line => line.replace(/^[0-9]+[\s.-]*/i, "").trim()), + /** @type {Array<{origin: string, sources: string[], title: string, queries: Array<{question: string, rights: string[], wrongs: string[]}>}>} */ + data = []; + /** @type {string} */ + let subject, + /** @type {string} */ + group, + /** @type {number} */ + i = -1, + /** @type {number} */ + j, + /** @type {number|null} */ + k = null, + /** @type {number} */ + m; + + questions_box.replace(/(?:(?:(?!(?:página\s+[0-9]+))(?:.|[\r\n]+))+)página\s+[0-9]\s*[\r\n]+/i, "").replace(/^www\.[^\r\n]+[\r\n]+©[^\r\n]+[\r\n]+/igm, "").replace(/^(?:[0-9]+\.\-\s*([^\r\n]+)|([a-z])\)\s*([^\r\n]+)|([^\r\n]+))/img, (_, question, identifier, answer, subtitle) => { + if(subtitle){ + if(subtitle.toUpperCase() == subtitle){ + if(subject){ + if(j == -1) + data[i].title += " " + subtitle.trim(); + else{ + group = subtitle.trim(); + data.push({ + /** @type {string} */ + origin : "temariosenpdf.es", + /** @type {Array.} */ + sources : ["https://temariosenpdf.es/archivos/50_Test_LOPD_3.pdf"], + /** @type {string} */ + title : subject + " - " + group, + /** @type {Array.>>} */ + queries : [] + }); + i ++; + j = -1; + }; + }else + subject = subtitle.trim(); + }else{ + if(k) + data[i].queries[j][k][m] = (data[i].queries[j][k][m] + " " + subtitle.trim()).replace(/\- /g, ""); + else + data[i].queries[j].question = (data[i].queries[j].question + " " + subtitle.trim()).replace(/\- /g, ""); + }; + }else if(question){ + k = null; + data[i].queries.push({ + /** @type {string} */ + question: question.trim(), + /** @type {Array.} */ + rights : [], + /** @type {Array.} */ + wrongs : [] + }); + j ++; + }else if(answer){ + m = data[i].queries[j][k = results[j] == identifier ? "rights" : "wrongs"].length; + data[i].queries[j][k].push(answer.trim()); + }; + }); + + console.log(JSON.stringify(data)); + + }); + }; + + TemariosEnPDF.load_direct_tests_from_html = () => { + TemariosEnPDF.preload("body", body => { + + const data = []; + + body.innerHTML.split(/[\r\n]CLAVES DE RESPUESTAS[\r\n]/i)[1].split(/[\r\n]+/).forEach(line => {}); + + }); + }; + + return TemariosEnPDF; +}()); \ No newline at end of file diff --git a/Public/ecma/Snippets/TestDeLeyCom.snippet.js b/Public/ecma/Snippets/TestDeLeyCom.snippet.js new file mode 100644 index 0000000..da9e2c1 --- /dev/null +++ b/Public/ecma/Snippets/TestDeLeyCom.snippet.js @@ -0,0 +1,92 @@ +"use strict"; + +/** + * @class TestDeLeyCom + * @constructor + * @returns {void} + * @access public + * @static + */ +const TestDeLeyCom = (function(){ + + /** + * @constructs TestDeLeyCom + * @returns {void} + * @access private + * @static + */ + const TestDeLeyCom = function(){}; + + /** @type {Array.>} */ + TestDeLeyCom.DATA = []; + + /** + * @returns {void} + * @access public + * @static + */ + TestDeLeyCom.load_data = () => { + + /** @type {string} */ + const title = document.querySelector("#centro .nombreley2").innerText.trim(); + // No se establece como hijo porque hay casuística de anidamiento en UL. + + if(!TestDeLeyCom.DATA.some(item => item.title == title)){ + + /** @type {number} */ + const i = TestDeLeyCom.DATA.length; + + TestDeLeyCom.DATA.push({ + /** @type {string} */ + origin : "TestTeLey.com", + /** @type {Array.} */ + sources : [window.location.href], + /** @type {string} */ + title : title, + /** @type {Array.>>} */ + queries : [] + }); + document.querySelectorAll("#listado>li").forEach(query_box => { + + /** @type {number} */ + const query = query_box.childNodes[0].nodeValue.trim().replace(/^[0-9]+\.\s*/, ""); + + if(!TestDeLeyCom.DATA[i].queries.some(item => item.query == query)){ + + /** @type {number} */ + const j = TestDeLeyCom.DATA[i].queries.length; + + TestDeLeyCom.DATA[i].queries.push({ + /** @type {string} */ + query: query, + /** @type {Array.} */ + rights : [], + /** @type {Array.} */ + wrongs : [] + }); + query_box.querySelectorAll("div").forEach(answer_box => { + + /** @type {string} */ + const answer = answer_box.childNodes[0].nodeValue.trim(), + /** @type {string} */ + type = answer_box.classList.contains("correcto") ? "rights" : "wrongs"; + + ["rights", "wrongs"].some(type => TestDeLeyCom.DATA[i].queries[j][type].includes(answer)) || + TestDeLeyCom.DATA[i].queries[j][type].push(answer); + + }); + + }; + + }); + + }; + + console.log(JSON.stringify(TestDeLeyCom.DATA)); + + }; + + return TestDeLeyCom; +})(); + +TestDeLeyCom.load_data(); \ No newline at end of file diff --git a/Public/ecma/Utils/Check.ecma.js b/Public/ecma/Utils/Check.ecma.js new file mode 100644 index 0000000..920c76c --- /dev/null +++ b/Public/ecma/Utils/Check.ecma.js @@ -0,0 +1,100 @@ +"use strict"; + +/** + * @class Check + * @constructor + * @returns {void} + * @access public + * @static + */ +export const Check = (function(){ + + /** + * @constructs Check + * @returns {void} + * @access private + * @static + */ + const Check = function(){}; + + /** + * @param {?any} item + * @returns {boolean} + * @access public + * @static + */ + Check.is_string = item => typeof item == "string"; + + /** + * @param {?any} item + * @returns {boolean} + * @access public + * @static + */ + Check.is_key = item => item && Check.is_string(item) && /^[a-z_][a-z0-9_]*$/i.test(item); + + /** + * @param {?any} item + * @returns {boolean} + * @access public + * @static + */ + Check.is_array = item => item instanceof Array; + + /** + * @param {?any} item + * @returns {boolean} + * @access public + * @static + */ + Check.is_dictionary = item => item && item.constructor == Object; + + /** + * @param {?any} item + * @returns {boolean} + * @access public + * @static + */ + Check.is_function = item => typeof item == "function"; + + /** + * @param {?any} item + * @returns {boolean} + * @access public + * @static + */ + Check.is_html_item = item => item && (item.tagName || item.nodeName); + + /** + * @param {?any} item + * @returns {boolean} + * @access public + * @static + */ + Check.is_number = item => typeof item == "number"; + + /** + * @param {?any} item + * @returns {boolean} + * @access public + * @static + */ + Check.is_integer = item => Check.is_number(item) && item == item >> 0; + + /** + * @returns {boolean} + * @access public + * @static + */ + Check.is_dark_mode = () => !!window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches; + + /** + * @param {?any} item + * @returns {boolean} + * @access public + * @static + */ + Check.is_null_or_undefined = item => item === null || item === undefined; + + return Check; +})(); \ No newline at end of file diff --git a/Public/ecma/Utils/Utils.ecma.js b/Public/ecma/Utils/Utils.ecma.js new file mode 100644 index 0000000..ab155ce --- /dev/null +++ b/Public/ecma/Utils/Utils.ecma.js @@ -0,0 +1,329 @@ +"use strict"; + +import {Check} from "./Check.ecma.js"; + +/** + * @class Utils + * @constructor + * @returns {void} + * @access public + * @static + */ +export const Utils = (function(){ + + /** + * @callback utils_execute_callback + * @param {...(any|null)} inputs + * @returns {any|null} + */ + + /** + * @callback utils_default_callback + * @returns {void} + */ + + /** + * @callback utils_execute_array_each_callback + * @param {?any} item + * @param {!utils_default_callback} callback + * @returns {void} + */ + + /** + * @constructs Utils + * @returns {void} + * @access private + * @static + */ + const Utils = function(){}; + + /** @type {string} */ + Utils.BASE64_ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + /** @type {string} */ + Utils.RANDOM_ALPHABET = "bHMnuamw/RUBk+xNvCXghsPdlSFG12rLoT0O3VZ=5QeWyI8pADqjcEfJ9Kt64i7Yz"; + + /** + * @param {...(any|null)} items + * @returns {Array} + * @access public + * @static + */ + Utils.get_keys = (...items) => items.reduce((keys, item) => { + + if(Check.is_key(item)) + keys.push(item); + else if(Check.is_array(item)) + keys.push(...Utils.get_keys(...item)); + + return keys; + }, []); + + /** + * @param {...(any|null)} items + * @returns {Array.>} + * @access public + * @static + */ + Utils.get_dictionaries = (...items) => items.reduce((dictionaries, item) => { + + if(Check.is_dictionary(item)) + dictionaries.push(item); + else if(Check.is_array(item)) + dictionaries.push(...Utils.get_dictionaries(...item)); + + return dictionaries; + }, []); + + /** + * @param {?any} items + * @param {!boolean} [overwrite = false] + * @returns {Object.} + * @access public + * @static + */ + Utils.get_dictionary = (items, overwrite = false) => ( + Check.is_dictionary ? items : + Check.is_array(items) ? items.reduce((dictionary, item) => { + + if(Check.is_dictionary(item)) + dictionary = overwrite ? {...dictionary, ...item} : {...item, ...dictionary}; + else if(Check.is_array(item)) + dictionary = {...dictionary, ...Utils.get_dictionary(item, overwrite)}; + + return dictionary; + }) : + {}); + + /** + * @param {!(string|Array.)} keys + * @param {!(Object.|Array.)} inputs + * @param {?any} [_default = null] + * @returns {any|null} + * @access public + * @static + */ + Utils.get_value = (keys, inputs, _default = null) => { + + /** @type {number} */ + const l = (keys = Utils.get_keys(keys)).length; + + if(l){ + + /** @type {number} */ + const m = (inputs = Utils.get_dictionaries(inputs)).length; + + for(let i = 0; i < l; i++) + for(let j = 0; j < m; j++) + if(keys[i] in inputs[j]) + return inputs[j][keys[i]]; + }; + return _default; + }; + + /** + * @param {!string} string + * @param {!(Object.|Array.)} variables + * @param {?any} _default + * @returns {string} + * @access public + * @static + */ + Utils.string_variables = (string, variables, _default = null) => { + + variables = Utils.get_dictionary(variables); + + return ("" + string).replace(/\{([a-z_][a-z0-9_]*)\}/gi, (all, key) => ( + key in variables ? variables[key] : + _default === null ? all : + _default)); + }; + + /** + * @param {!string} string + * @returns {string} + * @access public + * @static + */ + Utils.to_kebab_case = string => ("" + string).replace(/([A-Z]+)|[^a-z0-9]+/g, (_, upper) => ( + upper ? "-" + upper.toLowerCase() : + "-")); + + /** + * @param {!HTMLElement} item + * @param {...Object.} attributes + * @returns {void} + * @access public + * @static + */ + Utils.attributes = (item, attributes) => { + for(const [key, value] of Object.entries(attributes)){ + if(/^on[_\-]?/i.test(key) && Check.is_function(value)) + item.addEventListener(key.toLowerCase().replace(/^on[_\-]?/, ""), event => { + Utils.execute(value, item, event); + }); + else + item.setAttribute(Utils.to_kebab_case(key), value); + }; + }; + + /** + * @param {!HTMLElement} item + * @param {...(string|HTMLElement|[string, Object.|null, string|Array.|null]|null)} structure + * @returns {Array.} + * @access public + * @static + */ + Utils.html = (item, ...structure) => { + + /** @type {Array.} */ + const items = []; + + item || (item = document.createDocumentFragment()); + + for(const node of structure) + if(Check.is_string(node)) + item.innerHTML += node; + else if(Check.is_html_item(node)) + items.push(item.appendChild(node)); + else if(Check.is_array(node)){ + + /** @type {[string, Object.|null, Array.|null]} */ + const [tag, attributes, children] = node.concat(null, null).slice(0, 3), + /** @type {HTMLElement} */ + element = document.createElement(tag); + + attributes && Utils.attributes(element, attributes); + if(children && children.length){ + if(Check.is_string(children)) + element.innerHTML += children; + else + Utils.html(element, ...children); + }; + items.push(item.appendChild(element)); + + }; + + return items; + }; + + /** + * @param {?any} item + * @returns {any|null} + * @access public + * @static + */ + Utils.unique = item => ( + Check.is_array(item) ? item.filter((item, i, array) => array.indexOf(item) == i) : + Check.is_string(item) ? item.split("").filter((char, i, array) => array.indexOf(char) == i).join("") : + item); + + /** + * @param {?(number|Array.|string)} [from = null] + * @param {?number} [to = null] + * @returns {any|null} + * @access public + * @static + */ + Utils.get_random = (from = null, to = null) => ( + Check.is_array(from) || Check.is_string(from) ? from.length ? from[Math.random() * from.length >> 0] : null : + Check.is_integer(from) ? ( + to === null ? Math.random() * from >> 0 : + Check.is_integer(to) ? from + (Math.random() * (to - from + 1) >> 0) : + Check.is_number(to) ? from + Math.random() * (to - from) : + null) : + Check.is_number(from) ? ( + to === null ? Math.random() * from : + Check.is_number(to) ? from + Math.random() * (to - from) : + null) : + from === null ? Math.random() : + null); + + /** + * @param {?any} data + * @returns {string} + * @access public + * @static + */ + Utils.encode_data = data => btoa(encodeURIComponent(JSON.stringify(data)).replace(/%([0-9A-F]{2})/g, (_, p1) => String.fromCharCode("0x" + p1))); + + /** + * @param {!string} code + * @returns {any|null} + * @access public + * @static + */ + Utils.decode_data = code => { + + /** @type {string} */ + const data = decodeURIComponent(atob(code).split("").map(c => "%" + ("00" + c.charCodeAt(0).toString(16)).slice(-2)).join("")); + + try{ + return JSON.parse(data) || data; + }catch(exception){}; + + return data; + }; + + /** + * @param {!utils_execute_callback} callback + * @param {...(any|null)} inputs + * @returns {any|null} + * @access public + * @static + */ + Utils.execute = (callback, ...inputs) => ( + Check.is_function(callback) ? callback(...inputs) : + null); + + /** + * @param {!Array.} array + * @param {!utils_execute_array_each_callback} each_callback + * @param {?utils_default_callback} [end_callback = null] + * @param {!number} [i = 0] + * @returns {void} + * @access public + * @static + */ + Utils.execute_array = (array, each_callback, end_callback = null, i = 0) => { + if(i < array.length) + Utils.execute(each_callback, array[i], () => { + Utils.execute_array(array, each_callback, end_callback, i + 1); + }); + else + Utils.execute(end_callback); + }; + + /** + * @param {?any} item + * @returns {Array.} + * @access public + * @static + */ + Utils.get_array = item => Check.is_array(item) ? item : [item]; + + /** + * @param {!string} string + * @returns {string} + * @access public + * @static + */ + Utils.randomize_string = string => string.split("").sort(() => Utils.get_random() - 0.5).join(""); + + /** + * @param {?any} data + * @returns {string} + * @access public + * @static + */ + Utils.encrypt_data = data => Utils.encode_data(data).split("").map(character => Utils.RANDOM_ALPHABET[Utils.BASE64_ALPHABET.indexOf(character)]).join(""); + + /** + * @param {string} data + * @returns {any|null} + * @access public + * @static + */ + Utils.decrypt_data = data => Utils.decode_data(data.split("").map(character => Utils.BASE64_ALPHABET[Utils.RANDOM_ALPHABET.indexOf(character)]).join("")); + + return Utils; +})(); \ No newline at end of file diff --git a/Public/ecma/Views/BaseView.ecma.js b/Public/ecma/Views/BaseView.ecma.js new file mode 100644 index 0000000..8229b01 --- /dev/null +++ b/Public/ecma/Views/BaseView.ecma.js @@ -0,0 +1,137 @@ +"use strict"; + +import {Utils} from "../Utils/Utils.ecma.js"; +import {Check} from "../Utils/Check.ecma.js"; + +/** + * @class BaseView + * @constructor + * @param {!OpoTests} ot + * @returns {void} + * @access public + * @static + */ +export const BaseView = (function(){ + + /** + * @constructs BaseView + * @param {!OpoTests} ot + * @returns {void} + * @access private + * @static + */ + const BaseView = function(ot){ + + /** @type {BaseView} */ + const self = this; + + /** + * @returns {void} + * @access private + */ + const constructor = () => {}; + + /** + * @param {?(Object.|Array.)} [inputs = null] + * @returns {Array.} + * @access public + */ + this.build = (inputs = null) => { + + /** @type {string} */ + const id = ot.settings.get(["id", "identifier"], inputs) || ot.identifiers.get(), + /** @type {string} */ + name = ot.settings.get(["application_name", "name"], null, "OpoTests"), + /** @type {string} */ + logo = ot.settings.get(["application_logo", "logo"], null, "https://opotests.k3y.pw/images/logo.webp"), + /** @type {string} */ + link = ot.settings.get(["application_link", "application_url", "link", "url"], null, "https://opotests.k3y.pw"), + /** @type {string} */ + git = ot.settings.get(["application_git", "git"], null, "https://git.k3y.pw/KyMAN/OpoTests/"), + /** @type {Object.} */ + screen = {x : 0, y : 0}; + + ot.preload("#" + id, (base, asynchronous, ok) => { + ok && setInterval(() => { + if(base.offsetWidth !== screen.x || base.offsetHeight !== screen.y){ + + /** @type {number} */ + const cells = Number(base.getAttribute("data-cells")), + /** @type {number} */ + size = Math.min( + screen.x = base.offsetWidth, + screen.y = base.offsetHeight + ) / cells, + /** @type {number} */ + minimum_size = Number(base.getAttribute("data-minimum-size")); + + base.style.fontSize = (size < minimum_size ? minimum_size : size) + "px"; + + }; + }, 1000 / ot.settings.get(["frames_per_second", "fps"], inputs, 24)); + }); + + return ["div", { + class : Utils.unique(["opo-tests", "base-view", id].concat(ot.settings.get(["class", "classes"], inputs, []))).join(" "), + id : id, + data_hash : id, + data_application : name, + data_logo : logo, + data_link : link, + data_git : git, + data_cells : ot.settings.get("cells", inputs, 40), + data_minimum_size : ot.settings.get("minimum_size", inputs, 0), + data_gui_mode : Check.is_dark_mode() ? "dark" : "light", + }, [ + ["header", null, [ + ["h1", {title : name}, [ + ["a", {href: link, target: "_blank"}, [ + ot.comp.image(logo, name), + ["span", null, name] + ]] + ]], + ["nav", {class : "header-menu"}, [ + ["ul", null, Object.entries({ + home : link, + git : git + }).map(([key, link]) => ["li", { + data_i18n : key, + data_i18n_without : true, + title : ot.i18n.get(key) + }, [ + ["a", { + href : link, + target : "_blank", + }, [ + ot.comp.icon(key), + ot.comp.i18n(key) + ]] + ]])] + ]] + ]], + ["main"], + ["footer", null, [ + ["p", {class : "licenses"}, [ + ["span", {class : "copyright"}, "© 2025-2026 KyMAN"], + ["a", { + class : "cc-by-nc-sa-4", + href : "https://creativecommons.org/licenses/by-nc-sa/4.0/", + target : "_blank", + data_i18n : "cc_by_nc_sa_4", + data_i18n_without : true, + title : ot.i18n.get("cc_by_nc_sa_4", null, "Creative Commons BY-NC-SA (Attribution-NoCommerce-ShareDAlike) 4.0") + }, [ + ot.comp.i18n("cc_by_nc_sa_4", "span", "Creative Commons BY-NC-SA (Attribution-NoCommerce-ShareDAlike) 4.0"), + ot.comp.image("https://licensebuttons.net/l/by-nc-sa/3.0/88x31.png", "cc_by_nc_sa_4", "Creative Commons BY-NC-SA (Attribution-NoCommerce-ShareDAlike) 4.0") + ]], + ]] + ]] + ]]; + }; + + constructor(); + + }; + + return BaseView; +})(); \ No newline at end of file diff --git a/Public/ecma/Views/MainFormView.ecma.js b/Public/ecma/Views/MainFormView.ecma.js new file mode 100644 index 0000000..cb4ea21 --- /dev/null +++ b/Public/ecma/Views/MainFormView.ecma.js @@ -0,0 +1,215 @@ +"use strict"; + +import {Utils} from "../Utils/Utils.ecma.js"; + +/** + * @class MainFormView + * @constructor + * @param {!OpoTests} ot + * @returns {void} + * @access public + * @static + */ +export const MainFormView = (function(){ + + /** + * @constructs MainFormView + * @param {!OpoTests} ot + * @returns {void} + * @access private + * @static + */ + const MainFormView = function(ot){ + + /** @type {MainFormView} */ + const self = this; + + /** + * @returns {void} + * @access private + */ + const constructor = () => {}; + + /** + * @param {?(Object.|Array.)} [inputs = null] + * @returns {Array.} + * @access public + */ + this.create = (inputs = null) => { + + /** @type {Object.]>} */ + const groups = {}, + /** @type {Array.<[string, {data_visible: boolean, data_selected: boolean, data_i: number}, Array.]>} */ + subjects = []; + /** @type {number} */ + let k = 0; + + ot.database.forEach((block, i) => { + + if(block.group){ + if(groups[block.group]){ + groups[block.group][1] += block.queries.length; + groups[block.group][2].push(i); + return; + }; + groups[block.group] = [k, block.queries.length, [i]]; + }; + k ++; + + subjects.push(["li", { + data_visible : true, + data_selected : false, + data_is : i + }, [ + ot.comp.checkbox("blocks[]", false, (item, event) => { + item.closest("li").setAttribute("data-selected", item.checked); + }, ( + `` + block.queries.length + `` + + `` + block.origin + `` + + `` + block.title + `` + )) + ]]); + }); + + Object.values(groups).forEach(([k, length, i]) => { + subjects[k][1].data_is = i.join(","); + subjects[k][2][0][2][2][2] = subjects[k][2][0][2][2][2].replace(/(class="questions-number"[^>]*>)[0-9]+ { + + /** @type {Array.<[boolean|null, boolean, string]>} */ + const value = []; + + item.value.trim().toLowerCase().replace(/(^|[&\|])(\!)?([^&\|]+)/g, (_, operator, not, data) => { + (data = data.trim()) && + value.push([operator == "&" ? true : operator == "|" ? false : null, not, data]); + }); + + document.querySelectorAll("[data-i][data-i18n=blocks] li label>[data-i18n]").forEach(span => { + + /** @type {HTMLLiElement} */ + const list_item = span.closest("li"); + + if(!value.length) + list_item.setAttribute("data-visible", true); + else{ + + /** @type {string} */ + const text = list_item.textContent.trim().toLowerCase(); + /** @type {ok} */ + let ok = true; + + value.every(([operator, not, data]) => { + + /** @type {boolean} */ + let subok = not ? !text.includes(data) : text.includes(data); + + if(operator) + return ok = ok && subok; + if(operator === false) + return ok || (ok = subok); + + ok = subok; + + return true; + }); + list_item.setAttribute("data-visible", ok); + + }; + }); + + }, "search"), + ot.comp.button("select_all_visible", (item, event) => { + document.querySelectorAll("[data-i][data-i18n=blocks] li[data-visible=true]").forEach(list_item => { + list_item.querySelector("[type=checkbox]").checked = true; + }); + }), + ot.comp.button("unselect_all_visible", (item, event) => { + document.querySelectorAll("[data-i][data-i18n=blocks] li[data-visible=true]").forEach(list_item => { + list_item.querySelector("[type=checkbox]").checked = false; + }); + }), + ot.comp.checkbox("show_selected", false, (item, event) => { + item.closest("div").parentNode.setAttribute("data-show-selected", item.checked); + }) + ), ["nav", null, [ + ["ul", null, subjects] + ]] + ]]], + ["number", "minimum_questions", ot.settings.get("minimum_questions", inputs, 20), 1, 250], + ["number", "maximum_questions", ot.settings.get("maximum_questions", inputs, 100), 1, 250], + ["number", "minimum_answers", ot.settings.get("minimum_answers", inputs, 4), 1, 20], + ["number", "maximum_answers", ot.settings.get("maximum_answers", inputs, 4), 1, 20], + ["checkbox", "allow_unique_right", ot.settings.get("allow_unique_right", inputs, true)], + ["checkbox", "allow_multiple_answers", ot.settings.get("allow_multiple_answers", inputs, false)], + ["checkbox", "allow_all_answers_false", ot.settings.get("allow_all_answers_false", inputs, true)], + ["checkbox", "allow_all_answers_true", ot.settings.get("allow_all_answers_true", inputs, false)], + ["checkbox", "allow_repeated_questions", ot.settings.get("allow_repeated_questions", inputs, true)], + ["checkbox", "show_rights", ot.settings.get("show_rights", inputs, false)], + ["checkbox", "show_results", ot.settings.get("show_results", inputs, true)], + ], (item, event) => { + event.preventDefault(); + + /** @type {Object.>} */ + const data = ot.comp.get_form_data(item); + + if(data.blocks.some(has => has)){ + + /** @type {NodeListOf} */ + const blocks_items = document.querySelectorAll("[data-i][data-i18n=blocks] li"), + /** @type {Array.} */ + blocks = []; + + data.blocks.forEach((selected, i) => { + selected && console.log([i, blocks_items[i]]); + selected && + blocks.push(...blocks_items[i].getAttribute("data-is").split(",").map(Number)); + }) + + data.blocks = blocks; + console.log(data); + ot.tests.build(data); + + }else + ot.alert("need_one_block_at_least"); + + return false; + }); + }; + + /** + * @param {?(Object.|Array.)} [inputs = null] + * @returns {void} + * @access public + */ + this.build = (inputs = null) => { + + /** @type {HTMLMainElement} */ + const main = document.querySelector("main"); + + main.innerHTML = ``; + Utils.html(main, self.create(inputs)); + + }; + + constructor(); + + }; + + return MainFormView; +})(); \ No newline at end of file diff --git a/Public/ecma/Views/TestsView.ecma.js b/Public/ecma/Views/TestsView.ecma.js new file mode 100644 index 0000000..cd0ef9c --- /dev/null +++ b/Public/ecma/Views/TestsView.ecma.js @@ -0,0 +1,481 @@ +"use strict"; + +import {Utils} from "../Utils/Utils.ecma.js"; +import {Check} from "../Utils/Check.ecma.js"; + +/** + * @class TestsView + * @constructor + * @param {!OpoTests} ot + * @returns {void} + * @access public + * @static + */ +export const TestsView = (function(){ + + /** + * @constructs TestsView + * @param {!OpoTests} ot + * @returns {void} + * @access private + * @static + */ + const TestsView = function(ot){ + + /** @type {TestsView} */ + const self = this; + + /** + * @returns {void} + * @access private + */ + const constructor = () => {}; + + /** + * @param {!Object.>} data + * @param {?(Object.|Array.)} [inputs = null] + * @returns {Array.} + * @access public + */ + this.create = (data, inputs = null) => { + + console.log(data.blocks); + + /** @type {Array.} */ + const info = [], + /** @type {Array.<[string]>} */ + graphic = [], + /** @type {Array.<[number, number]>} */ + all_questions = data.blocks.reduce((total, i) => ( + total.concat(ot.database[i].queries.map((_, j) => [i, j])) + ), []), + /** @type {Array.<[number, number]>} */ + questions = [], + /** @type {number} */ + number_of_questions = Utils.get_random(data.minimum_questions, data.maximum_questions); + + do{ + questions.push(...all_questions.sort(() => Math.random() - .5)); + }while(data.allow_repeated_questions && questions.length < number_of_questions); + questions.splice(number_of_questions, questions.length); + + return ["form", { + class : "test-form", + method : "get", + action : "#", + onsubmit : (item, event) => { + event.preventDefault(); + return false; + }, + data_show_rights : data.show_rights, + data_show_results : data.show_results + }, [ + ["fieldset", null, [ + ot.comp.i18n("test", "legend"), + ot.comp.i18n("test_text", "p"), + ["ul", {class : "test-info"}, info], + ["section", null, questions.map(([i, j], q) => { + + /** @type {Array.} */ + const answers = [], + /** @type {Array.<[string, boolean]>} */ + raw_answers = [], + /** @type {Object.<[string, number|null], Array.<[string, boolean]>>} */ + originals = ["rights", "wrongs"].reduce((all, key) => { + + if(ot.database[i].queries[j][key]){ + + /** @type {boolean} */ + const ok = key == "rights"; + + Check.is_array(ot.database[i].queries[j][key]) || + (ot.database[i].queries[j][key] = [ot.database[i].queries[j][key]]); + + ot.database[i].queries[j][key].forEach(answer => { + TestsView.add_answer_to(all, answer, ok); + }); + + ot.database[i].queries[j].brothers_are_wrongs && + ot.database[i].queries.forEach((query, k) => { + k == j || query.rights.forEach(answer => { + TestsView.add_answer_to(all, answer, false); + }); + }); + + }; + + return all; + }, []), + /** @type {number} */ + number_of_answers = Utils.get_random(data.minimum_answers, data.maximum_answers), + /** @type {boolean} */ + multiple_answers = data.allow_multiple_answers && (!data.allow_unique_right || Math.random() < .5) + /** @type {number} */ + let x = 0; + + for(let y = 0, tries = 0; y < number_of_answers && originals.length; y ++){ + + /** @type {number} */ + let k = Utils.get_random(originals.length), + /** @type {[[string, number|null], boolean, boolean]} */ + [[answer, probability], ok, dynamic] = [...originals[k]]; + + if(probability !== null && Math.random() > probability){ + y --; + continue; + }; + + if(dynamic) + answer = TestsView.format(answer); + else + originals.splice(k, 1); + + if( + answer && + !raw_answers.some(([base, _]) => answer == base) && + !originals.some(([base, right, _]) => ( + right && + !ok && + answer == base && + !originals.some(([base, right, _]) => !right && ok && answer == base) + )) + ){ + if(ok){ + if(!multiple_answers) + for(let z = originals.length - 1; z >= 0; z --) + originals[z][1] && originals.splice(z, 1); + }; + raw_answers.push([answer, ok]); + }else + ++ tries < 100 && y --; + + }; + + if(!raw_answers.some(([_, ok]) => ok) && (!data.allow_all_answers_false || !multiple_answers)) + TestsView.replace_answer(originals, raw_answers, true); + else if(!raw_answers.some(([_, ok]) => !ok) && !data.allow_all_answers_true) + TestsView.replace_answer(originals, raw_answers, false); + + raw_answers.sort(() => Math.random() - .5).forEach(([answer, ok], i) => { + answers.push(answer); + ok && (x |= 1 << i); + }); + + return ["fieldset", { + data_q : q, + data_block : i, + data_question : j, + data_status : "unanswered", + data_x : x + }, [ + ["legend", null, "#" + (q + 1)], + ["ul", {class : "block-info"}, [ + ["li", null, [ + ot.comp.i18n("block", "strong"), + ["span", null, ot.database[i].title] + ]], + ["li", null, [ + ot.comp.i18n("question", "strong"), + ["span", null, "#" + (j + 1)] + ]], + ["li", null, [ + ot.comp.i18n("status", "strong"), + ot.comp.i18n("unanswered") + ]] + ]], + ["p", null, TestsView.format(Check.is_array(ot.database[i].queries[j].question) ? Utils.get_random(ot.database[i].queries[j].question) : ot.database[i].queries[j].question)], + ["ul", {class : "answers"}, answers.map((answer, i) => ["li", {data_i : i}, [ + ot.comp[multiple_answers ? "checkbox" : "radio"]("q" + q + "[]", false, (item, event) => { + + /** @type {HTMLFieldSetElement} */ + const block = item.parentNode.parentNode.parentNode.parentNode, + /** @type {HTMLLiElement} */ + status_field = block.querySelector("strong[data-i18n=status]+span"), + /** @type {HTMLFormElement} */ + test_box = block.parentNode.parentNode.parentNode; + /** @type {string} */ + let status, + /** @type {number} */ + results; + + if(item.getAttribute("type") == "radio") + block.querySelectorAll("[type=radio]").forEach(check_answer); + else + check_answer(item); + + results = [...block.querySelectorAll("[data-right]")].reduce((status, item) => { + + /** @type {string} */ + const status_key = item.getAttribute("data-right"); + + return ( + status_key == "false" ? status | 1 : + status_key == "true" ? status | 2 : + status_key == "null" ? status | 4 : + status); + }, 0); + status = ( + results & 4 || test_box.getAttribute("data-show-results") == "false" ? "answered" : + results == 2 ? "right" : + results == 1 || item.getAttribute("type") == "radio" ? "wrong" : + "partially"); + + if(status_field.getAttribute("data-i18n") != status){ + status_field.setAttribute("data-i18n", status); + status_field.innerText = ot.i18n.get(status); + block.setAttribute("data-status", status); + }; + test_box.querySelector(".graphic [data-q='" + block.getAttribute("data-q") + "']").setAttribute("data-status", status); + + }, answer, null, "answer_" + (i + 1)), + ["span", {data_is_ok : !!(x & (1 << i))}], + ["span", {data_right : null}] + ]])] + ]]; + })], + ["ul", {class : "graphic"}, questions.map((_, q) => ["li", { + data_q : q, + data_status : "unanswered" + }])], + ot.comp.buttons() + ]] + ]]; + }; + + /** + * @param {!Object.>} data + * @param {?(Object.|Array.)} [inputs = null] + * @returns {void} + * @access public + */ + this.build = (data, inputs = null) => { + + /** @type {HTMLMainElement} */ + const main = document.querySelector("main"); + + main.innerHTML = ``; + Utils.html(main, self.create(data, inputs)); + + }; + + /** + * @param {!HTMLInputElement} item + * @returns {void} + * @access private + */ + const check_answer = item => { + + /** @type {HTMLLiElement} */ + const level = item.parentNode.parentNode, + /** @type {boolean} */ + is_right = level.querySelector("[data-is-ok]").getAttribute("data-is-ok") == "true"; + + level.querySelector("[data-right]").setAttribute("data-right", (item.checked && is_right) || (!item.checked && !is_right)); + + }; + + constructor(); + + }; + + /** + * @param {!string} string + * @returns {string} + * @access public + * @static + */ + TestsView.reformat_pattern = string => { + + /** @type {Array.} */ + const fragments = []; + /** @type {number} */ + let j = 0; + + for(let i = 9; i > 1; i --) + string = string.replace(new RegExp("\\[" + i + "(?:(?!(?:" + i + "\\]))(?:.|[\\r\\n]+))+" + i + "\\]", "g"), match => { + fragments.push(match); + return "[" + j ++ + "]"; + }); + + string = string.replace(/:::/g, "|"); + while(string != (string = string.replace(/\${3}([0-9]+)\${3}/g, (_, j) => fragments[j]))); + + return string; + } + + /** + * @param {!string} string + * @returns {string} + * @access public + * @static + */ + TestsView.format_substring = string => { + console.log(string); + return TestsView.format([9, 8, 7, 6, 5, 4, 3, 2, 1].reduce((string, i) => ( + i == 1 ? TestsView.reformat_pattern(string.replace(new RegExp("(\\[)" + i + "|" + i + "(\\])", "g"), "$1$1$2$2")) : + string.replace(new RegExp("(\\[)" + i + "|" + i + "(\\])", "g"), "$1" + (i - 1) + "$2")), string)); + }; + + /** + * @param {!string} type + * @param {!string} items + * @param {Object.} shared + * @returns {string} + * @access public + * @static + */ + TestsView.build_rand = (type, items, shared) => TestsView.format_substring(Utils.get_random(items.split("|"))); + + /** + * @param {!string} type + * @param {!string} items + * @param {Object.} shared + * @returns {string} + * @access public + * @static + */ + TestsView.build_range = (type, items, shared) => { + + /** @type {Array.} */ + const range = Utils.get_random(items.split("|")).split("-").map(Number); + + return range.length == 1 ? range[0] : Utils.get_random(...range); + }; + + /** + * @param {!string} type + * @param {!string} items + * @param {Object.} shared + * @returns {string} + * @access public + * @static + */ + TestsView.build_serie = (type, items, shared) => { + + /** @type {boolean} */ + const start_serie = Check.is_null_or_undefined(shared.serie), + /** @type {[number, number]} */ + [from, to] = Utils.get_random(items.split("|").map(item => item.split("-").map(Number)).filter(([from, to]) => ( + start_serie || (isNaN(to) ? from : to) >= shared.serie + ))); + + return shared.serie = isNaN(to) ? from : Utils.get_random(start_serie ? from : Math.max(shared.serie, from), to); + }; + + /** + * @param {!string} type + * @param {!string} items + * @param {Object.} shared + * @returns {string} + * @access public + * @static + */ + TestsView.build_mix = (type, items, shared) => { + + /** @type {string} */ + const nexus = items.match(/^[^,]+/)[0].trim(), + /** @type {Array.} */ + items_box = items.replace(/^[^,]+,/, "").split("|").sort(() => Math.random() - .5).map(TestsView.format_substring), + /** @type {number} */ + last = items_box.length - 1; + + type == "Mix" && + (items_box[0] = items_box[0][0].toUpperCase() + items_box[0].slice(1).toLowerCase()); + + return items_box.slice(0, last).join(", ") + " " + nexus + " " + items_box[last]; + }; + + /** + * @param {!string} type + * @param {!string} items + * @param {Object.} shared + * @returns {string} + * @access public + * @static + */ + TestsView.build_select = (type, items, shared) => { + + /** @type {[string, string, string, string]} */ + const [_, range, nexus, items_string] = items.match(/^([^,]+),([^,]+),(.*)$/), + /** @type {Array.} */ + item_box = items_string.split("|").sort(() => Math.random() - .5).sort(() => Math.random() - .5).slice(0, ...range.split("-").map(Number)).map(TestsView.format_substring); + + if(item_box.length < 2) + return item_box[0] || ""; + + /** @type {number} */ + const last = item_box.length - 1; + + type == "Select" && + (item_box[0] = item_box[0][0].toUpperCase() + item_box[0].slice(1).toLowerCase()); + + return item_box.slice(0, last).join(", ") + " " + nexus + " " + item_box[last]; + }; + + /** + * @param {!string} string + * @returns {string} + * @access public + * @static + */ + TestsView.format = string => { + + /** @type {Object.} */ + const shared = {}; + + return string.replace(/\[{2}([^,\]]+),((?:(?!(?:\]\])).)+\]?)\]{2}/g, (original, type, items) => { + if(TestsView["build_" + type.toLowerCase()]) + return TestsView["build_" + type.toLowerCase()](type, items, shared); + return original; + }); + }; + + /** + * @param {!Array.<[string, boolean, boolean]>} originals + * @param {!Array.<[string, boolean]>} raw_answers + * @param {boolean} right + * @returns {void} + * @access public + * @static + */ + TestsView.replace_answer = (originals, raw_answers, right) => { + + /** @type {Array.<[string, boolean, boolean]>} */ + const set = originals.filter(([_, ok]) => right ? ok : !ok); + + if(set.length) + while(true){ + + /** @type {number} */ + const k = Utils.get_random(raw_answers.length), + /** @type {[string, boolean, boolean]} */ + [[answer, probability], ok, dynamic] = Utils.get_random(set); + + if(!probability || Math.random() < probability){ + raw_answers.splice(k, 1, [dynamic ? TestsView.format(answer) : answer, ok]); + break; + }; + + }; + }; + + /** + * @param {!Array.<[[string, number|null], boolean, boolean]>} answers + * @param {!(string|[string, number|null])} answer + * @param {!boolean} right + * @returns {void} + * @access public + * @static + */ + TestsView.add_answer_to = (answers, answer, right) => { + + /** @type {[string, number|null]} */ + const [text, probability] = Check.is_array(answer) ? answer : [answer, null]; + + answers.some(([[base, __], ..._]) => base == text) || + answers.push([[text, probability], right, text.includes("[[")]); + + }; + + return TestsView; +})(); \ No newline at end of file diff --git a/Public/ecma/Views/UserView.ecma.js b/Public/ecma/Views/UserView.ecma.js new file mode 100644 index 0000000..e78ee28 --- /dev/null +++ b/Public/ecma/Views/UserView.ecma.js @@ -0,0 +1,78 @@ +"use strict"; + +import {Utils} from "../Utils/Utils.ecma.js"; + +/** + * @typedef {import("../OpoTests.ecma.js").OpoTests} OpoTests + */ + +/** + * @class UserView + * @constructor + * @param {!OpoTests} ot + * @returns {void} + * @access public + * @static + */ +export const UserView = (function(){ + + /** + * @constructs UserView + * @param {!OpoTests} ot + * @returns {void} + * @access private + * @static + */ + const UserView = function(ot){ + + /** @type {Object.} */ + const data = {}; + + /** + * @returns {void} + * @access private + */ + const constructor = () => { + Object.entries(Utils.decrypt_data(UserView.DATA)).forEach(([key, value]) => { + data[key] = value; + }); + }; + + /** + * @returns {Array.} + * @access public + */ + this.build_login = callback => { + + /** @type {HTMLMainElement} */ + const main = document.querySelector("main"); + + Utils.html(main, ot.comp.form("login", [ + ["text", "username"], + ["password", "password"] + ], (item, event) => { + event.preventDefault(); + + /** @type {Object.>} */ + const subdata = ot.comp.get_form_data(item); + + if(data[subdata.username.toLowerCase()] == subdata.password){ + ot.cookies.set("ot", "1"); + Utils.execute(callback); + }else + document.querySelector(".form-errors").appendChild(document.createElement("li")).innerText = ot.i18n.get("login_error"); + + return false; + })); + + }; + + constructor(); + + }; + + /** @type {string} */ + UserView.DATA = "rqRWrPETG0/t/VTQvcDpXjoE/0A0SZa8rX/t/Z+qFg/AkOh0Lvzz"; + + return UserView; +})(); \ No newline at end of file diff --git a/Public/index.html b/Public/index.html new file mode 100644 index 0000000..e91532a --- /dev/null +++ b/Public/index.html @@ -0,0 +1,33 @@ + + + + Opo Tests + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Public/json/OpoTests.settings.json b/Public/json/OpoTests.settings.json new file mode 100644 index 0000000..7fa4312 --- /dev/null +++ b/Public/json/OpoTests.settings.json @@ -0,0 +1,10 @@ +{ + "default_settings_files" : ["/json/OpoTests.settings.json"], + "default_secrets_files" : ["/json/OpoTests.secrets.json"], + "default_i18n_files" : [ + "/json/i18n/OpoTests.i18n.espanol.json", + "/json/i18n/OpoTests.i18n.galego.json", + "/json/i18n/OpoTests.i18n.english.json" + ], + "default_database_files" : ["/json/database.json"] +} \ No newline at end of file diff --git a/Public/json/database.json b/Public/json/database.json new file mode 100644 index 0000000..c184042 --- /dev/null +++ b/Public/json/database.json @@ -0,0 +1,153 @@ +[ + + "/json/kyman/especifico/kyman.00.redes.00.tipos-area.json", + "/json/kyman/especifico/kyman.00.redes.01.tipologias.json", + "/json/kyman/especifico/kyman.00.redes.02.protocolos.json", + "/json/kyman/especifico/kyman.00.redes.03.ieee-802.json", + "/json/kyman/especifico/kyman.00.redes.04.ipv4.json", + "/json/kyman/especifico/kyman.00.redes.05.ipv6.json", + "/json/kyman/especifico/kyman.01.generaciones.json", + "/json/kyman/especifico/kyman.02.hardware.00.ics.json", + "/json/kyman/especifico/kyman.03.desarrollo.02.codificaciones-texto.json", + "/json/kyman/especifico/kyman.aa.red-sara.json", + + "/json/kyman/comun/kyman.00.tipos-leyes.json", + + "/json/paco/paco.ce.00.constitucion.json", + "/json/paco/paco.ce.01.constitucion.preliminar.json", + "/json/paco/paco.ce.02.constitucion.preliminar-articulado.json", + "/json/paco/paco.ce.03.constitucion.i.json", + "/json/paco/paco.ce.04.constitucion.i-articulado.json", + "/json/paco/paco.ce.05.constitucion.i-leyes.json", + + "/data/json/baquedano/c-ejer-1-promo-sass-2025.json", + "/data/json/baquedano/c-ejer-1-libre-sas-2025.json", + + "/data/json/laconstitucion.es/LaConstitucionEs.tests.00.ce-preliminar.json", + "/data/json/laconstitucion.es/LaConstitucionEs.tests.01.ce-01.json", + "/data/json/laconstitucion.es/LaConstitucionEs.tests.02.ce-02.json", + "/data/json/laconstitucion.es/LaConstitucionEs.tests.03.ce-03.json", + "/data/json/laconstitucion.es/LaConstitucionEs.tests.04.ce-04.json", + "/data/json/laconstitucion.es/LaConstitucionEs.tests.05.ce-05.json", + "/data/json/laconstitucion.es/LaConstitucionEs.tests.06.ce-06.json", + "/data/json/laconstitucion.es/LaConstitucionEs.tests.07.ce-07.json", + "/data/json/laconstitucion.es/LaConstitucionEs.tests.08.ce-08.json", + "/data/json/laconstitucion.es/LaConstitucionEs.tests.09.ce-09.json", + "/data/json/laconstitucion.es/LaConstitucionEs.tests.10.ce-10.json", + + "/data/json/testdeley.com/testdeley.com.00.ce-preliminar.json", + "/data/json/testdeley.com/testdeley.com.01.ce-01.json", + "/data/json/testdeley.com/testdeley.com.02.ce-02.json", + "/data/json/testdeley.com/testdeley.com.03.ce-03.json", + "/data/json/testdeley.com/testdeley.com.04.ce-04.json", + "/data/json/testdeley.com/testdeley.com.05.ce-05.json", + "/data/json/testdeley.com/testdeley.com.06.ce-06.json", + "/data/json/testdeley.com/testdeley.com.07.ce-07.json", + "/data/json/testdeley.com/testdeley.com.08.ce-08.json", + "/data/json/testdeley.com/testdeley.com.09.ce-09-10.json", + "/data/json/testdeley.com/testdeley.com.10.39-2015-preliminar.json", + "/data/json/testdeley.com/testdeley.com.11.39-2015-i.json", + "/data/json/testdeley.com/testdeley.com.12.39-2015-ii.json", + "/data/json/testdeley.com/testdeley.com.13.39-2015-iii.json", + "/data/json/testdeley.com/testdeley.com.14.39-2015-iv.json", + "/data/json/testdeley.com/testdeley.com.15.39-2015-v.json", + "/data/json/testdeley.com/testdeley.com.16.39-2015-vi.json", + "/data/json/testdeley.com/testdeley.com.17.lopd-3-2018-i.json", + "/data/json/testdeley.com/testdeley.com.18.lopd-3-2018-ii.json", + "/data/json/testdeley.com/testdeley.com.19.lopd-3-2018-iii.json", + "/data/json/testdeley.com/testdeley.com.20.lopd-3-2018-iv.json", + "/data/json/testdeley.com/testdeley.com.21.lopd-3-2018-v.json", + "/data/json/testdeley.com/testdeley.com.22.lopd-3-2018-vi.json", + "/data/json/testdeley.com/testdeley.com.23.lopd-3-2018-vii.json", + "/data/json/testdeley.com/testdeley.com.24.lopd-3-2018-viii.json", + "/data/json/testdeley.com/testdeley.com.25.lopd-3-2018-ix.json", + "/data/json/testdeley.com/testdeley.com.26.lopd-3-2018-x.json", + "/data/json/testdeley.com/testdeley.com.27.trebep-5-2015-i-ii.json", + "/data/json/testdeley.com/testdeley.com.28.trebep-5-2015-iii.json", + "/data/json/testdeley.com/testdeley.com.29.trebep-5-2015-iv.json", + "/data/json/testdeley.com/testdeley.com.30.trebep-5-2015-v.json", + "/data/json/testdeley.com/testdeley.com.31.trebep-5-2015-vi.json", + "/data/json/testdeley.com/testdeley.com.32.trebep-5-2015-vii-viii.json", + "/data/json/testdeley.com/testdeley.com.33.3-2007-preliminar-i.json", + "/data/json/testdeley.com/testdeley.com.34.3-2007-ii.json", + "/data/json/testdeley.com/testdeley.com.35.3-2007-iii-iv.json", + "/data/json/testdeley.com/testdeley.com.36.3-2007-v.json", + "/data/json/testdeley.com/testdeley.com.37.3-2007-vi-vii-viii.json", + + "/data/json/temariosenpdf.es/temariosenpdf.es.00.ce-00.json", + + "/data/json/leyesdeoposiciones.es/leyesdeoposiciones.es.00.ce-00.json", + "/data/json/leyesdeoposiciones.es/leyesdeoposiciones.es.01.ea-00.json", + "/data/json/leyesdeoposiciones.es/leyesdeoposiciones.es.02.7-1985.json", + "/data/json/leyesdeoposiciones.es/leyesdeoposiciones.es.03.trebep-5-2015.json", + "/data/json/leyesdeoposiciones.es/leyesdeoposiciones.es.04.39-2015-preliminar.json", + "/data/json/leyesdeoposiciones.es/leyesdeoposiciones.es.05.39-2015-i.json", + "/data/json/leyesdeoposiciones.es/leyesdeoposiciones.es.06.39-2015-ii.json", + "/data/json/leyesdeoposiciones.es/leyesdeoposiciones.es.07.39-2015-iii.json", + "/data/json/leyesdeoposiciones.es/leyesdeoposiciones.es.08.39-2015-iv.json", + + "/data/json/oposicion.es/oposicion.es.00.ce-caracteristicas.json", + "/data/json/oposicion.es/oposicion.es.01.ce-estructura.json", + "/data/json/oposicion.es/oposicion.es.02.ce-preliminar.json", + "/data/json/oposicion.es/oposicion.es.03.ce-t-i-c-i-ii.json", + "/data/json/oposicion.es/oposicion.es.04.ce-t-i-c-iii.json", + "/data/json/oposicion.es/oposicion.es.05.ce-t-i-c-iv-v.json", + "/data/json/oposicion.es/oposicion.es.06.ce-t-ii.json", + "/data/json/oposicion.es/oposicion.es.07.ce-t-iii-c-i.json", + "/data/json/oposicion.es/oposicion.es.08.ce-t-iii-c-ii-iii.json", + "/data/json/oposicion.es/oposicion.es.09.ce-t-iv.json", + "/data/json/oposicion.es/oposicion.es.10.ce-t-v.json", + "/data/json/oposicion.es/oposicion.es.11.ce-t-vi.json", + "/data/json/oposicion.es/oposicion.es.12.ce-t-vii.json", + "/data/json/oposicion.es/oposicion.es.13.ce-t-viii-c-i-ii.json", + "/data/json/oposicion.es/oposicion.es.14.ce-t-viii-c-iii-a.json", + "/data/json/oposicion.es/oposicion.es.15.ce-t-viii-c-iii-b.json", + "/data/json/oposicion.es/oposicion.es.16.ce-t-ix.json", + "/data/json/oposicion.es/oposicion.es.17.ce-t-x.json", + "/data/json/oposicion.es/oposicion.es.18.ce-disposiciones.json", + "/data/json/oposicion.es/oposicion.es.19-ea-preliminar.json", + "/data/json/oposicion.es/oposicion.es.20-ea-i.json", + "/data/json/oposicion.es/oposicion.es.21-ea-ii.json", + "/data/json/oposicion.es/oposicion.es.22-ea-iii-iv.json", + "/data/json/oposicion.es/oposicion.es.23-ea-v.json", + "/data/json/oposicion.es/oposicion.es.24-3-2007-estructura.json", + "/data/json/oposicion.es/oposicion.es.25-3-2007-preliminar.json", + "/data/json/oposicion.es/oposicion.es.26-3-2007-i.json", + "/data/json/oposicion.es/oposicion.es.27-3-2007-ii.json", + "/data/json/oposicion.es/oposicion.es.28-3-2007-iii.json", + "/data/json/oposicion.es/oposicion.es.29-3-2007-iv.json", + "/data/json/oposicion.es/oposicion.es.30-3-2007-v.json", + "/data/json/oposicion.es/oposicion.es.31-3-2007-vi-vii-viii.json", + "/data/json/oposicion.es/oposicion.es.32-trebep-i.json", + "/data/json/oposicion.es/oposicion.es.33-trebep-ii.json", + "/data/json/oposicion.es/oposicion.es.34-trebep-iii-c-i-ii.json", + "/data/json/oposicion.es/oposicion.es.35-trebep-iii-c-iii.json", + "/data/json/oposicion.es/oposicion.es.36-trebep-iii-c-iv-a.json", + "/data/json/oposicion.es/oposicion.es.37-trebep-iii-c-iv-b.json", + "/data/json/oposicion.es/oposicion.es.38-trebep-iii-c-iv-c.json", + "/data/json/oposicion.es/oposicion.es.39-trebep-iii-c-v.json", + "/data/json/oposicion.es/oposicion.es.40-trebep-iii-c-vi.json", + "/data/json/oposicion.es/oposicion.es.41-trebep-iv-a.json", + "/data/json/oposicion.es/oposicion.es.42-trebep-iv-b.json", + "/data/json/oposicion.es/oposicion.es.43-trebep-v.json", + "/data/json/oposicion.es/oposicion.es.44-trebep-vi.json", + "/data/json/oposicion.es/oposicion.es.45-trebep-vii.json", + "/data/json/oposicion.es/oposicion.es.46-trebep-viii.json", + + "/json/random/random.ce.00.constitucion.json", + + "/json/gemini/gemini.00.ce-preliminar.00.json", + "/json/gemini/gemini.01.ce-preliminar.01.json", + + "/json/gpt5-mini/preliminar_qs_01.json", + "/json/gpt5-mini/preliminar_qs_02.json", + "/json/gpt5-mini/preliminar_qs_03.json", + "/json/gpt5-mini/preliminar_qs_04.json", + "/json/gpt5-mini/preliminar_qs_05.json", + "/json/gpt5-mini/preliminar_qs_06.json", + "/json/gpt5-mini/preliminar_qs_07.json", + "/json/gpt5-mini/preliminar_qs_08.json", + "/json/gpt5-mini/preliminar_qs_09.json", + "/json/gpt5-mini/preliminar_qs_10.json" + +] \ No newline at end of file diff --git a/Public/json/extras/1noro.json b/Public/json/extras/1noro.json new file mode 100644 index 0000000..feabfc6 --- /dev/null +++ b/Public/json/extras/1noro.json @@ -0,0 +1,23 @@ +{ + "origin" : "1noro", + "sources" : [ + "https://www.gtt.es/", + "" + ], + "subjects" : [ + "Linux", "Apache", "MySQL", "PHP", "Administración de Máquinas virtuais", + "Routers", "Firewall", "Switches", "backUps", "VPNs", "Administración de Office 365", + "Active Directory", "LDAP", "Herramientas de Pen Testing e Forenses", + "Conocimientos en la Nube en AWS, Azure e Google Cloud", "Docker", + "CI/CD", "MongDB", "Hibernate", "Redis fork Valkey", + "Planificar, ejecutar e organizar despliegues de aplicaciones en diferentes entornos", + "Ferramentas de monitorización como Zabbix, Nagios, Grafana, Prometheus, ELK", + "Ferramentas de centralización de Logs", "Análisis de rendimiento", "Resolución de incidencias", + "Cambios de modelos de bases de datos", "Servidores replicados de Bases de Datos", + "Permisos y roles en Bases de Datos" + ], + "more" : [ + "Cividas", "Nagios", "Red SARA", "SIR", "GPLi", "GTT", + "Apache Tomcat", "SQL Server BackUps", "BackUps de Windows y cintas" + ] +} \ No newline at end of file diff --git a/Public/json/gemini/gemini.00.ce-preliminar.00.json b/Public/json/gemini/gemini.00.ce-preliminar.00.json new file mode 100644 index 0000000..8940345 --- /dev/null +++ b/Public/json/gemini/gemini.00.ce-preliminar.00.json @@ -0,0 +1,109 @@ +[ + { + "origin": "Gemini (Google)", + "sources": [ + "https://www.boe.es/eli/es/c/1978/12/27/sin" + ], + "title": "Título Preliminar de la Constitución Española (Artículos 1-9)", + "queries": [ + { + "question": "Según el Artículo 1 de la Constitución, ¿en quién reside la soberanía nacional?", + "rights": [ + "En el pueblo español, del que emanan los poderes del Estado." + ], + "wrongs": [ + "En el Rey, como Jefe del Estado.", + "En las Cortes Generales, como representantes de la soberanía.", + "En el conjunto de las [[rand,Comunidades Autónomas|nacionalidades y regiones]].", + "En el Gobierno de la Nación." + ] + }, + { + "question": "¿Cuáles son los valores superiores del ordenamiento jurídico español?", + "rights": [ + "La libertad, la justicia, la igualdad y el pluralismo político." + ], + "wrongs": [ + "La libertad, la justicia, la [[rand,unidad|tradición|seguridad]] y el pluralismo político.", + "La monarquía, la unidad y la solidaridad entre españoles.", + "La soberanía nacional, la integridad territorial y el orden constitucional.", + "La Constitución establece [[range,2|3|5]] valores superiores." + ] + }, + { + "question": "La Constitución se fundamenta en la indisoluble unidad de la Nación española, patria común e indivisible de todos los españoles, y reconoce y garantiza el derecho a:", + "rights": [ + "La autonomía de las nacionalidades y regiones que la integran y la solidaridad entre todas ellas." + ], + "wrongs": [ + "La [[rand,independencia|autodeterminación|secesión]] de las nacionalidades y regiones.", + "La soberanía particular de cada una de las nacionalidades y regiones.", + "La gestión centralizada de todas las competencias por parte del Estado.", + "La supresión de las diferencias entre las distintas regiones de España." + ] + }, + { + "question": "Referente a las lenguas de España según el Artículo 3...", + "rights": [ + "El castellano es la lengua española oficial del Estado y las demás lenguas españolas serán también oficiales en las respectivas Comunidades Autónomas de acuerdo con sus Estatutos." + ], + "wrongs": [ + "El castellano es la única lengua oficial en todo el territorio español, sin excepciones.", + "El [[rand,catalán|gallego|euskera]] es también lengua oficial en todo el Estado, junto al castellano.", + "Todas las lenguas de España son cooficiales en todo el territorio nacional.", + "La riqueza de las distintas modalidades lingüísticas de España es un patrimonio cultural que [[rand,debe ser ignorado|no tiene protección especial]]." + ] + }, + { + "question": "¿Cuál es la capital del Estado español?", + "rights": [ + "La villa de Madrid." + ], + "wrongs": [ + "La ciudad de [[rand,Toledo|Valladolid|Barcelona|Sevilla]].", + "La Constitución no establece una capital fija.", + "Cualquier ciudad con más de [[range,1-2]] millón de habitantes.", + "La capital es rotatoria entre las ciudades más importantes." + ] + }, + { + "question": "El Título Preliminar de la Constitución Española comprende los artículos del [[serie,1-4]] al [[serie,5-9]]. ¿Qué artículo establece que los partidos políticos expresan el pluralismo político y son instrumento fundamental para la participación política?", + "rights": [ + "El artículo 6." + ], + "wrongs": [ + "El artículo [[range,1-5|7-9]].", + "El artículo 1, que define la soberanía nacional.", + "El artículo 9, que habla de la sujeción a la Constitución.", + "No se especifica en el Título Preliminar." + ] + }, + { + "question": "La misión de las Fuerzas Armadas, constituidas por el Ejército de Tierra, la Armada y el Ejército del Aire, es:", + "rights": [ + "Garantizar la soberanía e independencia de España, defender su integridad territorial y el ordenamiento constitucional." + ], + "wrongs": [ + "Mantener el orden público y la seguridad ciudadana en todo el territorio.", + "Ejercer el poder [[rand,ejecutivo|judicial]] en situaciones de emergencia.", + "Participar exclusivamente en misiones internacionales bajo mandato de la [[rand,ONU|OTAN]].", + "Controlar las [[rand,fronteras|aduanas]] y la inmigración ilegal." + ] + }, + { + "question": "El artículo 9.3 de la Constitución garantiza varios principios. ¿Cuál de los siguientes NO es uno de ellos?", + "rights": [ + "El principio de [[rand,confidencialidad|opacidad]] normativa.", + "El principio de supremacía del poder ejecutivo sobre el judicial.", + "El principio de retroactividad de las normas favorables." + ], + "wrongs": [ + "El principio de legalidad y la jerarquía normativa.", + "La publicidad de las normas.", + ["La irretroactividad de las disposiciones sancionadoras no favorables o restrictivas de derechos individuales.", 0.8], + "La seguridad jurídica, la responsabilidad y la interdicción de la arbitrariedad de los poderes públicos." + ] + } + ] + } +] \ No newline at end of file diff --git a/Public/json/gemini/gemini.01.ce-preliminar.01.json b/Public/json/gemini/gemini.01.ce-preliminar.01.json new file mode 100644 index 0000000..dcbd73a --- /dev/null +++ b/Public/json/gemini/gemini.01.ce-preliminar.01.json @@ -0,0 +1,131 @@ +[ + { + "origin": "Gemini (Google)", + "sources": [ + "https://www.boe.es/eli/es/c/1978/12/27/sin" + ], + "title": "Título Preliminar de la Constitución Española (Artículos 1-9) - Parte 2", + "queries": [ + { + "question": "De acuerdo con el artículo 2 de la Constitución, la solidaridad entre las nacionalidades y regiones que integran España es un principio que...", + "rights": [ + "La Constitución reconoce y garantiza." + ], + "wrongs": [ + "Es un objetivo a alcanzar en el futuro.", + "Depende de la voluntad de cada [[rand,Comunidad Autónoma|región]].", + "Se aplica únicamente en situaciones de [[rand,crisis económica|catástrofe natural]].", + "No se menciona explícitamente en el Título Preliminar." + ] + }, + { + "question": "¿Qué forma política tiene el Estado español según el artículo 1.3?", + "rights": [ + "Monarquía parlamentaria." + ], + "wrongs": [ + "República federal.", + "[[rand,Monarquía absoluta|República presidencialista]].", + "Estado socialista.", + "Confederación de estados." + ] + }, + { + "question": "El artículo 5 establece que la capital del Estado es la villa de Madrid. ¿Podría cambiarse la capital mediante una ley orgánica?", + "rights": [ + "No, requeriría una reforma constitucional." + ], + "wrongs": [ + "Sí, bastaría con una ley orgánica aprobada por [[rand,mayoría simple|mayoría absoluta]].", + "Sí, mediante un [[rand,referéndum|decreto ley]] del Gobierno.", + "No, la capitalidad de Madrid es inalterable por cualquier vía.", + "Dependería de la aprobación del [[rand,Senado|Rey|Tribunal Constitucional]]." + ] + }, + { + "question": "Según el artículo 7, ¿cuál es el papel de los sindicatos de trabajadores y las asociaciones empresariales?", + "rights": [ + "Contribuyen a la defensa y promoción de los intereses económicos y sociales que les son propios." + ], + "wrongs": [ + "Son los únicos autorizados para negociar convenios colectivos.", + "Tienen la obligación de afiliar a todos los [[rand,trabajadores|empresarios]].", + "Su creación y funcionamiento deben ser regulados por el Gobierno.", + "Actúan como [[rand,órganos consultivos|representantes]] del Estado en el ámbito laboral." + ] + }, + { + "question": "El artículo 8.1 de la Constitución asigna a las Fuerzas Armadas la misión de garantizar la soberanía e independencia de España, entre otras. ¿Quién ostenta el mando supremo de las Fuerzas Armadas?", + "rights": [ + "El Rey." + ], + "wrongs": [ + "El [[rand,Presidente del Gobierno|Ministro de Defensa|Jefe del Estado Mayor de la Defensa]].", + "Las Cortes Generales.", + "El Consejo de Ministros.", + "Un mando rotatorio entre los [[range,3]] ejércitos." + ] + }, + { + "question": "El artículo 9.1 establece que los ciudadanos y los poderes públicos están sujetos a la Constitución y al resto del ordenamiento jurídico. Esto consagra el principio de:", + "rights": [ + "Legalidad." + ], + "wrongs": [ + "[[rand,Jerarquía normativa|Seguridad jurídica|Publicidad de las normas]].", + "Irretroactividad.", + "Interdicción de la arbitrariedad.", + "Responsabilidad de los poderes públicos." + ] + }, + { + "question": "La bandera de España está formada por tres franjas horizontales, roja, amarilla y roja, siendo la amarilla de...", + "rights": [ + "Doble anchura que cada una de las rojas." + ], + "wrongs": [ + "Igual anchura que cada una de las rojas.", + "[[rand,Mitad de anchura|Triple anchura]] que cada una de las rojas.", + "La Constitución no especifica la anchura de las franjas.", + ["Un color [[rand,dorado|gualda]] específico.", 0.5] + ] + }, + { + "question": "¿Qué artículo del Título Preliminar afirma que la ignorancia de las leyes no excusa de su cumplimiento?", + "rights": [ + "Ninguno, ese principio no se recoge explícitamente en la Constitución, sino en el Código Civil." + ], + "wrongs": [ + "El artículo 9.1, al hablar de la sujeción a la ley.", + "El artículo 6 del Código Civil, no de la Constitución.", + "El artículo [[range,1-9]], aunque no recuerdo cuál.", + "Está implícito en el principio de publicidad de las normas (art. 9.3)." + ] + }, + { + "question": "Los partidos políticos, según el artículo 6, concurren a la formación y manifestación de la voluntad popular. ¿Cómo debe ser su estructura interna y funcionamiento?", + "rights": [ + "Democráticos." + ], + "wrongs": [ + "[[rand,Jerárquicos|Libres|Centralizados]].", + "La Constitución no establece requisitos al respecto.", + "Deben seguir el modelo que establezca el [[rand,Gobierno|Ministerio del Interior]].", + "Tienen que ser aprobados por las Cortes Generales." + ] + }, + { + "question": "El Título Preliminar abarca desde el artículo [[serie,1-3]] hasta el [[serie,4-9]]. ¿Qué valor superior del ordenamiento jurídico NO se menciona en el artículo 1.1?", + "rights": [ + "La [[rand,dignidad humana|solidaridad|unidad]]." + ], + "wrongs": [ + "La libertad.", + "La justicia.", + "La igualdad.", + "El pluralismo político." + ] + } + ] + } +] \ No newline at end of file diff --git a/Public/json/gpt5-mini-tab/gpt5-mini-tab.00.ce-preambulo.json b/Public/json/gpt5-mini-tab/gpt5-mini-tab.00.ce-preambulo.json new file mode 100644 index 0000000..f9678d2 --- /dev/null +++ b/Public/json/gpt5-mini-tab/gpt5-mini-tab.00.ce-preambulo.json @@ -0,0 +1,46 @@ +[{ + "original" : "GTP5 mini (Copilot Tab)", + "title" : "Constitución Española - Preámbulo", + "sources" : [], + "questions" : [{ + "question" : "¿Qué es el preámbulo de la Constitución Española?", + "rights" : ["Una declaración solemne que expresa los valores y principios fundamentales en los que se basa la Constitución."], + "wrongs" : ["Un conjunto de artículos que desarrollan los derechos fundamentales.", "Una sección que establece la estructura del gobierno.", "Un resumen de las leyes principales del país."] + }, { + "question" : "¿Cuál es la función principal del preámbulo en la Constitución Española?", + "rights" : ["Establecer los valores y principios que guían la interpretación y aplicación de la Constitución."], + "wrongs" : ["Detallar los derechos y deberes de los ciudadanos.", "Describir la estructura del gobierno y sus funciones.", "Proporcionar un resumen de las leyes principales del país."] + }, { + "question" : "¿Qué valores fundamentales se destacan en el preámbulo de la Constitución Española?", + "rights" : ["Libertad, justicia, igualdad y pluralismo político."], + "wrongs" : ["Seguridad, orden, tradición y autoridad.", "Riqueza, poder, control y dominación.", "Unidad, homogeneidad, conformidad y obediencia."] + }, { + "question" : "¿Qué principios se mencionan en el preámbulo de la Constitución Española?", + "rights" : ["Democracia, Estado de Derecho, soberanía nacional y derechos humanos."], + "wrongs" : ["Monarquía, autoritarismo, control estatal y censura.", "Anarquía, caos, desorden y falta de leyes.", "Dictadura, represión, opresión y falta de derechos."] + }, { + "question" : "¿Cuál es el propósito del preámbulo en la Constitución Española?", + "rights" : ["Inspirar y guiar la interpretación y aplicación de la Constitución."], + "wrongs" : ["Establecer las leyes y regulaciones específicas del país.", "Describir la estructura del gobierno y sus funciones.", "Proporcionar un resumen de las leyes principales del país."] + }, { + "question" : "¿Qué papel juega el preámbulo en la interpretación de la Constitución Española?", + "rights" : ["Proporciona un contexto y una guía para interpretar los artículos de la Constitución."], + "wrongs" : ["Establece las leyes y regulaciones específicas del país.", "Desarrolla los derechos y deberes de los ciudadanos.", "Describe la estructura del gobierno y sus funciones."] + }, { + "question" : "¿Cómo se relaciona el preámbulo con los derechos fundamentales en la Constitución Española?", + "rights" : ["El preámbulo establece los valores y principios que respaldan los derechos fundamentales."], + "wrongs" : ["El preámbulo detalla los derechos y deberes específicos de los ciudadanos.", "El preámbulo describe la estructura del gobierno y sus funciones.", "El preámbulo proporciona un resumen de las leyes principales del país."] + }, { + "question" : "¿Qué importancia tiene el preámbulo en la Constitución Española?", + "rights" : ["Es fundamental para entender los valores y principios que sustentan la Constitución."], + "wrongs" : ["Es un componente menor sin relevancia en la interpretación de la Constitución.", "Es un resumen de las leyes principales del país sin impacto en la interpretación constitucional.", "Es una sección que detalla los derechos y deberes específicos de los ciudadanos."] + }, { + "question" : "¿Qué elementos no se encuentran en el preámbulo de la Constitución Española?", + "rights" : ["Leyes y regulaciones específicas del país."], + "wrongs" : ["Valores y principios fundamentales.", "Declaraciones solemnes sobre la democracia y los derechos humanos.", "Guías para la interpretación y aplicación de la Constitución."] + }, { + "question" : "¿Qué tipo de norma es la Constitución Española?", + "rights" : ["La norma suprema del ordenamiento jurídico español."], + "wrongs" : ["Una ley ordinaria.", "Un reglamento administrativo.", "Una orden ministerial."] + }] +}] \ No newline at end of file diff --git a/Public/json/gpt5-mini-tab/gpt5-mini-tab.01.ce.json b/Public/json/gpt5-mini-tab/gpt5-mini-tab.01.ce.json new file mode 100644 index 0000000..40d3ed3 --- /dev/null +++ b/Public/json/gpt5-mini-tab/gpt5-mini-tab.01.ce.json @@ -0,0 +1,66 @@ +[{ + "original" : "GTP5 mini (Copilot Tab)", + "title" : "Constitución Española - Estructura", + "sources" : [], + "queries" : [{ + "question" : "¿Qué es la Constitución Española?", + "rights" : ["La norma suprema del ordenamiento jurídico español"], + "wrongs" : ["Una ley ordinaria", "Una ley orgánica", "Un real decreto"] + }, { + "question" : "¿Cuántos títulos tiene la Constitución Española?", + "rights" : ["11"], + "wrongs" : ["10", "12", "9"] + }, { + "question" : "¿Cuántos artículos tiene la Constitución Española?", + "rights" : ["169"], + "wrongs" : ["168", "170", "165"] + }, { + "question" : "¿En qué año se aprobó la Constitución Española?", + "rights" : ["1978"], + "wrongs" : ["1977", "1980", "1982"] + }, { + "question" : "¿Qué título de la Constitución Española regula los derechos y deberes fundamentales?", + "rights" : ["Título I"], + "wrongs" : ["Título II", "Título III", "Título IV"] + }, { + "question" : "¿Qué título de la Constitución Española regula la Corona?", + "rights" : ["Título II"], + "wrongs" : ["Título I", "Título III", "Título IV"] + }, { + "question" : "¿Qué título de la Constitución Española regula las Cortes Generales?", + "rights" : ["Título III"], + "wrongs" : ["Título I", "Título II", "Título IV"] + }, { + "question" : "¿Qué título de la Constitución Española regula el Gobierno y la Administración?", + "rights" : ["Título IV"], + "wrongs" : ["Título I", "Título II", "Título III"] + }, { + "question" : "¿Qué título de la Constitución Española regula las relaciones entre el Gobierno y las Cortes Generales?", + "rights" : ["Título V"], + "wrongs" : ["Título I", "Título II", "Título III"] + }, { + "question" : "¿Qué título de la Constitución Española regula el Poder Judicial?", + "rights" : ["Título VI"], + "wrongs" : ["Título I", "Título II", "Título III"] + }, { + "question" : "¿Qué título de la Constitución Española regula la Economía y Hacienda?", + "rights" : ["Título VII"], + "wrongs" : ["Título I", "Título II", "Título III"] + }, { + "question" : "¿Qué título de la Constitución Española regula la Organización Territorial del Estado?", + "rights" : ["Título VIII"], + "wrongs" : ["Título I", "Título II", "Título III"] + }, { + "question" : "¿Qué título de la Constitución Española regula la Defensa?", + "rights" : ["Título IX"], + "wrongs" : ["Título I", "Título II", "Título III"] + }, { + "question" : "¿Qué título de la Constitución Española regula la Reforma Constitucional?", + "rights" : ["Título X"], + "wrongs" : ["Título I", "Título II", "Título III"] + }, { + "question" : "¿Qué título de la Constitución Española regula la Disposición General y Transitoria?", + "rights" : ["Título XI"], + "wrongs" : ["Título I", "Título II", "Título III"] + }] +}] \ No newline at end of file diff --git a/Public/json/gpt5-mini/preliminar_qs_01.json b/Public/json/gpt5-mini/preliminar_qs_01.json new file mode 100644 index 0000000..b7f3976 --- /dev/null +++ b/Public/json/gpt5-mini/preliminar_qs_01.json @@ -0,0 +1,58 @@ +[ + { + "origin": "GPT-5 mini (Copilot)", + "title": "Título Preliminar - Bloque 1", + "queries": [ + { + "question": "¿Qué principio expresa que la soberanía reside en el pueblo español?", + "rights": ["La soberanía nacional"], + "wrongs": ["El poder del rey", "La soberanía de las autonomías", "La soberanía de los municipios"] + }, + { + "question": "¿Cuál es la forma política del Estado según el Título Preliminar?", + "rights": ["Monarquía parlamentaria"], + "wrongs": ["República presidencial", "Estado federal", "Confederación"] + }, + { + "question": "¿Qué norma tiene supremacía sobre todas las demás en España?", + "rights": ["La Constitución"], + "wrongs": ["Las leyes orgánicas", "Los tratados internacionales", "Los reglamentos municipales"] + }, + { + "question": "Respecto a la indisoluble unidad de la Nación, ¿qué reconoce el Título Preliminar?", + "rights": ["La indisoluble unidad de la Nación española y el derecho a la autonomía de las nacionalidades y regiones"], + "wrongs": ["El derecho de secesión de las regiones", "La primacía de las autonomías sobre el Estado", "La desaparición de la Nación española"] + }, + { + "question": "¿Qué valor constitucional protege la igualdad de todos los españoles?", + "rights": ["La igualdad ante la ley"], + "wrongs": ["La igualdad solo ante los tribunales", "La desigualdad por origen", "La desigualdad administrativa"] + }, + { + "question": "¿Qué principio recoge el Título Preliminar sobre los derechos fundamentales?", + "rights": ["La protección y garantía de los derechos y libertades"], + "wrongs": ["La suspensión permanente de derechos", "El sometimiento de derechos a normas administrativas", "El predominio de los poderes locales sobre derechos fundamentales"] + }, + { + "question": "¿Qué elemento no forma parte del Título Preliminar?", + "rights": ["Reglas detalladas de procedimiento parlamentario"], + "wrongs": ["Principio de legalidad", "Soberanía nacional", "Forma política del Estado"] + }, + { + "question": "¿Qué principio organiza la estructura del poder político según el Título Preliminar?", + "rights": ["La división de poderes y su coordinación mediante la Constitución"], + "wrongs": ["Concentración de poderes en el ejecutivo", "Supremacía judicial sobre la Constitución", "El poder absoluto del legislativo"] + }, + { + "question": "¿Cómo define el Título Preliminar la posición de España en cuanto a la ley internacional?", + "rights": ["La Constitución integra a España en la comunidad internacional y reconoce el valor de los tratados"], + "wrongs": ["Los tratados están por encima de la Constitución", "España no participa en tratados internacionales", "Los tratados sustituyen a las leyes orgánicas"] + }, + { + "question": "¿Qué papel tienen los poderes públicos según el Título Preliminar?", + "rights": ["Actuar conforme a la Constitución y al principio de legalidad"], + "wrongs": ["Actuar al margen de la Constitución", "Someter la Constitución a decisiones administrativas", "Ignorar el principio de legalidad"] + } + ] + } +] diff --git a/Public/json/gpt5-mini/preliminar_qs_02.json b/Public/json/gpt5-mini/preliminar_qs_02.json new file mode 100644 index 0000000..391272f --- /dev/null +++ b/Public/json/gpt5-mini/preliminar_qs_02.json @@ -0,0 +1,58 @@ +[ + { + "origin": "GPT-5 mini (Copilot)", + "title": "Título Preliminar - Bloque 2", + "queries": [ + { + "question": "¿Qué artículo declara la supremacía constitucional en España?", + "rights": ["El artículo que establece la Constitución como norma suprema"], + "wrongs": ["El artículo sobre el Consejo de Ministros", "El artículo sobre el Tribunal Constitucional", "El artículo que regula presupuestos"] + }, + { + "question": "¿La Constitución reconoce la autonomía de las nacionalidades y regiones?", + "rights": ["Sí, reconoce el derecho a la autonomía"], + "wrongs": ["No, prohíbe la autonomía", "Solo reconoce autonomía municipal", "Reconoce autonomía solo a ciertas provincias"] + }, + { + "question": "¿Qué principio constitucional protege la libertad ideológica?", + "rights": ["La protección de los derechos y libertades fundamentales"], + "wrongs": ["La prohibición de idéas políticas", "La censura obligatoria", "La sujeción de pensamiento al ejecutivo"] + }, + { + "question": "¿Cuál es la base de la legalidad en España según el Título Preliminar?", + "rights": ["La Constitución y las normas que de ella emanen"], + "wrongs": ["La ley del más fuerte", "Decretos sin control parlamentario", "Reglamentos por encima de la Constitución"] + }, + { + "question": "¿Qué principio garantiza el respeto a la ley por parte de los poderes públicos?", + "rights": ["El principio de legalidad"], + "wrongs": ["La arbitrariedad administrativa", "La sujeción solo al ejecutivo", "La desobediencia a la Constitución"] + }, + { + "question": "¿Qué se entiende por Estado social y democrático de derecho?", + "rights": ["Un Estado que garantiza derechos sociales, políticos y el respeto al imperio de la ley"], + "wrongs": ["Un Estado autoritario", "Un Estado sin separación de poderes", "Un Estado que no garantiza derechos sociales"] + }, + { + "question": "¿Qué elemento no expresa el Título Preliminar?", + "rights": ["Procedimientos detallados de recurso ante tribunales administrativos"], + "wrongs": ["Soberanía popular", "Supremacía constitucional", "Estado social y democrático de derecho"] + }, + { + "question": "¿Qué valor tiene la Constitución para los poderes públicos?", + "rights": ["Marco fundamental y límite para su actuación"], + "wrongs": ["Opcional y dependiente de la voluntad del gobierno", "Sustituible por acuerdos locales", "Irrelevante para la administración pública"] + }, + { + "question": "¿Qué principio se relaciona con la protección de los derechos humanos?", + "rights": ["La dignidad de la persona y la igualdad"], + "wrongs": ["La supremacía del mercado", "La supresión de derechos civiles", "La desigualdad institucionalizada"] + }, + { + "question": "¿Cómo se garantizan las libertades públicas en la Constitución según el Título Preliminar?", + "rights": ["Mediante su reconocimiento y los mecanismos legales de protección"], + "wrongs": ["Con suspensiones permanentes", "Con arbitrariedad administrativa", "Con supresión sin control judicial"] + } + ] + } +] diff --git a/Public/json/gpt5-mini/preliminar_qs_03.json b/Public/json/gpt5-mini/preliminar_qs_03.json new file mode 100644 index 0000000..6b01c66 --- /dev/null +++ b/Public/json/gpt5-mini/preliminar_qs_03.json @@ -0,0 +1,58 @@ +[ + { + "origin": "GPT-5 mini (Copilot)", + "title": "Título Preliminar - Bloque 3", + "queries": [ + { + "question": "¿Qué principio constitucional garantiza la tutela judicial efectiva?", + "rights": ["La tutela judicial efectiva frente a actos que vulneren derechos"], + "wrongs": ["La ausencia de recursos", "La tutela solo administrativa", "La inactividad judicial obligatoria"] + }, + { + "question": "¿Qué valor tiene la Constitución en relación a los tratados internacionales?", + "rights": ["Los tratados internacionalmente son parte del ordenamiento y deben respetarse"], + "wrongs": ["Los tratados están por encima de la Constitución", "España no cumple tratados", "Los tratados no tienen efecto legal"] + }, + { + "question": "¿Qué se afirma sobre la forma de Estado y su unidad?", + "rights": ["La unidad de la Nación y la Constitución de un Estado social y democrático de Derecho"], + "wrongs": ["Fragmentación del Estado en entidades soberanas", "La abolición de la Nación", "La primacía de municipios sobre el Estado"] + }, + { + "question": "¿Qué principio está relacionado con la igualdad de los españoles ante la ley?", + "rights": ["Igualdad y no discriminación por nacimiento, raza, sexo, religión u opinión"], + "wrongs": ["Preferencia por origen", "Discriminación legalizada", "Derechos diferenciados por región"] + }, + { + "question": "¿Cómo se describen las fuentes del ordenamiento jurídico?", + "rights": ["Constitución, leyes, reglamentos y tratados conforme a la jerarquía normativa"], + "wrongs": ["Reglamentos por encima de la Constitución", "Fuentes arbitrarias", "Normas sin jerarquía"] + }, + { + "question": "¿Qué limita la actuación de los poderes públicos?", + "rights": ["La Constitución y las leyes"], + "wrongs": ["La voluntad individual del gobernante", "La supresión de controles", "El capricho administrativo"] + }, + { + "question": "¿Qué característica no corresponde al Título Preliminar?", + "rights": ["Normas procesales detalladas de cada jurisdicción"], + "wrongs": ["Principios constitucionales", "Supremacía de la Constitución", "Soberanía nacional"] + }, + { + "question": "¿Qué sentido tiene la referencia a la dignidad humana en el Texto Constitucional?", + "rights": ["Fundamento de los derechos y libertades"], + "wrongs": ["Base para la discriminación", "Razón para limitar derechos sin control", "Ninguna trascendencia legal"] + }, + { + "question": "¿Qué papel tiene la separación de poderes según el Título Preliminar?", + "rights": ["Evitar la concentración del poder y garantizar controles"], + "wrongs": ["Concentrar el poder en uno solo", "Eliminar controles judiciales", "Someter el legislativo al ejecutivo"] + }, + { + "question": "¿Qué relación establece el Título Preliminar con las comunidades autónomas?", + "rights": ["Reconocimiento del derecho a la autonomía y la organización en el marco de la Constitución"], + "wrongs": ["Independencia automática", "Anulación de la Constitución por autonomías", "Supremacía absoluta de las comunidades"] + } + ] + } +] diff --git a/Public/json/gpt5-mini/preliminar_qs_04.json b/Public/json/gpt5-mini/preliminar_qs_04.json new file mode 100644 index 0000000..0d658a6 --- /dev/null +++ b/Public/json/gpt5-mini/preliminar_qs_04.json @@ -0,0 +1,58 @@ +[ + { + "origin": "GPT-5 mini (Copilot)", + "title": "Título Preliminar - Bloque 4", + "queries": [ + { + "question": "¿Qué artículo establece la dignidad humana como fundamento?", + "rights": ["El artículo que reconoce la dignidad de la persona como fundamento de los derechos"], + "wrongs": ["El artículo que regula impuestos", "El artículo sobre la Hacienda pública", "El artículo sobre definiciones de municipios"] + }, + { + "question": "¿Cuál es el papel de la Constitución en la organización territorial?", + "rights": ["Establecer el marco para la autonomía y la unidad de la Nación"], + "wrongs": ["Dejar la organización territorial sin reglas", "Dar independencia plena a cada provincia", "Imponer una estructura federal sin pacto constitucional"] + }, + { + "question": "¿Qué principio ayuda a legitimar la actuación de los poderes públicos?", + "rights": ["El principio democrático y la sujeción a la ley"], + "wrongs": ["La imposición sin representación", "El ejercicio arbitrario del poder", "La desobediencia jurídica"] + }, + { + "question": "¿Qué protege el Título Preliminar respecto a la libertad religiosa?", + "rights": ["La libertad religiosa y la no confesionalidad del Estado"], + "wrongs": ["La religión oficial obligatoria", "La prohibición de religión", "La subordinación del Estado a una confesión"] + }, + { + "question": "¿Qué implica el principio de legalidad para los ciudadanos?", + "rights": ["Que sus derechos y deberes se encuentran regulados por normas"], + "wrongs": ["Que no existen normas que los protejan", "Que la ley depende del gobernante de turno", "Que la ley es solo una sugerencia"] + }, + { + "question": "¿Qué relación existe entre la Constitución y los derechos fundamentales?", + "rights": ["La Constitución reconoce y garantiza los derechos fundamentales"], + "wrongs": ["Los derechos no están garantizados", "Los derechos dependen exclusivamente de reglamentos", "La Constitución no menciona derechos"] + }, + { + "question": "¿Qué no es objeto del Título Preliminar?", + "rights": ["Normas técnicas de procedimiento judicial"], + "wrongs": ["Principios constitucionales", "Soberanía nacional", "La Constitución como norma suprema"] + }, + { + "question": "¿Qué principio inspira la protección de las libertades públicas?", + "rights": ["La dignidad de la persona y el respeto a la igualdad"], + "wrongs": ["La desigualdad institucional", "La supresión de libertades civiles", "La imposición religiosa estatal"] + }, + { + "question": "¿Qué valor tiene la referencia a los tratados internacionales?", + "rights": ["Que forman parte del ordenamiento y vinculan a España en los límites de la Constitución"], + "wrongs": ["Que sustituyen la Constitución", "Que son ignorados por el Estado", "Que no generan obligaciones internacionales"] + }, + { + "question": "¿Qué se espera de los poderes públicos según el Título Preliminar?", + "rights": ["Actuar conforme a la Constitución, respetar derechos y garantizar el orden jurídico"], + "wrongs": ["Actuar arbitrariamente", "Ignorar derechos fundamentales", "Someter la ley a voluntad administrativa"] + } + ] + } +] diff --git a/Public/json/gpt5-mini/preliminar_qs_05.json b/Public/json/gpt5-mini/preliminar_qs_05.json new file mode 100644 index 0000000..8bd2522 --- /dev/null +++ b/Public/json/gpt5-mini/preliminar_qs_05.json @@ -0,0 +1,58 @@ +[ + { + "origin": "GPT-5 mini (Copilot)", + "title": "Título Preliminar - Bloque 5", + "queries": [ + { + "question": "¿Qué significado tiene 'Estado social y democrático de Derecho'?", + "rights": ["Garantía de derechos sociales y respeto al imperio de la ley"], + "wrongs": ["Estado autoritario", "Supresión de libertades", "Ausencia de controles legales"] + }, + { + "question": "¿Qué artículo consagra la igualdad ante la ley?", + "rights": ["El artículo que establece igualdad y no discriminación"], + "wrongs": ["Un artículo sobre competencias locales", "Un artículo sobre tasas municipales", "Una disposición transitoria"] + }, + { + "question": "¿Qué reconoce el Título Preliminar sobre los derechos de participación política?", + "rights": ["La garantía de derechos políticos y participación"], + "wrongs": ["La supresión de la participación", "La limitación a ciertos ciudadanos arbitrariamente", "La concentración del poder político"] + }, + { + "question": "¿Qué se entiende por principio de legalidad?", + "rights": ["Que la actuación pública debe ajustarse a la ley"], + "wrongs": ["Que la actuación pública puede ser arbitraria", "Que la ley es opcional", "Que no existe control judicial"] + }, + { + "question": "¿Qué papel tienen los derechos fundamentales frente a la ley ordinaria?", + "rights": ["Los derechos fundamentales tienen protección superior y mecanismos de tutela"], + "wrongs": ["Los derechos dependen únicamente de reglamentos", "No existen mecanismos de tutela", "Los derechos son de mera cortesía"] + }, + { + "question": "¿Qué implica la referencia a la soberanía?", + "rights": ["Que la soberanía reside en el pueblo y se ejerce en los términos de la Constitución"], + "wrongs": ["Que la soberanía es del ejecutivo", "Que la soberanía reside en municipios", "Que no existe soberanía popular"] + }, + { + "question": "¿Qué no forma parte del Título Preliminar?", + "rights": ["Reglas procesales administrativas detalladas"], + "wrongs": ["Principios constitucionales", "La supremacía de la Constitución", "La dignidad humana"] + }, + { + "question": "¿Cómo se relaciona la Constitución con la comunidad internacional?", + "rights": ["Adhesión a tratados y cumplimiento de obligaciones internacionales"], + "wrongs": ["Aislamiento internacional", "Ignorar tratados", "Renunciar a obligaciones internacionales"] + }, + { + "question": "¿Qué principio protege la pluralidad ideológica?", + "rights": ["El respeto a la libertad ideológica y de expresión"], + "wrongs": ["La censura obligatoria", "La prohibición de partidos", "La limitación de la crítica política"] + }, + { + "question": "¿Qué función tiene la Constitución en relación con los poderes públicos?", + "rights": ["Servir de límite y marco para su actuación, garantizando derechos"], + "wrongs": ["Permitir acciones arbitrarias", "Eliminar controles institucionales", "Someter los derechos a la voluntad gubernamental"] + } + ] + } +] diff --git a/Public/json/gpt5-mini/preliminar_qs_06.json b/Public/json/gpt5-mini/preliminar_qs_06.json new file mode 100644 index 0000000..1709cf8 --- /dev/null +++ b/Public/json/gpt5-mini/preliminar_qs_06.json @@ -0,0 +1,59 @@ +[ + { + "origin": "GPT-5 mini (Copilot)", + "title": "Título Preliminar - Bloque 6", + "queries": [ + { + "question": "¿Qué principio constitucional protege la libertad personal?", + "rights": ["El reconocimiento de los derechos y libertades individuales"], + "wrongs": ["La sujeción de la persona al gobierno", "La ausencia de libertades personales", "La restricción sin base legal"] + }, + { + "question": "¿Qué relación existe entre la Constitución y las leyes ordinarias?", + "rights": ["Las leyes deben ser conformes a la Constitución"], + "wrongs": ["Las leyes pueden contradecir la Constitución", "No existe jerarquía normativa", "Los reglamentos invalidan la Constitución"] + }, + { + "question": "¿Qué garantía se menciona sobre la protección de los derechos?", + "rights": ["La tutela judicial y los mecanismos constitucionales"] + , + "wrongs": ["La ausencia de mecanismos de tutela", "La dependencia total del ejecutivo", "La inexistencia de tribunales"] + }, + { + "question": "¿Qué alcance tiene la indisoluble unidad de la Nación?", + "rights": ["Reconocimiento de la unidad junto con la autonomía de nacionalidades y regiones"], + "wrongs": ["Independencia automática de regiones", "Supresión de la Nación", "Privilegio de ciertas autonomías sobre otras"] + }, + { + "question": "¿Qué significa que España sea un Estado social y democrático de Derecho?", + "rights": ["Compromiso con derechos sociales, democracia y legalidad"], + "wrongs": ["Supremacía de una clase social", "Ausencia de división de poderes", "La negación de libertades públicas"] + }, + { + "question": "¿Qué principio regula la actuación de la Administración pública?", + "rights": ["El principio de legalidad y sometimiento a la Constitución"], + "wrongs": ["Actuación arbitraria sin sujeción a la ley", "Sometimiento a intereses privados", "Desobediencia a la Constitución"] + }, + { + "question": "¿Cuál es la relación entre el ordenamiento jurídico y los tratados internacionales?", + "rights": ["Los tratados forman parte del ordenamiento dentro de los límites de la Constitución"], + "wrongs": ["Los tratados invalidan la Constitución", "Los tratados no tienen efecto legal", "España queda fuera del derecho internacional"] + }, + { + "question": "¿Qué se protege con el principio de igualdad?", + "rights": ["Igualdad ante la ley y no discriminación"], + "wrongs": ["Desigualdad por origen", "Privilegios legales arbitrarios", "Discriminación institucionalizada"] + }, + { + "question": "¿Qué papel tiene la Constitución respecto a las instituciones públicas?", + "rights": ["Establecer límites y competencias, garantizando los derechos"], + "wrongs": ["Permitir competencias sin límites", "Eliminar controles institucionales", "Someter el sistema judicial al ejecutivo"] + }, + { + "question": "¿Qué principio protege la libertad de expresión?", + "rights": ["El reconocimiento y garantía de la libertad de expresión"], + "wrongs": ["La censura previa obligatoria", "La prohibición de prensa", "La limitación total del discurso político"] + } + ] + } +] diff --git a/Public/json/gpt5-mini/preliminar_qs_07.json b/Public/json/gpt5-mini/preliminar_qs_07.json new file mode 100644 index 0000000..59417ca --- /dev/null +++ b/Public/json/gpt5-mini/preliminar_qs_07.json @@ -0,0 +1,58 @@ +[ + { + "origin": "GPT-5 mini (Copilot)", + "title": "Título Preliminar - Bloque 7", + "queries": [ + { + "question": "¿Qué se entiende por principio democrático en el Título Preliminar?", + "rights": ["Que el poder emana del pueblo y se ejerce conforme a la Constitución"], + "wrongs": ["Que el poder pertenece solo a gobernantes", "Que el pueblo no participa", "Que no existen mecanismos de control"] + }, + { + "question": "¿Qué importancia tiene la dignidad humana en la Constitución?", + "rights": ["Es fundamento del orden jurídico y de los derechos"], + "wrongs": ["No tiene importancia", "Solo es retórica", "Sirve para justificar desigualdades"] + }, + { + "question": "¿Qué papel tienen los tratados internacionales según la Constitución?", + "rights": ["Integran el ordenamiento y obligan a España en los límites constitucionales"], + "wrongs": ["Son superiores a la Constitución", "Carecen de efecto jurídico", "Se aplican solo cuando conviene al gobierno"] + }, + { + "question": "¿Qué significa que la Constitución es la norma suprema?", + "rights": ["Que ninguna norma puede contradecirla y que organiza la jerarquía normativa"], + "wrongs": ["Que las leyes pueden invalidarla", "Que los reglamentos están por encima", "Que es una sugerencia"] + }, + { + "question": "¿Qué principio garantiza la tutela judicial efectiva?", + "rights": ["El acceso a los tribunales y la protección judicial de los derechos"], + "wrongs": ["La falta de tribunales", "La negación de recursos judiciales", "La subsistencia de la justicia privada sin control"] + }, + { + "question": "¿Qué relación establece el Título Preliminar entre Nación y nacionalidades?", + "rights": ["Afirma la unidad de la Nación y reconoce la autonomía de las nacionalidades y regiones"], + "wrongs": ["Otorga derecho automático de secesión", "Niega la existencia de nacionalidades", "Sustituye la Nación por entidades sin soberanía"] + }, + { + "question": "¿Qué rol tiene la Constitución frente a los derechos fundamentales?", + "rights": ["Reconocerlos, garantizarlos y dotarlos de mecanismos de tutela"], + "wrongs": ["Excluirlos del ordenamiento", "Dejarlos a criterio administrativo", "Suprimirlos sin control judicial"] + }, + { + "question": "¿Qué principio obliga a los poderes públicos a respetar la ley?", + "rights": ["El principio de legalidad"], + "wrongs": ["La ausencia de sujeción normativa", "La discrecionalidad completa", "La prevalencia del ejecutivo"] + }, + { + "question": "¿Qué se entiende por jerarquía normativa en la Constitución?", + "rights": ["Que la Constitución está por encima de otras normas y que existe un orden de fuentes del derecho"], + "wrongs": ["Que todas las normas son iguales sin jerarquía", "Que los reglamentos prevalecen sobre la Constitución", "Que no existe ordenamiento jurídico"] + }, + { + "question": "¿Qué protege la Constitución respecto a las libertades públicas?", + "rights": ["El reconocimiento y la garantía de libertades como la expresión y asociación"], + "wrongs": ["La supresión de libertades", "La limitación sin control jurídico", "La censura previa obligatoria"] + } + ] + } +] diff --git a/Public/json/gpt5-mini/preliminar_qs_08.json b/Public/json/gpt5-mini/preliminar_qs_08.json new file mode 100644 index 0000000..67625f3 --- /dev/null +++ b/Public/json/gpt5-mini/preliminar_qs_08.json @@ -0,0 +1,58 @@ +[ + { + "origin": "GPT-5 mini (Copilot)", + "title": "Título Preliminar - Bloque 8", + "queries": [ + { + "question": "¿Qué garantiza la Constitución respecto al acceso a la justicia?", + "rights": ["El acceso efectivo a los tribunales y la tutela judicial efectiva"], + "wrongs": ["La negación de acceso a tribunales", "La falta de mecanismos de tutela", "La justicia privada sin control"] + }, + { + "question": "¿Qué dice el Título Preliminar sobre la organización territorial?", + "rights": ["Establece la unidad del Estado y reconoce la autonomía"], + "wrongs": ["Permite la independencia automática", "No regula la autonomía", "Sustituye al Estado por entidades sin soberanía"] + }, + { + "question": "¿Qué protege la Constitución en materia de derechos económicos y sociales?", + "rights": ["El reconocimiento y garantía de derechos sociales, dentro de su articulación legal"], + "wrongs": ["La inexistencia de derechos sociales", "La subordinación completa al mercado", "La privación de garantías sociales"] + }, + { + "question": "¿Qué rol tienen los poderes públicos frente a la Constitución?", + "rights": ["Actuar conforme a la Constitución y al principio de legalidad"], + "wrongs": ["Actuar fuera de la ley", "Someter la Constitución a decisiones administrativas", "Ignorar derechos fundamentales"] + }, + { + "question": "¿Qué significa la referencia a la dignidad humana?", + "rights": ["Fundamento de los derechos y de la protección jurídica"], + "wrongs": ["Justificación para la discriminación", "Base para la indefensión", "Sin trascendencia legal"] + }, + { + "question": "¿Qué principio protege la igualdad en la Constitución?", + "rights": ["La igualdad ante la ley y la prohibición de discriminación"], + "wrongs": ["La desigualdad legalizada", "La preferencia por origen", "La discriminación institucionalizada"] + }, + { + "question": "¿Qué papel tienen los tratados internacionales según la Constitución?", + "rights": ["Forman parte del ordenamiento dentro de los límites constitucionales"], + "wrongs": ["Son superiores a la Constitución", "Carecen de efecto jurídico", "No afectan al ordenamiento"] + }, + { + "question": "¿Qué principio es clave para el funcionamiento democrático?", + "rights": ["La soberanía nacional y su ejercicio conforme a la Constitución"], + "wrongs": ["La concentración del poder en una persona", "La ausencia de mecanismos democráticos", "La negación de participación ciudadana"] + }, + { + "question": "¿Qué protege la libertad religiosa según el Título Preliminar?", + "rights": ["La libertad religiosa y la aconfesionalidad del Estado"], + "wrongs": ["Imposición de una religión oficial", "Prohibición de creencias", "Subordinación del Estado a una confesión"] + }, + { + "question": "¿Qué exige la Constitución a los poderes públicos en su actuación?", + "rights": ["Someterse a la Constitución y a las leyes"], + "wrongs": ["Actuar arbitrariamente", "Ignorar la Constitución", "Intervenir sin límites legales"] + } + ] + } +] diff --git a/Public/json/gpt5-mini/preliminar_qs_09.json b/Public/json/gpt5-mini/preliminar_qs_09.json new file mode 100644 index 0000000..60cd891 --- /dev/null +++ b/Public/json/gpt5-mini/preliminar_qs_09.json @@ -0,0 +1,58 @@ +[ + { + "origin": "GPT-5 mini (Copilot)", + "title": "Título Preliminar - Bloque 9", + "queries": [ + { + "question": "¿Qué significa que la Constitución sea la norma suprema?", + "rights": ["Que ninguna norma del ordenamiento jurídico puede contradecirla"], + "wrongs": ["Que las leyes pueden invalidarla", "Que los reglamentos prevalecen", "Que es opcional seguirla"] + }, + { + "question": "¿Qué protege la Constitución respecto a la libertad de asociación?", + "rights": ["El derecho a asociarse y a fundar sindicatos y partidos"], + "wrongs": ["La prohibición de asociaciones", "La imposición de asociaciones oficiales", "La supresión de sindicatos"] + }, + { + "question": "¿Qué principio garantiza el respeto a la ley por parte de la administración?", + "rights": ["El principio de legalidad"], + "wrongs": ["Arbitrariedad administrativa", "Desobediencia a la Constitución", "Actuación fuera de la ley"] + }, + { + "question": "¿Qué relación establece la Constitución con las comunidades autónomas?", + "rights": ["Reconoce su autonomía dentro del marco constitucional"], + "wrongs": ["Otorga independencia plena", "Niega su existencia", "Suple su papel con autoridades locales"] + }, + { + "question": "¿Qué se entiende por protección de derechos fundamentales?", + "rights": ["Mecanismos judiciales y constitucionales de tutela"], + "wrongs": ["Sin recursos judiciales", "Protección solo administrativa", "Desregulación total"] + }, + { + "question": "¿Qué principio ayuda a evitar la concentración del poder?", + "rights": ["La separación de poderes y los controles mutuos"], + "wrongs": ["Acaparamiento de funciones por el ejecutivo", "Fusión de poderes sin control", "Supresión del judicial"] + }, + { + "question": "¿Qué rol tienen los tratados internacionales en el ordenamiento?", + "rights": ["Forman parte del ordenamiento y vinculan dentro de los límites constitucionales"], + "wrongs": ["Sustituyen la Constitución", "Carecen de efecto legal", "Son ignorados por el Estado"] + }, + { + "question": "¿Qué obliga la dignidad de la persona según el Texto Constitucional?", + "rights": ["La protección y garantía de derechos humanos"], + "wrongs": ["La discriminación legalizada", "La desprotección social", "La ausencia de tutela judicial"] + }, + { + "question": "¿Qué responsabilidad tienen los poderes públicos ante la Constitución?", + "rights": ["Respetarla y garantizar los derechos"], + "wrongs": ["Ignorarla", "Actuar fuera de sus límites", "Suprimir los derechos fundamentales"] + }, + { + "question": "¿Qué garantiza la igualdad ante la ley?", + "rights": ["No discriminación por motivos personales"], + "wrongs": ["Privilegios legales por origen", "Discriminación institucional", "Tratamiento desigual por decisión administrativa"] + } + ] + } +] diff --git a/Public/json/gpt5-mini/preliminar_qs_10.json b/Public/json/gpt5-mini/preliminar_qs_10.json new file mode 100644 index 0000000..781a1f6 --- /dev/null +++ b/Public/json/gpt5-mini/preliminar_qs_10.json @@ -0,0 +1,59 @@ +[ + { + "origin": "GPT-5 mini (Copilot)", + "title": "Título Preliminar - Bloque 10", + "queries": [ + { + "question": "¿Qué papel tiene la Constitución en la protección de libertades?", + "rights": ["Marco jurídico que reconoce y garantiza libertades"], + "wrongs": ["No protege libertades", "Las libertades dependen de decisiones arbitrarias", "Son eliminadas por reglamentos"] + }, + { + "question": "¿Qué implica la sujeción de los poderes públicos a la ley?", + "rights": ["Que deben actuar conforme a la Constitución y legislación"], + "wrongs": ["Que pueden actuar arbitrariamente", "Que no tienen límites", "Que la ley es solo una sugerencia"] + }, + { + "question": "¿Qué entiende la Constitución por separación de poderes?", + "rights": ["Distinción y controles entre ejecutivo, legislativo y judicial"], + "wrongs": ["Concentración del poder en un órgano", "Supresión de tribunales", "Un único poder sin controles"] + }, + { + "question": "¿Qué establece el Título Preliminar sobre la jerarquía normativa?", + "rights": ["La Constitución está por encima de las leyes y reglamentos"], + "wrongs": ["Las normas son todas iguales sin jerarquía", "Los reglamentos prevalecen", "No existe ordenamiento jurídico"] + }, + { + "question": "¿Qué principio protege la participación política?", + "rights": ["Derechos políticos y mecanismos de participación"], + "wrongs": ["Prohibición de participación", "Sometimiento de la participación al ejecutivo", "Limitación arbitraria de derechos políticos"] + }, + { + "question": "¿Qué reconoce el Texto Constitucional respecto a la nación y sus regiones?", + "rights": ["La unidad de la Nación y el reconocimiento de nacionalidades y regiones"], + "wrongs": ["Desintegración del Estado", "Supremacía de regiones sobre la Nación", "Ningún reconocimiento de pluralidad territorial"] + }, + { + "question": "¿Qué protección se garantiza para la libertad de pensamiento?", + "rights": ["Libertad de pensamiento y expresión"] + , + "wrongs": ["Control obligado del pensamiento", "Prohibición de opinión política", "Sanciones por idea personal"] + }, + { + "question": "¿Qué obliga la Constitución a los ciudadanos?", + "rights": ["Respetar la ley y los derechos de los demás"], + "wrongs": ["Actuar fuera de la ley", "Ignorar derechos ajenos", "Someterse a decisiones arbitrarias"] + }, + { + "question": "¿Qué concepto relaciona la Constitución con la comunidad internacional?", + "rights": ["Respeto a los tratados y obligaciones internacionales dentro de la Constitución"], + "wrongs": ["Aislamiento internacional", "Sustitución de la Constitución por tratados", "No cumplimiento de obligaciones internacionales"] + }, + { + "question": "¿Qué valor político y jurídico tiene la Constitución?", + "rights": ["Norma fundamental que organiza el Estado y garantiza derechos"], + "wrongs": ["Norma sin efecto práctico", "Documento simbólico sin validez jurídica", "Regla optativa para los poderes públicos"] + } + ] + } +] diff --git a/Public/json/i18n/OpoTests.i18n.espanol.json b/Public/json/i18n/OpoTests.i18n.espanol.json new file mode 100644 index 0000000..221b430 --- /dev/null +++ b/Public/json/i18n/OpoTests.i18n.espanol.json @@ -0,0 +1,60 @@ +{ + "espanol" : { + "home" : "Inicio", + "git" : "Git", + "test_creator" : "Creador de Tests", + "test_creator_text" : "Crea tus propios tests personalizados seleccionando las preguntas que desees.", + "select_all_visible" : "Seleccionar todo lo visible", + "unselect_all_visible" : "Deseleccionar todo lo visible", + "search" : "Buscar", + "search_text" : "Usa & (AND), | (OR) y ! (NOT) para combinar términos. Ejemplo: derecho&constitución|autonomía&!municipal", + "blocks" : "Bloques", + "questions" : "Preguntas", + "selected_questions" : "Preguntas seleccionadas", + "total_questions" : "Total de preguntas", + "show_selected" : "Mostrar seleccionados", + "minimum_questions" : "Número mínimo de preguntas", + "minimum_questions_description" : "El test se generará con al menos este número de preguntas. Si no hay suficientes preguntas seleccionadas, recreará de preguntas ya generadas.", + "maximum_questions" : "Número máximo de preguntas", + "maximum_questions_description" : "El test se generará con un máximo de este número de preguntas.", + "minimum_answers" : "Número mínimo de respuestas", + "minimum_answers_description" : "Cada pregunta tendrá al menos este número de respuestas (correctas e incorrectas). Si no hay suficientes respuestas, se duplicarán las ya existentes.", + "maximum_answers" : "Número máximo de respuestas", + "maximum_answers_description" : "Cada pregunta tendrá un máximo de este número de respuestas (correctas e incorrectas).", + "allow_unique_right" : "Permitir respuesta única correcta", + "allow_unique_right_description" : "Si una pregunta tiene una única respuesta correcta, se permitirá que esa sea la única respuesta correcta en el test.", + "allow_all_answers_false" : "Permitir todas las respuestas incorrectas", + "allow_all_answers_false_description" : "Si una pregunta tiene todas las respuestas incorrectas, se permitirá que esa sea la única respuesta en el test.", + "allow_all_answers_true" : "Permitir todas las respuestas correctas", + "allow_all_answers_true_description" : "Si una pregunta tiene todas las respuestas correctas, se permitirá que esa sea la única respuesta en el test.", + "allow_repeated_questions" : "Permitir preguntas repetidas", + "allow_repeated_questions_description" : "Si no hay suficientes preguntas seleccionadas, se permitirán preguntas repetidas en el test.", + "show_rights" : "Mostrar respuestas correctas", + "show_rights_description" : "Se mostrarán las respuestas correctas e incorrectas durante el uso de Test. Si no se marca se mostrarán al finalizar el Tests.", + "show_results" : "Mostrar resultados", + "show_results_description" : "Se irán mostrando los resultados del test a medida que se vaya haciendo. Si no se marca se mostrarán los resultados al terminar el Test.", + "clean" : "Limpiar", + "submit" : "Enviar", + "test" : "Test", + "test_text" : "Realiza el test con las preguntas seleccionadas.", + "block" : "Bloque", + "blocks_description" : "Selecciona los bloques de preguntas que deseas incluir en el test.", + "status" : "Estado", + "unanswered" : "Sin responder", + "answered" : "Respondida", + "right" : "Correcta", + "wrong" : "Incorrecta", + "partially" : "Parcialmente correcta", + "question" : "Pregunta", + "group" : "Grupo", + "need_one_block_at_least" : "Debes seleccionar al menos un bloque.", + "allow_multiple_answers" : "Permitir multirespuestas", + "allow_multiple_answers_description" : "Si una pregunta tiene varias respuestas correctas, se permitirá que todas sean correctas en el test.", + "username" : "Usuario", + "username_description" : "El nombre de usuario que te hallan asignado para poder acceder al contenido.", + "password" : "Contraseña", + "password_description" : "La contraseña que te hallan asignado para poder acceder al contenido.", + "login" : "Iniciar sesión", + "login_text" : "Inicia sesión para poder acceder al contenido." + } +} \ No newline at end of file diff --git a/Public/json/kyman/comun/kyman.00.tipos-leyes.json b/Public/json/kyman/comun/kyman.00.tipos-leyes.json new file mode 100644 index 0000000..05bfea6 --- /dev/null +++ b/Public/json/kyman/comun/kyman.00.tipos-leyes.json @@ -0,0 +1,141 @@ +[{ + "origin" : "KyMAN", + "sources" : [], + "title" : "Tipos de leyes - Tipos", + "group" : "kyman_leyes", + "queries" : [{ + "question" : "¿Qué tipo de ley es la [[rand,ley de leyes|norma suprema]] del ordenamiento jurídico español?", + "rights" : ["Constitución"], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué tipo de ley establece la estructura del Estado, la organización de los poderes públicos y los derechos fundamentales de los ciudadanos?", + "rights" : ["Constitución", "La Carta Magna", "La Ley de Leyes"], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué tipo de ley es la que continúa inmediatamente por debajo de la Constitución?", + "rights" : ["Normas con Rango de Ley"], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué tipos de leyes se comprenden dentro de las Normas con Rangos de Ley?", + "rights" : ["Ley Orgánica", "Ley Ordinaria", "Real Decreto-Ley", "Real Decreto Legislativo"], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué tipos de Ley emanan [[rand,de las Cortes Generales|del Poder Legislativo]]?", + "rights" : ["Ley Orgánica", "Ley Ordinaria"], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué tipos de Ley emanan [[rand,del Gobierno|del Poder Ejecutivo]]?", + "rights" : ["Real Decreto-Ley", "Real Decreto Legislativo"], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué tipo de ley se comprende dentro de las Normas de Rango Reglamentario?", + "rights" : ["Real Decreto", "Orden Ministerial"], + "brothers_are_wrongs" : true + }] +}, { + "origin" : "KyMAN", + "sources" : [], + "title" : "Tipos de leyes - Entidades", + "group" : "kyman_leyes", + "queries" : [{ + "question" : "¿Quién prueba una [[rand,Constitución|Carta Magna|Ley de Leyes]]?", + "rights" : ["El Poder Constituyente"], + "brothers_are_wrongs" : true + }, { + "question" : "¿De dónde provienen las Normas con Rangos de Ley?", + "rights" : ["De las Cortes Generales.", "Excepcionalmente del Gobierno.", "[[Mix,de las Cortes Generales|excepcionalmente del Gobierno]]."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Quién dicta las Normas de Rango Reglamentario?", + "rights" : ["[[Mix,y,el Gobierno|la Administración Pública]]."], + "brothers_are_wrongs" : true + }, { + "question" : "¿A quién le corresponde la elaboración de las leyes?", + "rights" : ["Al poder legislativo."], + "brothers_are_wrongs" : true + }, { + "question" : "¿A quién le corresponde la aplicación de las leyes?", + "rights" : ["Al poder ejecutivo."], + "brothers_are_wrongs" : true + }, { + "question" : "¿A quién le corresponde la interpretación y el control de las leyes?", + "rights" : ["Al poder judicial."], + "brothers_are_wrongs" : true + }, { + "question" : "¿[[rand,Dónde reside|A quién le corresponde]] el Poder Legislativo?", + "rights" : ["A las Cortes Generales."], + "brothers_are_wrongs" : true + }, { + "question" : "¿[[rand,Dónde reside|A quién le corresponde]] el Poder Ejecutivo?", + "rights" : ["Al Gobierno."], + "brothers_are_wrongs" : true + }, { + "question" : "¿[[rand,Dónde reside|A quién le corresponde]] el Poder Judicial?", + "rights" : ["A los [[mix,y,jueces|tribunales]]."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Quiénes son los Poderes Públicos del Estado?", + "rights" : ["[[Mix,y,el poder legislativo|el poder ejecutivo|el poder judicial]]."], + "brothers_are_wrongs" : true + }, { + "question" : "¿A quién le corresponde el poder de las Cortes Generales?", + "rights" : ["Al poder legislativo."], + "brothers_are_wrongs" : true + }, { + "question" : "¿A quién le corresponde el poder del Gobierno?", + "rights" : ["Al poder ejecutivo."], + "brothers_are_wrongs" : true + }, { + "question" : "¿A quién le corresponde los poderes de los [[mix,y,jueces|tribunales]]?", + "rights" : ["Al poder judicial."], + "brothers_are_wrongs" : true + }] +}, { + "origin" : "KyMAN", + "sources" : [], + "title" : "Tipos de leyes - Definiciones", + "group" : "kyman_leyes", + "queries" : [{ + "question" : "¿Qué son las Normas de Rango Reglamentario?", + "rights" : ["Son leyes que están por debajo de la Ley y su función es desarrollar y aplicar las leyes."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es una Ley Orgánica?", + "rights" : ["Es una ley que desarrolla los derechos fundamentales y las libertades públicas y regula las instituciones básicas del Estado."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es una Ley Ordinaria?", + "rights" : ["Es una ley que regula materias no reservadas a las Leyes Orgánicas."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es un Real Decreto-Ley?", + "rights" : ["Es una norma con rango de ley dictada por el Gobierno en casos de extraordinaria y urgente necesidad."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es un Real Decreto Legislativo?", + "rights" : ["Es una norma con rango de ley dictada por el Gobierno mediante delegación expresa de las Cortes Generales."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es un Real Decreto?", + "rights" : ["Es una norma jurídica emanada del Poder Ejecutivo que desarrolla o complementa una Ley."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es una Orden Ministerial?", + "rights" : ["Es una norma jurídica emanada de un Ministerio que desarrolla o complementa una Ley o un Real Decreto."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es una Ley Autonómica?", + "rights" : ["Es una ley aprobada por los Parlamentos Autonómicos dentro del ámbito de sus competencias."], + "brothers_are_wrongs" : true + }] +}, { + "origin" : "KyMAN", + "sources" : [], + "title" : "Tipos de leyes - Preguntas", + "group" : "kyman_leyes", + "queries" : [{ + "question" : "¿Cuándo puede contradecir una Norma de Rango Reglamentario a una Ley?", + "rights" : ["Nunca"], + "wrongs" : ["Siempre", "Cuando la Ley lo permita", "Cuando la Ley lo permita y sea aprobada por las Cortes Generales"] + }] +}] \ No newline at end of file diff --git a/Public/json/kyman/especifico/kyman.00.redes.00.tipos-area.json b/Public/json/kyman/especifico/kyman.00.redes.00.tipos-area.json new file mode 100644 index 0000000..2594d7c --- /dev/null +++ b/Public/json/kyman/especifico/kyman.00.redes.00.tipos-area.json @@ -0,0 +1,140 @@ +[{ + "origin" : "KyMAN", + "sources" : [], + "title" : "Redes - Tipos por área", + "group" : "kyman_redes_area", + "queries" : [{ + "question" : "¿Qué es una red PAN?", + "rights" : ["Es una red unipersonal que cubre un área pequeña."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es una red LAN?", + "rights" : ["Es una red limitada a un área como un edificio o una oficina."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es una red MAN?", + "rights" : ["Es una red que abarca un área geográfica más grande que una LAN, como una ciudad o un campus."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es una red WAN?", + "rights" : ["Es una red que cubre un área geográfica extensa, como un país o continente."], + "brothers_are_wrongs" : true + }] +}, { + "origin" : "KyMAN", + "sources" : [], + "title" : "Redes - Tipos de Área - Conformación", + "group" : "kyman_redes_area", + "queries" : [{ + "question" : "¿De qué se conforma una red PAN?", + "rights" : [ + "De dispositivos personales como teléfonos móviles, tabletas y ordenadores portátiles.", + "De conexiones directas entre dispositivos punto a punto cercanos." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿De qué se conforma una red LAN?", + "rights" : [ + "De dispositivos de red como routers, switches y puntos de acceso.", + "De redes basadas en Ethernet o Wi-Fi." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿De qué se conforma una red MAN?", + "rights" : [ + "De múltiples redes LAN interconectadas.", + "De enlaces de alta velocidad entre edificios o sitios cercanos." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿De qué se conforma una red WAN?", + "rights" : [ + "De múltiples redes MAN interconectadas.", + "De enlaces de larga distancia, como líneas telefónicas o satélites." + ], + "brothers_are_wrongs" : true + }] +}, { + "origin" : "KyMAN", + "sources" : [], + "title" : "Redes - Tipos de Área - Alcance", + "group" : "kyman_redes_area", + "queries" : [{ + "question" : "¿Cuál es el alcance típico de una red PAN?", + "rights" : ["Alcance de unos pocos metros."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es el alcance típico de una red LAN?", + "rights" : ["Alcance de hasta 100 metros."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es el alcance típico de una red MAN?", + "rights" : ["Alcance de varios kilómetros."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es el alcance típico de una red WAN?", + "rights" : ["Alcance global."], + "brothers_are_wrongs" : true + }] +}, { + "origin" : "KyMAN", + "sources" : [], + "title" : "Redes - Tipos de Área - Tecnologías", + "group" : "kyman_redes_area", + "queries" : [{ + "question" : "¿Qué tipo de tecnología puede ser usado en una red PAN?", + "rights" : ["Tecnologías inalámbricas como Bluetooth y Zigbee."], + "wrongs" : [ + "Tecnologías de línea telefónica.", + "Tecnologías de red celular (4G, 5G).", + "Líneas de Coaxial." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué tipo de tecnología puede ser usado en una red LAN?", + "rights" : ["Tecnologías de cableado como Ethernet.", "Tecnologías inalámbricas como Wi-Fi."], + "wrongs" : [ + "Tecnologías de satélite.", + "Líneas de Coaxial." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué tipo de tecnología puede ser usado en una red MAN?", + "rights" : ["Tecnologías de fibra óptica", "Conexiones de microondas."], + "wrongs" : [ + "Tecnologías inalámbricas como Bluetooth y Zigbee." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué tipo de tecnología puede ser usado en una red WAN?", + "rights" : ["Tecnologías de fibra óptica", "Conexiones de satélite."], + "wrongs" : [ + "Tecnologías de cableado como Ethernet.", + "Tecnologías inalámbricas como Bluetooth y Zigbee.", + "Líneas de Coaxial." + ], + "brothers_are_wrongs" : true + }] +}, { + "origin" : "KyMAN", + "sources" : [], + "title" : "Redes - Tipos de Área - Componentes", + "group" : "kyman_redes_area", + "queries" : [{ + "question" : "¿En qué tipo de redes se utilizan redes Ethernet?", + "rights" : ["En redes LAN."], + "brothers_are_wrongs" : true + }, { + "question" : "¿En qué tipo de redes se utilizan [[rand,líneas de Coaxial|redes Wi-Fi]]?", + "rights" : ["En redes LAN.", "En una [[rand,CCTV|Circuito Cerrado de Televisión]]."], + "brothers_are_wrongs" : true + }, { + "question" : "¿En qué tipo de redes se utilizan conexiones de fibra óptica?", + "rights" : ["En redes MAN.", "En redes WAN."], + "brothers_are_wrongs" : true + }, { + "question" : "¿En qué tipo de redes se utilizan conexiones de satélite?", + "rights" : ["En redes WAN."], + "brothers_are_wrongs" : true + }] +}] \ No newline at end of file diff --git a/Public/json/kyman/especifico/kyman.00.redes.01.tipologias.json b/Public/json/kyman/especifico/kyman.00.redes.01.tipologias.json new file mode 100644 index 0000000..f53f429 --- /dev/null +++ b/Public/json/kyman/especifico/kyman.00.redes.01.tipologias.json @@ -0,0 +1,222 @@ +[{ + "origin" : "KyMAN", + "sources" : [], + "title" : "Redes - Tipologías", + "group" : "kyman_redes_tipologias", + "queries" : [{ + "question" : "¿Qué es una tipología de red lógica?", + "rights" : ["Es una clasificación de redes basada en la forma en que los dispositivos están interconectados y cómo se comunican entre sí."], + "wrongs" : [ + "Es una clasificación de redes basada en la ubicación geográfica de los dispositivos.", + "Es una clasificación de redes basada en el tipo de datos que se transmiten.", + "Es una clasificación de redes basada en el protocolo de comunicación utilizado." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es una tipología de red física?", + "rights" : ["Es una clasificación de redes basada en la disposición física de los dispositivos y los medios de transmisión."], + "wrongs" : [ + "Es una clasificación de redes basada en la forma en que los dispositivos están interconectados.", + "Es una clasificación de redes basada en el tipo de datos que se transmiten.", + "Es una clasificación de redes basada en el protocolo de comunicación utilizado." + ], + "brothers_are_wrongs" : true + }] +}, { + "origin" : "KyMAN", + "sources" : [], + "title" : "Redes - Tipologías - Conceptos generales II", + "group" : "kyman_redes_tipologias", + "queries" : [{ + "question" : "¿Cuál de las siguientes es una tipología de [[rand,red|red lógica|red física]]?", + "rights" : ["En estrella", "En malla", "Punto a Punto", "En bus", "En anillo"], + "wrongs" : [ + "Circular", + "Triangular", + "Hexagonal", + "Diagonal", + "De interconexión", + "De servicio", + "Digital" + ] + }, { + "question" : "En tipologías de red. ¿Qué es una [[rand,Branch|rama]]?", + "rights" : [ + "Es una subdivisión de una red que conecta varios nodos o dispositivos dentro de la red.", + "Es la línea que une nuevos nodos en una topología de árbol o [[rand,híbrida|mixta]]." + ], + "wrongs" : [ + "Es un dispositivo central que controla la comunicación en la red.", + "Es un tipo de cable utilizado para conectar dispositivos en la red.", + "Es un protocolo de comunicación utilizado en redes.", + "Es un software utilizado para gestionar la red." + ] + }, { + "question" : "¿Qué es un Token Ring?", + "rights" : [ + "Es una topología de red en la que los dispositivos están conectados en un anillo cerrado y utilizan un token para controlar el acceso al medio de transmisión.", + "Es una topología de red en la que los datos circulan en una dirección alrededor del anillo y cada dispositivo actúa como un repetidor para los datos que pasan a través de él." + ], + "wrongs" : [ + "Es una topología de red en la que todos los dispositivos están conectados a un dispositivo central.", + "Es una topología de red en la que todos los dispositivos están conectados a un único cable central.", + "Es una topología de red en la que cada dispositivo está conectado a todos los demás dispositivos." + ] + }] +}, { + "origin" : "KyMAN", + "sources" : [], + "title" : "Redes - Tipologías - Tipos", + "group" : "kyman_redes_tipologias", + "queries" : [{ + "question" : "¿Qué es una topología de red punto a punto?", + "rights" : ["Es una configuración de red en la que dos dispositivos están directamente conectados entre sí."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es una topología de red en bus?", + "rights" : ["Es una configuración de red en la que todos los dispositivos están conectados en una línea continua."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es una topología de red [[rand,en|de]] anillo?", + "rights" : ["Es una configuración de red en la que los dispositivos están conectados en un círculo cerrado."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es una topología de red [[rand,en|de]] [[rand,doble anillo|anillo doble]]?", + "rights" : ["Es una configuración de red en la que los dispositivos están conectados en dos círculos cerrados que se interconectan."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es una topología de red [[rand,en|de]] estrella?", + "rights" : ["Es una configuración de red en la que todos los dispositivos están conectados a un dispositivo central, como un switch o un hub."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es una topología de red [[rand,en|de]] malla?", + "rights" : ["Es una configuración de red en la que cada dispositivo está conectado a todos los demás dispositivos."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es una tipología de red [[rand,en árbol|de árbol|arbórea]]?", + "rights" : ["Es una configuración de red en la que los dispositivos están organizados en una estructura jerárquica similar a un árbol."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es una tipología de red [[rand,híbrida|mixta]]?", + "rights" : ["Es una combinación de dos o más tipologías de red, aprovechando las ventajas de cada una."], + "brothers_are_wrongs" : true + }] +}, { + "origin" : "KyMAN", + "sources" : [], + "title" : "Redes - Tipologías - Ventajas", + "group" : "kyman_redes_tipologias", + "queries" : [{ + "question" : "¿Cuáles son las ventajas de una red Punto a Punto?", + "rights" : [ + "[[Mix,y,simplicidad de configuración|Alta velocidad de comunicación]].", + "[[Mix,y,comunicación directa entre dos dispositivos|fácil de implementar]]." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuáles son las ventajas de una red en bus?", + "rights" : [ + "[[Mix,y,simplicidad de instalación|coste reducido de cableado]].", + "[[Mix,y,bajo costo para redes pequeñas|fácil de ampliar|diseño simple]]." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuáles son las ventajas de una red [[rand,en|de]] anillo?", + "rights" : [ + "[[Mix,y,puede manejar grandes volúmenes de tráfico|fácil de instalar y configurar]].", + "[[Mix,y,organización clara de datos|cada dispositivo actúa como repetidor]]." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuáles son las ventajas de una red [[rand,en|de]] [[rand,doble anillo|anillo doble]]?", + "rights" : [ + "[[Mix,y,alta tolerancia a fallos|redundancia en la comunicación]].", + "[[Mix,y,si un anillo falla, el otro puede mantener la comunicación|mejora la fiabilidad de la red]]." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuáles son las ventajas de una red [[rand,en|de]] estrella?", + "rights" : [ + "[[Mix,y,facilidad de gestión y mantenimiento|Aislamiento de fallos|escalabilidad]].", + "[[Mix,y,alta tolerancia a fallos|comunicación directa entre dispositivos|gestión conveniente desde una ubicación central|facilidad para identificar los problemas]]." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuáles son las ventajas de una red [[rand,en|de]] [[rand,malla|Mesh]]?", + "rights" : [ + "[[Mix,y,alta tolerancia a fallos|comunicación directa entre dispositivos]].", + "[[Mix,y,confiable|escalable|estable|ningún fallo en un nodo afecta al resto de la red]]." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuáles son las ventajas de una red [[rand,en árbol|de árbol|arbórea]]?", + "rights" : [ + "[[Mix,y,facilidad de expansión|Estructura jerárquica clara]].", + "[[Mix,y,extremadamente flexible|extremadamente escalable|facilidad para gestionar errores por la independencia de cada Branch]]." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuáles son las ventajas de una red [[rand,híbrida|mixta]]?", + "rights" : ["[[Mix,y,flexibilidad|Optimización de recursos]]."], + "brothers_are_wrongs" : true + }] +}, { + "origin" : "KyMAN", + "sources" : [], + "title" : "Redes - Tipologías - Desventajas", + "group" : "kyman_redes_tipologias", + "queries" : [{ + "question" : "¿Cuáles son las desventajas de una red Punto a Punto?", + "rights" : [ + "[[Mix,y,limitada a dos dispositivos|No escalable]].", + "[[Mix,y,si un dispositivo falla, la comunicación se interrumpe|difícil de gestionar en redes grandes]]." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuáles son las desventajas de una red en bus?", + "rights" : [ + "[[Mix,y,dificultad para aislar fallos|Limitaciones en la longitud del cable]].", + "[[Mix,y,vulnerable a fallas de cables|rendimiento disminuye con más dispositivos|los datos viajan unidireccionalmente]]." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuáles son las desvetajas de una red [[rand,en|de]] anillo?", + "rights" : [ + "[[Mix,y,si un dispositivo o conexión falla, puede afectar a toda la red|Dificultad para agregar o eliminar dispositivos sin interrumpir la red]].", + "[[Mix,y,si un nodo falla, toda la red se ve afectada|puede ser difícil de gestionar]]." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuáles son las desventajas de una red [[rand,en|de]] [[rand,doble anillo|anillo doble]]?", + "rights" : [ + "[[Mix,y,complejidad de configuración|Coste elevado de instalación]].", + "[[Mix,y,si ambos anillos fallan, la comunicación se interrumpe|puede ser costoso de operar]]." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuáles son las desventajas de una red [[rand,en|de]] estrella?", + "rights" : [ + "[[Mix,y,dependencia del dispositivo central|Coste de instalación inicial más alto]].", + "[[Mix,y,si falla el dispositivo central, toda la red se ve afectada|rendimiento y ancho de banda limitados por el nodo central|puede ser costoso de operar]]." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuáles son las desventajas de una red [[rand,en|de]] [[rand,malla|Mesh]]?", + "rights" : [ + "[[Mix,y,complejidad de instalación|Coste elevado de cableado]].", + "[[Mix,y,complejidad, gestión y mantenimiento|coste alto para redes grandes|mucho cableado para conectar los dispositivos]]." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuáles son las desventajas de una red [[rand,en árbol|de árbol|arbórea]]?", + "rights" : [ + "[[Mix,y,dependencia de los nodos principales|Complejidad de gestión]].", + "[[Mix,y,si falla un nodo principal, toda la rama se ve afectada|utiliza mucho cableado|puede ser difícil de gestionar]]." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuáles son las desventajas de una red [[rand,híbrida|mixta]]?", + "rights" : ["[[Mix,y,complejidad de diseño|Dificultad de gestión]]."], + "brothers_are_wrongs" : true + }] +}] \ No newline at end of file diff --git a/Public/json/kyman/especifico/kyman.00.redes.02.protocolos.json b/Public/json/kyman/especifico/kyman.00.redes.02.protocolos.json new file mode 100644 index 0000000..a557ea6 --- /dev/null +++ b/Public/json/kyman/especifico/kyman.00.redes.02.protocolos.json @@ -0,0 +1,492 @@ +[{ + "origin" : "KyMAN", + "sources" : [], + "title" : "Redes - Servicios, Protocolos y Métodos", + "group" : "kyman_redes_protocolos", + "queries" : [{ + "question" : "¿Qué significa 'FTP'?", + "rights" : ["File Transfer Protocol", "Protocolo de Transferencia de Archivos."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué significa 'HTTP'?", + "rights" : ["HyperText Transfer Protocol.", "Protocolo de Transferencia de Hipertexto."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué significa 'HTTPS'?", + "rights" : ["HyperText Transfer Protocol Secure.", "Protocolo Seguro de Transferencia de Hipertexto."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué significa 'IP'?", + "rights" : ["Internet Protocol.", "Protocolo de Internet."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué significa 'POP3'?", + "rights" : ["Post Office Protocol version 3.", "Protocolo de Oficina de Correos versión 3."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué significa 'SMTP'?", + "rights" : ["Simple Mail Transfer Protocol.", "Protocolo Simple de Transferencia de Correo."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué significa 'TCP'?", + "rights" : ["Transmission Control Protocol.", "Protocolo de Control de Transmisión."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué significa 'UDP'?", + "rights" : ["User Datagram Protocol.", "Protocolo de Datagrama de Usuario."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué significa 'DNS'?", + "rights" : ["Domain Name System.", "Sistema de Nombres de Dominio."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué significa 'DHCP'?", + "rights" : ["Dynamic Host Configuration Protocol.", "Protocolo de Configuración Dinámica de Host."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué significa 'SSH'?", + "rights" : ["Secure Shell.", "Shell Seguro."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué significa 'SSL'?", + "rights" : ["Secure Sockets Layer.", "Capa de Conexión Segura."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué significa 'TLS'?", + "rights" : ["Transport Layer Security.", "Seguridad de la Capa de Transporte."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué significa 'STP'?", + "rights" : ["Spanning Tree Protocol.", "Protocolo de Árbol de Expansión."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué significa 'SFTP'?", + "rights" : ["SSH File Transfer Protocol.", "Protocolo de Transferencia de Archivos SSH."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué significa 'SCP'?", + "rights" : ["Secure Copy Protocol.", "Protocolo de Copia Segura."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué significa 'FTPS'?", + "rights" : ["File Transfer Protocol Secure.", "Protocolo Seguro de Transferencia de Archivos."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es el 'EUI-64'?", + "rights" : ["Extended Unique Identifier.", "Identificador Único Extendido."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es el 'CIDR'?", + "rights" : ["Classless Inter-Domain Routing.", "Enrutamiento Inter-Dominio Sin Clases."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es 'NAT'?", + "rights" : ["Network Address Translation.", "Traducción de Direcciones de Red."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es 'ARP'?", + "rights" : ["Address Resolution Protocol.", "Protocolo de Resolución de Direcciones."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es 'RARP'?", + "rights" : ["Reverse Address Resolution Protocol.", "Protocolo de Resolución Inversa de Direcciones."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es 'ICMP'?", + "rights" : ["Internet Control Message Protocol.", "Protocolo de Mensajes de Control de Internet."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es 'IGMP'?", + "rights" : ["Internet Group Management Protocol.", "Protocolo de Gestión de Grupos de Internet."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es 'SLAAC'?", + "rights" : ["Stateless Address Autoconfiguration.", "Autoconfiguración de Direcciones Sin Estado."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es 'DHCPv6'?", + "rights" : ["Dynamic Host Configuration Protocol for IPv6", "Protocolo de Configuración Dinámica de Host para IPv6"], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es 'MPLS'?", + "rights" : ["Multiprotocol Label Switching.", "Conmutación de Etiquetas Multiprotocolo."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es 'VLAN'?", + "rights" : ["Virtual Local Area Network.", "Red de Área Local Virtual."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es 'VPN'?", + "rights" : ["Virtual Private Network.", "Red Privada Virtual."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es 'QoS'?", + "rights" : ["Quality of Service.", "Calidad de Servicio."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es 'WPA2'?", + "rights" : ["Wi-Fi Protected Access 2.", "Acceso Protegido Wi-Fi 2."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es 'WPA3'?", + "rights" : ["Wi-Fi Protected Access 3.", "Acceso Protegido Wi-Fi 3."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es 'WEP'?", + "rights" : ["Wired Equivalent Privacy.", "Privacidad Equivalente a Cableado."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es 'SSID'?", + "rights" : ["Service Set Identifier.", "Identificador de Conjunto de Servicios."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es 'ISP'?", + "rights" : ["Internet Service Provider.", "Proveedor de Servicios de Internet."], + "brothers_are_wrongs" : true + }, + + "#####################################################################################################", + "#####################################################################################################", + "#####################################################################################################", + "#####################################################################################################", + "#####################################################################################################", + "#####################################################################################################", + "#####################################################################################################", + "#####################################################################################################", + "#####################################################################################################", + "#####################################################################################################", + + { + "question" : "¿Qué es 'PoE'?", + "rights" : ["Power over Ethernet.", "Alimentación a través de Ethernet."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es 'MPLS'?", + "rights" : ["Multiprotocol Label Switching.", "Conmutación de Etiquetas Multiprotocolo."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es 'VPLS'?", + "rights" : ["Virtual Private LAN Service.", "Servicio de LAN Privada Virtual."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es 'SD-WAN'?", + "rights" : ["Software-Defined Wide Area Network.", "Red de Área Amplia Definida por Software."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es 'CoS'?", + "rights" : ["Class of Service.", "Clase de Servicio."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es 'VoIP'?", + "rights" : ["Voice over [[rand,IP|Internet Protocol]].", "Voz sobre [[rand,IP|Protocolo de Internet]]."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es 'IETF'?", + "rights" : ["Internet Engineering Task Force.", "Grupo de Trabajo de Ingeniería de Internet."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es 'RFC'?", + "rights" : ["Request for Comments.", "Solicitud de Comentarios."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es 'NTP'?", + "rights" : ["Network Time Protocol.", "Protocolo de Tiempo de Red."], + "brothers_are_wrongs" : true + }, { + "question" : "En el ámbito de la Red SARA. ¿Qué significa 'PAS'?", + "rights" : ["Proveedor de Acceso a la Red SARA."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es 'IDS'?", + "rights" : ["Intrusion Detection System.", "Sistema de Detección de Intrusos."], + "brothers_are_wrongs" : true + }] +}, { + "origin" : "KyMAN", + "sources" : [], + "title" : "Redes - Servicios, Protocolos y Métodos - Preguntas", + "group" : "kyman_redes_protocolos", + "queries" : [{ + "question" : "¿Cuál es la función del [[rand,FTP|File Transfer Protocol|Protocolo de Transferencia de Archivos]]?", + "rights" : ["Transferir archivos entre un cliente y un servidor."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es la función del [[rand,HTTP|HyperText Transfer Protocol|Protocolo de Transferencia de Hipertexto]]?", + "rights" : ["Transferir páginas web y otros recursos en la web."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es la función del [[rand,HTTPS|HyperText Transfer Protocol Secure|Protocolo Seguro de Transferencia de Hipertexto]]?", + "rights" : ["Proporcionar una conexión segura para la transferencia de páginas web y otros recursos en la web."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es la función del [[rand,IP|Internet Protocol|Protocolo de Internet]]?", + "rights" : ["Encaminar y direccionar paquetes de datos entre dispositivos en una red."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es la función del [[rand,POP3|Post Office Protocol 3|Protocolo de Oficina de Correos 3]]?", + "rights" : ["Recuperar correos electrónicos desde un servidor de correo al cliente de correo."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es la función del [[rand,SMTP|Simple Mail Transfer Protocol|Protocolo Simple de Transferencia de Correo]]?", + "rights" : ["Enviar correos electrónicos desde un cliente de correo a un servidor de correo o entre servidores de correo."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es la función del [[rand,TCP|Transmission Control Protocol|Protocolo de Control de Transmisión]]?", + "rights" : ["Proporcionar una comunicación fiable y ordenada entre aplicaciones en una red."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es la función del [[rand,UDP|User Datagram Protocol|Protocolo de Datagramas de Usuario]]?", + "rights" : ["Proporcionar una comunicación rápida y sin conexión entre aplicaciones en una red, sin garantizar la entrega ni el orden de los paquetes."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es la función del [[rand,DNS|Domain Name System|Sistema de Nombres de Dominio]]?", + "rights" : ["Resolver nombres de dominio en direcciones IP para facilitar la localización de recursos en una red."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es la función del [[rand,DHCP|Dynamic Host Configuration Protocol|Protocolo de Configuración Dinámica de Host]]?", + "rights" : ["Asignar automáticamente direcciones IP y otros parámetros de configuración de red a dispositivos en una red."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es la función del [[rand,SSH|Secure Shell|Shell Seguro]]?", + "rights" : ["Proporcionar una conexión segura y cifrada para la administración remota de sistemas y la transferencia de archivos."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es la función del [[rand,SSL|Secure Sockets Layer|Capa de Conexión Segura]]?", + "rights" : ["Proporcionar una capa de seguridad para las comunicaciones en red mediante el cifrado de datos."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es la función del [[rand,TLS|Transport Layer Security|Seguridad en la Capa de Transporte]]?", + "rights" : [ + "Proporcionar una capa de seguridad mejorada para las comunicaciones en red mediante el cifrado de datos y la autenticación.", + "Proporcionar una capa de seguridad mejorada para las comunicaciones en red mediante el cifrado de datos y la verificación de la identidad de los participantes." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es la función del [[rand,STP|Spanning Tree Protocol|Protocolo de Árbol de Expansión]]?", + "rights" : ["Prevenir bucles de red en topologías de red conmutadas mediante la creación de una estructura de árbol."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es la función del [[rand,EUI-64|Extended Unique Identifier 64|Identificador Único Ampliado 64]]?", + "rights" : [ + "Generar identificadores únicos de 64 bits para interfaces de red a partir de direcciones MAC de 48 bits, para direcciones IPv6.", + "Generar identificadores únicos de red a partir de direcciones MAC, insertando 'FFFE' en el medio, para direcciones IPv6." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es la función del [[rand,CIDR|Classless Inter-Domain Routing|Enrutamiento Inter-Dominio Sin Clases]]?", + "rights" : [ + "Permitir una asignación más flexible y eficiente de direcciones IP mediante el uso de prefijos de longitud variable.", + "Permitir una asignación más eficiente de direcciones IP mediante la eliminación de las clases de red tradicionales." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es la función del [[rand,NAT|Network Address Translation|Traducción de Direcciones de Red]]?", + "rights" : [ + "Permitir que múltiples dispositivos en una red local compartan una única dirección IP pública para acceder a Internet.", + "Modificar las direcciones IP en los paquetes de datos para facilitar la comunicación entre redes con diferentes esquemas de direccionamiento." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es la función del [[rand,ARP|Address Resolution Protocol|Protocolo de Resolución de Direcciones]]?", + "rights" : ["Resolver direcciones IP en direcciones MAC para facilitar la comunicación en redes locales."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es la función del [[rand,RARP|Reverse Address Resolution Protocol|Protocolo de Resolución Inversa de Direcciones]]?", + "rights" : ["Resolver direcciones MAC en direcciones IP, aunque su uso es limitado y ha sido reemplazado en gran medida por DHCP."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es la función del [[rand,ICMP|Internet Control Message Protocol|Protocolo de Mensajes de Control de Internet]]?", + "rights" : ["Enviar mensajes de control y error entre dispositivos en una red para diagnosticar y gestionar problemas de comunicación."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es la función del [[rand,IGMP|Internet Group Management Protocol|Protocolo de Gestión de Grupos de Internet]]?", + "rights" : ["Gestionar la membresía de dispositivos en grupos multicast en una red IPv4."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es la función del [[rand,SLAAC|Stateless Address Autoconfiguration|Autoconfiguración de Direcciones Sin Estado]]?", + "rights" : ["Permitir que los dispositivos configuren automáticamente sus propias direcciones IPv6 sin necesidad de un servidor DHCP."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es la función del [[rand,DHCPv6|Dynamic Host Configuration Protocol for IPv6|Protocolo de Configuración Dinámica de Host para IPv6]]?", + "rights" : ["Asignar automáticamente direcciones IPv6 y otros parámetros de configuración de red a dispositivos en una red IPv6."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es la función del [[rand,MPLS|Multiprotocol Label Switching|Conmutación de Etiquetas Multiprotocolo]]?", + "rights" : ["Mejorar la eficiencia y velocidad del enrutamiento de paquetes en redes mediante el uso de etiquetas en lugar de direcciones IP."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es la función del [[rand,VLAN|Virtual Local Area Network|Red de Área Local Virtual]]?", + "rights" : ["Segmentar una red física en múltiples redes lógicas para mejorar la seguridad y la gestión del tráfico."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es la función del [[rand,VPN|Virtual Private Network|Red Privada Virtual]]?", + "rights" : ["Proporcionar una conexión segura y cifrada a través de una red pública, como Internet, para acceder a recursos de una red privada."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es la función del [[rand,QoS|Quality of Service|Calidad de Servicio]]?", + "rights" : ["Priorizar ciertos tipos de tráfico de red para garantizar un rendimiento adecuado para aplicaciones críticas."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es la función del [[rand,WPA2|Wi-Fi Protected Access 2|Acceso Protegido Wi-Fi 2]]?", + "rights" : ["Proporcionar seguridad mejorada para redes Wi-Fi mediante el uso de cifrado avanzado."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es la función del [[rand,WPA3|Wi-Fi Protected Access 3|Acceso Protegido Wi-Fi 3]]?", + "rights" : ["Proporcionar la última generación de seguridad para redes Wi-Fi con mejoras en el cifrado y la protección contra ataques."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es la función del [[rand,WEP|Wired Equivalent Privacy|Privacidad Equivalente a Cableado]]?", + "rights" : ["Proporcionar una capa básica de seguridad para redes Wi-Fi, aunque es considerado inseguro y obsoleto."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es la función del [[rand,SSID|Service Set Identifier|Identificador de Conjunto de Servicios]]?", + "rights" : ["Identificar una red Wi-Fi específica para que los dispositivos puedan conectarse a ella."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es la función del [[rand,ISP|Internet Service Provider|Proveedor de Servicios de Internet]]?", + "rights" : ["Proporcionar acceso a Internet y otros servicios relacionados a los usuarios y empresas."], + "brothers_are_wrongs" : true + }] +}, { + "origin" : "KyMAN", + "sources" : [], + "title" : "Redes - Servicios, Protocolos y Métodos - OSI", + "group" : "kyman_redes_protocolos", + "queries" : [{ + "question" : [ + "¿En qué capa del modelo OSI opera el [[rand,STP|Spanning Tree Protocol|Protocolo de Árbol de Expansión]]?", + "¿En qué capa del modelo OSI opera el [[rand,ARP|Address Resolution Protocol|Protocolo de Resolución de Direcciones]]?", + "¿En qué capa del modelo OSI opera el [[rand,RARP|Reverse Address Resolution Protocol|Protocolo de Resolución Inversa de Direcciones]]?" + ], + "rights" : ["Capa de Enlace de Datos", "Capa de Enlace", "Capa 2"], + "brothers_are_wrongs" : true + }, { + "question" : [ + "¿En qué capa del modelo OSI opera [[rand,la IP|el Internet Protocol|el Protocolo de Internet]]?", + "¿En qué capa del modelo OSI opera el [[rand,ICMP|Internet Control Message Protocol|Protocolo de Mensajes de Control de Internet]]?", + "¿En qué capa del modelo OSI opera el [[rand,IGMP|Internet Group Management Protocol|Protocolo de Gestión de Grupos de Internet]]?", + "¿En qué capa del modelo OSI opera el [[rand,SLAAC|Stateless Address Autoconfiguration|Autoconfiguración de Direcciones Sin Estado]]?", + "¿En qué capa del modelo OSI opera el [[rand,NAT|Network Address Translation|Traducción de Direcciones de Red]]?", + "¿En qué capa del modelo OSI opera el [[rand,MPLS|Multiprotocol Label Switching|Conmutación de Etiquetas Multiprotocolo]]?", + "¿En qué capa del modelo OSI opera el [[rand,VLAN|Virtual Local Area Network|Red de Área Local Virtual]]?" + ], + "rights" : ["Capa de Red", "Capa 3"], + "brothers_are_wrongs" : true + }, { + "question" : [ + "¿En qué capa del modelo OSI opera el [[rand,TCP|Transmission Control Protocol|Protocolo de Control de Transmisión]]", + "¿En qué capa del modelo OSI opera el [[rand,UDP|User Datagram Protocol|Protocolo de Datagramas de Usuario]]?", + "¿En qué capa del modelo OSI opera el [[rand,QoS|Quality of Service|Calidad de Servicio]]?" + ], + "rights" : ["Capa de Transporte", "Capa 4"], + "brothers_are_wrongs" : true + }, { + "question" : [ + "¿En qué capa del modelo OSI opera el protocolo SSL/TLS?", + "¿En qué capa del modelo OSI opera el [[rand,SSL|Secure Sockets Layer|Capa de Conexión Segura]]?", + "¿En qué capa del modelo OSI opera el [[rand,TLS|Transport Layer Security|Seguridad en la Capa de Transporte]]?", + "¿En qué capa del modelo OSI opera el [[rand,SSH|Secure Shell|Capa de Aplicación]]?", + "¿En qué capa del modelo OSI opera el [[rand,DHCP|Dynamic Host Configuration Protocol|Capa de Aplicación]]?", + "¿En qué capa del modelo OSI opera el [[rand,DNS|Domain Name System|Capa de Aplicación]]?", + "¿En qué capa del modelo OSI opera el [[rand,POP3|Post Office Protocol 3|Capa de Aplicación]]?", + "¿En qué capa del modelo OSI opera el [[rand,FTP|File Transfer Protocol|Capa de Aplicación]]?", + "¿En qué capa del modelo OSI opera el [[rand,HTTP|Hypertext Transfer Protocol|Capa de Aplicación]]?" + ], + "rights" : ["Capa de Aplicación", "Capa 7"], + "brothers_are_wrongs" : true + }] +}, { + "origin" : "KyMAN", + "sources" : [], + "title" : "Redes - Servicios, Protocolos y Métodos - Programas", + "group" : "kyman_redes_protocolos", + "queries" : [{ + "question" : "¿Qué programas son para gestionar un servidor [[rand,FTP|File Transfer Protocol|Protocolo de Transferencia de Archivos]]?", + "rights" : ["FileZilla", "vsftpd", "ProFTPD", "Pure-FTPd", "WinSCP", "ftpd"], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué programas son para gestionar un servidor [[rand,DNS|Domain Name System|Sistema de Nombres de Dominio]]?", + "rights" : ["BIND", "dnsmasq", "PowerDNS", "Unbound", "Knot DNS"], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué programas son para gestionar un servidor [[rand,SMTP|Simple Mail Transfer Protocol|Protocolo Simple de Transferencia de Correo]]?", + "rights" : ["Postfix", "Exim", "Sendmail", "qmail", "Courier Mail Server"], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué programas son para gestionar un servidor [[rand,SSH|Secure Shell|Shell Seguro]]?", + "rights" : ["OpenSSH", "PuTTY", "Bitvise SSH Server", "MobaXterm", "WinSCP"], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué programas son para gestionar un servidor [[rand,DHCP|Dynamic Host Configuration Protocol|Protocolo de Configuración Dinámica de Host]]?", + "rights" : ["ISC DHCP Server", "dnsmasq", "Kea DHCP", "DHCPD", "Pump"], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué programas son para gestionar un servidor [[rand,HTTP|HyperText Transfer Protocol|Protocolo de Transferencia de Hipertexto]]?", + "rights" : ["Apache HTTP Server", "Nginx", "Microsoft Internet Information Services (IIS)", "LiteSpeed Web Server", "Caddy"], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué programas son para gestionar un servidor [[rand,HTTPS|HyperText Transfer Protocol Secure|Protocolo Seguro de Transferencia de Hipertexto]]?", + "rights" : ["Apache HTTP Server con mod_ssl", "Nginx con OpenSSL", "Microsoft Internet Information Services (IIS) con SSL", "LiteSpeed Web Server con SSL", "Caddy con soporte HTTPS integrado"], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué programas son para gestionar un servidor [[rand,POP3|Post Office Protocol version 3|Protocolo de Oficina de Correos versión 3]]?", + "rights" : ["Dovecot", "Courier-IMAP", "Cyrus IMAP", "Qpopper", "MailEnable"], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué programas son para gestionar un servidor [[rand,STP|Spanning Tree Protocol|Protocolo de Árbol de Expansión]]?", + "rights" : ["Bridge Utilities (brctl)", "Open vSwitch", "mstpd (Multiple Spanning Tree Protocol Daemon)", "Spanning Tree Protocol Daemon (stpd)", "Rapid Spanning Tree Protocol (RSTP) implementations"], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué programas son para gestionar un servidor [[rand,NAT|Network Address Translation|Traducción de Direcciones de Red]]?", + "rights" : ["iptables", "pf (Packet Filter)", "NAT64", "NAT46", "Cisco IOS NAT"], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué programas son para gestionar un servidor [[rand,VPN|Virtual Private Network|Red Privada Virtual]]?", + "rights" : ["OpenVPN", "WireGuard", "IPsec (StrongSwan, Libreswan)", "PPTP (Point-to-Point Tunneling Protocol)", "SoftEther VPN"], + "brothers_are_wrongs" : true + }] +}, { + "origin" : "KyMAN", + "sources" : [], + "title" : "Redes - Servicios, Protocolos y Métodos - Ventajas", + "group" : "kyman_redes_protocolos", + "queries" : [{ + "question" : "¿Qué ventaja tiene IPv4?", + "rights" : [ + "Amplia compatibilidad y soporte en la mayoría de los dispositivos y redes.", + "Simplicidad en la configuración y gestión.", + "Menor tamaño de encabezado en comparación con IPv6." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué ventaja tiene IPv6?", + "rights" : [ + "Mayor espacio de direcciones con direcciones de 128 bits.", + "Mejoras en la seguridad y privacidad con IPsec obligatorio.", + "Soporte nativo para la autoconfiguración y movilidad." + ], + "brothers_are_wrongs" : true + }] +}, { + "origin" : "KyMAN", + "sources" : [], + "title" : "Redes - Servicios, Protocolos y Métodos - Desventajas", + "group" : "kyman_redes_protocolos", + "queries" : [{ + "question" : "¿Qué desventaja tiene IPv4?", + "rights" : [ + "Limitaciones en el espacio de direcciones.", + "Falta de características de seguridad integradas.", + "Dificultades para la autoconfiguración." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué desventaja tiene IPv6?", + "rights" : [ + "Complejidad en la configuración y gestión.", + "Incompatibilidad con IPv4.", + "Mayor tamaño de encabezado en comparación con IPv4." + ], + "brothers_are_wrongs" : true + }] +}] \ No newline at end of file diff --git a/Public/json/kyman/especifico/kyman.00.redes.03.ieee-802.json b/Public/json/kyman/especifico/kyman.00.redes.03.ieee-802.json new file mode 100644 index 0000000..d578d5b --- /dev/null +++ b/Public/json/kyman/especifico/kyman.00.redes.03.ieee-802.json @@ -0,0 +1,134 @@ +[{ + "origin" : "KyMAN", + "sources" : [], + "title" : "Redes - IEEE 802", + "group" : "kyman_redes_ieee_802", + "queries" : [{ + "question" : "¿Cuál es el estándar IEEE 802?", + "rights" : ["Un conjunto de estándares desarrollados para redes de área local (LAN) y redes de área metropolitana (MAN)."], + "wrongs" : [ + "Un protocolo de comunicación utilizado en redes de área amplia (WAN).", + "Un estándar para la transmisión de datos a través de redes inalámbricas (Wi-Fi).", + "Un conjunto de reglas para la seguridad en redes informáticas." + ], + "brothers_are_wrongs" : true + }] +}, { + "origin" : "KyMAN", + "sources" : [], + "title" : "Redes - IEEE 802 - Significados", + "group" : "kyman_redes_ieee_802", + "queries" : [{ + "question" : [ + "¿Cuál es el estándar que define las capas física y de enlace del modelo OSI?", + "¿Cuál es el estándar para la gestión de redes y la interoperabilidad entre diferentes tipos de redes?" + ], + "rights" : ["IEEE 802.1"], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es el estándar para la gestión y etiquetados de VLAN en redes Ethernet?", + "rights" : ["IEEE 802.1Q"], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es el estándar que define la [[rand,LLC|Logical Link Control|Capa de Enlace Lógico]] en redes de área local?", + "rights" : ["IEEE 802.2", "dot1Q"], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es el estándar que define el [[rand,STP|Spanning Tree Protocol|Protocolo de Árbol de Expansión]]?", + "rights" : ["IEEE 802.1D"], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es el estándar de [[rand,la tecnología 10Base5|la topología Bus|Coaxial grueso de hasta 500m a 10Mbits/s]]?", + "rights" : ["IEEE 802.3"], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es el estándar de [[rand,la tecnología 10Base2|la topología Bus|Coaxial fino de hasta 185m a 10Mbits/s]]?", + "rights" : ["IEEE 802.3a"], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es el estándar de [[rand,la tecnología 10BaseT|Par trenzado de hasta 100m a 10Mbits/s]]?", + "rights" : ["IEEE 802.3i"], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es el estándar de [[rand,la tecnología 100BaseTX|la tecnología 100BaseT4|la tecnología 100BaseFX|Par trenzado de hasta 100m a 100Mbits/s]]?", + "rights" : ["IEEE 802.3u"], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es el estándar de [[rand,la tecnología 1000BaseT|Par trenzado de hasta 100m a 1Gbits/s]]?", + "rights" : ["IEEE 802.3ab"], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es el estándar de [[rand,la tecnología 10GBaseT|Par trenzado de hasta 100m a 10Gbits/s]]?", + "rights" : ["IEEE 802.3an"], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es el estándar de [[rand,la tecnología 10GBaseSR|la tecnología 10GBaseLR|Fibra óptica multimodo de hasta 400m a 10Gbits/s|Fibra óptica monomodo de hasta 10km a 10Gbits/s]]?", + "rights" : ["IEEE 802.3ae"], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es el estándar de [[rand,la tecnología 40GBaseLR4|Fibra óptica monomodo de hasta 10km a 40Gbits/s]]?", + "rights" : ["IEEE 802.3ba"], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es el estándar de la arquitectura Token Ring?", + "rights" : ["IEEE 802.5"], + "brothers_are_wrongs" : true + }] +}, { + "origin" : "KyMAN", + "sources" : [], + "title" : "Redes - IEEE 802 - Selección", + "group" : "kyman_redes_ieee_802", + "queries" : [{ + "question" : "¿Qué significa IEEE 802.1?", + "rights" : ["Estándar para la gestión de redes y la interoperabilidad entre diferentes tecnologías de red."], + "wrongs" : [ + "Estándar para la transmisión de datos en redes de área local (LAN).", + "Estándar para la comunicación en redes de área amplia (WAN).", + "Estándar para la seguridad en redes inalámbricas." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿A qué hace referencia el estándar IEEE 802.5?", + "rights" : ["Token Ring"], + "brothers_are_wrongs" : true + }] +}, { + "origin" : "KyMAN", + "sources" : [], + "title" : "Redes - IEEE 802 - Tecnologías", + "group" : "kyman_redes_ieee_802", + "queries" : [{ + "question" : "¿Qué tecnología está definida por el estándar IEEE 802.3?", + "rights" : ["10Base5", "Coaxial Grueso hasta 550m a 10Mbits/s"], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué tecnología está definida por el estándar IEEE 802.3a?", + "rights" : ["10Base2", "Coaxial Fino hasta 185m a 10Mbits/s"], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué tecnología está definida por el estándar IEEE 802.3i?", + "rights" : ["10BaseT", "Par trenzado de hasta 100m a 10Mbits/s"], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué tecnología está definida por el estándar IEEE 802.3u?", + "rights" : ["100BaseTX", "100BaseT4", "100BaseFX", "Par trenzado de hasta 100m a 100Mbits/s"], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué tecnología está definida por el estándar IEEE 802.3ab?", + "rights" : ["1000BaseT", "Par trenzado de hasta 100m a 1Gbits/s"], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué tecnología está definida por el estándar IEEE 802.3an?", + "rights" : ["10GBaseT", "Par trenzado de hasta 100m a 10Gbits/s"], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué tecnología está definida por el estándar IEEE 802.3ae?", + "rights" : ["10GBaseSR", "10GBaseLR", "Fibra óptica multimodo de hasta 400m a 10Gbits/s", "Fibra óptica monomodo de hasta 10km a 10Gbits/s"], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué tecnología está definida por el estándar IEEE 802.3ba?", + "rights" : ["40GBaseLR4", "Fibra óptica monomodo de hasta 10km a 40Gbits/s"], + "brothers_are_wrongs" : true + }] +}] \ No newline at end of file diff --git a/Public/json/kyman/especifico/kyman.00.redes.04.ipv4.json b/Public/json/kyman/especifico/kyman.00.redes.04.ipv4.json new file mode 100644 index 0000000..0f72e94 --- /dev/null +++ b/Public/json/kyman/especifico/kyman.00.redes.04.ipv4.json @@ -0,0 +1,317 @@ +[{ + "origin" : "KyMAN", + "sources" : [], + "title" : "Redes - IPv4", + "group" : "kyman_redes_ipv4", + "queries" : [{ + "question" : "¿Qué es una subred?", + "rights" : ["Una subdivisión lógica de una red IP más grande."], + "wrongs" : ["Una red IP que utiliza direcciones privadas.", "Una red IP que utiliza direcciones públicas.", "Una red IP que utiliza direcciones estáticas."] + }, { + "question" : "¿Qué es una superred?", + "rights" : ["Una combinación de varias redes IP más pequeñas en una red IP más grande."], + "wrongs" : ["Una red IP que utiliza direcciones privadas.", "Una red IP que utiliza direcciones públicas.", "Una red IP que utiliza direcciones estáticas."] + }, { + "question" : "¿Qué es la Máscara de Red?", + "rights" : ["Un número que define el tamaño de una red IP."], + "wrongs" : ["Una dirección IP que se utiliza para identificar un dispositivo en una red.", "Un protocolo de comunicación utilizado en redes IP.", "Un tipo de dirección IP que se utiliza para la comunicación entre redes."] + }, { + "question" : "¿Cuál es la parte de Host de una dirección IP?", + "rights" : ["La parte de una dirección IP que identifica a un dispositivo específico dentro de una red."], + "wrongs" : ["La parte de una dirección IP que identifica a una red específica.", "La parte de una dirección IP que se utiliza para la comunicación entre redes.", "La parte de una dirección IP que se utiliza para identificar un protocolo de comunicación."] + }, { + "question" : "¿Cuál es la parte de Red de una dirección IP?", + "rights" : ["La parte de una dirección IP que identifica a una red específica."], + "wrongs" : ["La parte de una dirección IP que identifica a un dispositivo específico dentro de una red.", "La parte de una dirección IP que se utiliza para la comunicación entre redes.", "La parte de una dirección IP que se utiliza para identificar un protocolo de comunicación."] + }, { + "question" : "¿Cuáles son las direcciones IP que representan [[rand,el Broadcast|la difusión|]] y la Red en una subred?", + "rights" : ["La dirección IP de Broadcast es la última dirección de la subred y la dirección de Red es la primera."], + "wrongs" : ["La dirección IP de Broadcast es la primera dirección de la subred y la dirección de Red es la última.", "Ambas direcciones son las mismas.", "La dirección de Broadcast es la dirección de un dispositivo específico."] + }, { + "question" : "¿Cuáles son las direcciones IP que representan la red a la que pertenecen?", + "rights" : ["La dirección IP de Red es la primera dirección de la subred."], + "wrongs" : ["La dirección IP de Red es la última dirección de la subred.", "Ambas direcciones son las mismas.", "La dirección de Red es la dirección de un dispositivo específico."] + }, { + "question" : "¿Cuáles son las direcciones IP que representan el Broadcast?", + "rights" : ["La dirección IP de Broadcast es la última dirección de la subred."], + "wrongs" : ["La dirección IP de Broadcast es la primera dirección de la subred.", "Ambas direcciones son las mismas.", "La dirección de Broadcast es la dirección de un dispositivo específico."] + }, { + "question" : "¿Qué es IPv4?", + "rights" : ["IPv4 es la cuarta versión del Protocolo de Internet, que utiliza direcciones de 32 bits."], + "wrongs" : ["IPv4 es la primera versión del Protocolo de Internet.", "IPv4 utiliza direcciones de 64 bits.", "IPv4 es un protocolo de red de área local."] + }] +}, { + "origin" : "KyMAN", + "sources" : [], + "title" : "Redes - IPv4 - Clases", + "group" : "kyman_redes_ipv4", + "queries" : [{ + "question" : "¿Qué es una red de clase A?", + "rights" : [ + "Una red IP que utiliza la primera dirección IP en el rango de 1.0.0.0 a 126.255.255.255.", + "Una red IP cuya máscara de red es [[rand,255.0.0.0|de 8 Bits|de 1 Byte]].", + "Una red IP cuyo Host es de [[rand,24 Bits|3 Bytes]]." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es una red de clase B?", + "rights" : [ + "Una red IP que utiliza la primera dirección IP en el rango de 128.0.0.0 a 191.255.255.255.", + "Una red IP cuya máscara de red es [[rand,255.255.0.0|de 16 Bits|de 2 Bytes]].", + "Una red IP cuyo Host es de [[rand,16 Bits|2 Bytes]]." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es una red de clase C?", + "rights" : [ + "Una red IP que utiliza la primera dirección IP en el rango de 192.0.0.0 a 223.255.255.255.", + "Una red IP cuya máscara de red es [[rand,255.255.255.0|de 24 Bits|de 3 Bytes]].", + "Una red IP cuyo Host es de [[rand,8 Bits|1 Byte]]." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es una red de clase D?", + "rights" : [ + "Una red IP que utiliza la primera dirección IP en el rango de 224.0.0.0 a 239.255.255.255.", + "Es una red IP utilizada para el tráfico [[rand,multicast|de multidifusión]]." + ], + "wrongs" : [ + "Es una red IP utilizada para el tráfico [[rand,unicast|de unidifusión|punto a punto]].", + "Una red IP cuya máscara de red es [[rand,63.255.255.255|de 28 Bits|de 3,5 Bytes]].", + "Una red IP cuyo Host es de [[rand,4 Bits|0,5 Bytes]]." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es una red de clase E?", + "rights" : [ + "Una red IP que utiliza la primera dirección IP en el rango de 240.0.0.0 a 255.255.255.255.", + "Una red reservada para uso [[mix,o,futuro|de investigación|experimental]]." + ], + "wrongs" : [ + "Es una red IP utilizada para el tráfico [[rand,unicast|de unidifusión|punto a punto]].", + "Una red IP cuya máscara de red es [[rand,31.255.255.255|de 29 Bits|de 3,625 Bytes]].", + "Una red IP cuyo Host es de [[rand,3 Bits|0,275 Bytes]]." + ], + "brothers_are_wrongs" : true + }] +}, { + "origin" : "KyMAN", + "sources" : [], + "title" : "Redes - IPv4 - Rangos", + "group" : "kyman_redes_ipv4", + "queries" : [{ + "question" : "¿Cuál es el rango de direcciones IP para una red de clase A?", + "rights" : ["De 1.0.0.0 a 126.255.255.255."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es el rango de direcciones IP para una red de clase B?", + "rights" : ["De 128.0.0.0 a 191.255.255.255."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es el rango de direcciones IP para una red de clase C?", + "rights" : ["De 192.0.0.0 a 223.255.255.255."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es el rango de direcciones IP para una red de clase D?", + "rights" : ["De 224.0.0.0 a 239.255.255.255."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es el rango de direcciones IP para una red de clase E?", + "rights" : ["De 240.0.0.0 a 255.255.255.255."], + "brothers_are_wrongs" : true + }] +}, { + "origin" : "KyMAN", + "sources" : [], + "title" : "Redes - IPv4 - Bytes", + "group" : "kyman_redes_ipv4", + "queries" : [{ + "question" : "¿Cuántos Bytes de máscara tiene una dirección IP de clase A?", + "rights" : ["1 Byte."], + "wrongs" : ["Ninguno.", "[[range,4-32]] Bytes."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuántos Bytes de máscara tiene una dirección IP de clase B?", + "rights" : ["2 Bytes."], + "wrongs" : ["Ninguno.", "[[range,4-32]] Bytes."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuántos Bytes de máscara tiene una dirección IP de clase C?", + "rights" : ["3 Bytes."], + "wrongs" : ["Ninguno.", "[[range,4-32]] Bytes."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuántos Bytes de Host tiene una dirección IP de clase A?", + "rights" : ["3 Bytes."], + "wrongs" : ["Ninguno.", "[[range,4-32]] Bytes."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuántos Bytes de Host tiene una dirección IP de clase B?", + "rights" : ["2 Bytes."], + "wrongs" : ["Ninguno.", "[[range,4-32]] Bytes."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuántos Bytes de Host tiene una dirección IP de clase C?", + "rights" : ["1 Byte."], + "wrongs" : ["Ninguno.", "[[range,4-32]] Bytes."], + "brothers_are_wrongs" : true + }] +}, { + "origin" : "KyMAN", + "sources" : [], + "title" : "Redes - IPv4 - Bits", + "group" : "kyman_redes_ipv4", + "queries" : [{ + "question" : "¿Cuántos Bits de máscara tiene una dirección IP de clase A?", + "rights" : ["8 bits."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuántos Bits de máscara tiene una dirección IP de clase B?", + "rights" : ["16 bits."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuántos Bits de máscara tiene una dirección IP de clase C?", + "rights" : ["24 bits."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuántos Bits de máscara tiene una dirección IP de clase D?", + "rights" : ["No tiene."], + "wrongs" : ["[[rand,28|29]] bits."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuántos Bits de máscara tiene una dirección IP de clase E?", + "rights" : ["No tiene."], + "wrongs" : ["[[rand,28|29]] bits."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuántos Bits de Host tiene una dirección IP de clase A?", + "rights" : ["24 bits."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuántos Bits de Host tiene una dirección IP de clase B?", + "rights" : ["16 bits."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuántos Bits de Host tiene una dirección IP de clase C?", + "rights" : ["8 bits."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuántos Bits de Host tiene una dirección IP de clase D?", + "rights" : ["4 Bits."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuántos Bits de Host tiene una dirección IP de clase E?", + "rights" : ["3 Bits."], + "brothers_are_wrongs" : true + }] +}, { + "origin" : "KyMAN", + "sources" : [], + "title" : "Redes - IPv4 - IPs reservadas - Rangos", + "group" : "kyman_redes_ipv4", + "queries" : [{ + "question" : "¿Qué rango de IPs sólo pueden ser usadas como dirección de origen?", + "rights" : ["De 0.0.0.0 a 0.255.255.255.", "Las 0.0.0.0/8."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué rango de IPs entrarían dentro de una red privada de clase A?", + "rights" : ["De 10.0.0.0 a 10.255.255.255.", "Las 10.0.0.0/8."], + "brothers_are_wrongs" : true + }, { + "question" : "¿En qué rango de IPs están reservadas como [[rand,Espacio de Direccion Compartido|Shared Address Space]] en una NAT que comunica proveedores de servicios con subscritores?", + "rights" : ["De 100.64.0.0 a 100.127.255.255.", "Las 100.64.0.0/10."], + "brothers_are_wrongs" : true + }, { + "question" : [ + "¿En qué rango de IPs se reservan las direcciones de loopback?", + "¿Qué rango de direcciones se reservan para el Host local?" + ], + "rights" : ["De 127.0.0.0 a 127.255.255.255.", "Las 127.0.0.0/8."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué rango de IPs tienen las [[rand,direcciones APIPA|Automatic Private IP Addressing|Direcciones IP Privadas Automáticas]]?", + "rights" : ["De 169.254.0.0 a 169.254.255.255.", "Las 169.254.0.0/16."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué rango de IPs entrarían dentro de una red privada de clase B?", + "rights" : ["De 172.16.0.0 a 172.31.255.255.", "Las 172.16.0.0/12."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué rango de IPs entrarían dentro de una red privada de clase C?", + "rights" : ["De 192.168.0.0 a 192.168.255.255.", "Las 192.168.0.0/16."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué rango de IPs están reservadas para la documentación y ejemplos?", + "rights" : [ + "De 192.0.2.0 a 192.0.2.255.", "Las 192.0.2.0/24.", + "De 198.51.100.0 a 198.51.100.255.", "Las 198.51.100.0/24.", + "De 203.0.113.0 a 203.0.113.255.", "Las 203.0.113.0/24." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué rango de IPs se usa para [[rand,la clase D|Multicast|Multidifusión|Difusión Múltiple]] en Internet?", + "rights" : ["De 224.0.0.0 a 239.255.255.255.", "Las 224.0.0.0/4."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué rango de IPs está reservado para [[rand,usos futuros o experimentales|usos futuros]]?", + "rights" : ["De 240.0.0.0 a 255.255.255.255.", "Las 240.0.0.0/4."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué rango de IPs está reservado para destinos de [[rand,Broadcast|difusión|multidifusión]]?", + "rights" : ["Sólo la 255.255.255.255.", "La 255.255.255.255/32."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué rangos de IPs son de caracter privado y no son enrutables en Internet?", + "rights" : [ + "De 10.0.0.0 a 10.255.255.255.", "Las 10.0.0.0/8.", + "De 100.64.0.0 a 100.127.255.255.", "Las 100.64.0.0/10.", + "De 172.16.0.0 a 172.31.255.255.", "Las 172.16.0.0/12.", + "De 192.0.0.0 a 192.255.255.255.", "Las 192.0.0.0/24.", + "De 192.168.0.0 a 192.168.255.255.", "Las 192.168.0.0/16.", + "De 192.18.0.0 a 192.19.255.255.", "Las 192.18.0.0/15." + ] + }, { + "question" : "¿Qué rango de IPs está reservado para Internet de uso especial?", + "rights" : [ + "De 192.88.99.0 a 192.88.99.255.", "Las 192.88.99.0/24.", + "De 240.0.0.0 a 255.255.255.255.", "Las 240.0.0.0/4.", + "De 224.0.0.0 a 239.255.255.255.", "Las 224.0.0.0/4." + ], + "brothers_are_wrongs" : true + }] +}, { + "origin" : "KyMAN", + "sources" : [], + "title" : "Redes - IPv4 - IPs reservadas - Número", + "group" : "kyman_redes_ipv4", + "queries" : [{ + "question" : "¿Cuántas direcciones IPs tiene una red [[rand,privada de clase A|de clase A|para direcciones de origen|para Loopback|para Hosts]]?", + "rights" : ["[[rand,16.777.216|2^24]] direcciones."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuántas direcciones IPs tiene una red [[rand,privada de clase C|de clase B|de direcciones APIPA|de Automatic Private IP Addressing|de Direcciones IP Privadas Automáticas]]?", + "rights" : ["[[rand,65.536|2^16]] direcciones."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuántas direcciones IPs tiene una red [[rand,de clase C|para documentación y ejemplos]]?", + "rights" : ["[[rand,256|2^8]] direcciones."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuántas direcciones IPs tiene una red [[rand,de clase D|de clase E|usos futuros o experimentales|usos futuros]]?", + "rights" : ["[[rand,268.435.456|2^28]] direcciones, aunque no son asignables."], + "wrongs" : ["[[rand,268.435.456|2^28]] direcciones."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuántas direcciones IPs tiene una red para el [[rand,Espacio de Direccion Compartido|Shared Address Space]] en una NAT que comunica proveedores de servicios con subscritores", + "rights" : ["[[rand,4.194.304|2^22]] direcciones."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuántas direcciones IPs tiene una red privada de clase B?", + "rights" : ["[[rand,1.048.576|2^20]] direcciones."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuántas direcciones IPs tiene una red reservada para destinos de [[rand,Broadcast|difusión|multidifusión]]?", + "rights" : ["Sólo 1 dirección."], + "brothers_are_wrongs" : true + }] +}] \ No newline at end of file diff --git a/Public/json/kyman/especifico/kyman.00.redes.05.ipv6.json b/Public/json/kyman/especifico/kyman.00.redes.05.ipv6.json new file mode 100644 index 0000000..741cf6f --- /dev/null +++ b/Public/json/kyman/especifico/kyman.00.redes.05.ipv6.json @@ -0,0 +1,450 @@ +[{ + "origin" : "KyMAN", + "sources" : [], + "title" : "Redes - IPv6", + "group" : "kyman_redes_ipv6", + "queries" : [{ + "question" : "¿Cuántas veces puede aparecer '::' en una dirección IPv6 compactada?", + "rights" : ["Solo una vez."], + "wrongs" : ["Puede aparecer múltiples veces.", "No puede aparecer en una dirección IPv6.", "Puede aparecer hasta [[range,2-8]] veces."] + }, { + "question" : "¿Cuántas clases de red existen en IPv6?", + "rights" : ["Ninguna, ya que IPv6 no utiliza clases de red."], + "wrongs" : ["Tres clases: A, B y C.", "Cinco clases: A, B, C, D y E.", "Cuatro clases: A, B, C y D."] + }, { + "question" : "¿Se puede generar una subred definida en IPv6?", + "rights" : [ + "Sí, mediante la configuración del prefijo de subred.", + "Sí, pero rompería la filosofía de IPv6 de tener un espacio de direcciones amplio.", + "Sí, pero inutilizaría la [[rand,SLAAC|Stateless Address Autoconfiguration|Autoconfiguración sin estado]].", + "Sí, pero tendrías problemas con el [[rand,DHCPv6|Dynamic Host Configuration Protocol for IPv6|Protocolo de Configuración Dinámica de Host para IPv6]]." + ], + "wrongs" : [ + "No, las subredes en IPv6 son fijas.", + "Sí, pero solo en redes privadas.", + "No, las subredes en IPv6 se asignan automáticamente.", + "Es fundamental esta práctica en IPv6.", + "Sin problema.", + "Es lo más habitual." + ] + }, { + "question" : "¿Qué es una superred en IPv6?", + "rights" : [ + "Ws una red que abarca múltiples subredes.", + "Permite la agregación de direcciones IP para simplificar la administración de la red." + ], + "wrongs" : [ + "Es una red que utiliza direcciones IPv4.", + "Ws una red única sin subredes.", + "No existe el concepto de superred en IPv6.", + "Es una red que utiliza direcciones MAC." + ] + }, { + "question" : "¿Qué es IPv6?", + "rights" : [ + "La sexta versión del Protocolo de Internet, que utiliza direcciones de 128 bits.", + "La sexta versión del Protocolo de Internet, que utiliza direcciones de 16 bytes." + ], + "wrongs" : [ + "La primera versión del Protocolo de Internet.", + "Utiliza direcciones de 64 bits.", + "Es un protocolo de red de área local.", + "La sexta versión del Protocolo de Internet, que utiliza direcciones de [[rand,32|64|256|512|16]] bits.", + "La sexta versión del Protocolo de Internet, que utiliza direcciones de [[rand,4|8|32|64|2]] bytes." + ] + }, { + "question" : "¿Qué es [[rand,Teredo|Teredo tunneling|Túnel de Teredo]]?", + "rights" : [ + "Es un método para encapsular paquetes IPv6 dentro de paquetes IPv4.", + "Permite la comunicación entre nodos IPv6 a través de una red IPv4." + ], + "wrongs" : [ + "Es un tipo de dirección IPv6.", + "Es un protocolo de enrutamiento para IPv6.", + "Es un método de compresión de direcciones IPv6.", + "Es un mecanismo de transición de IPv4 a IPv6." + ] + }, { + "question" : "¿Qué es 6to4?", + "rights" : [ + "Es un método para encapsular paquetes IPv6 dentro de paquetes IPv4.", + "Permite la comunicación entre nodos IPv6 a través de una red IPv4.", + "Es un mecanismo de transición de IPv4 a IPv6." + ], + "wrongs" : [ + "Es un tipo de dirección IPv6.", + "Es un protocolo de enrutamiento para IPv6.", + "Es un método de compresión de direcciones IPv6." + ] + }] +}, { + "origin" : "KyMAN", + "sources" : [], + "title" : "Redes - IPv6 - Partes", + "group" : "kyman_redes_ipv6", + "queries" : [{ + "question" : "¿Qué es el prefijo de red en una dirección IPv6?", + "rights" : [ + "Son los primeros 64 bits de la dirección.", + "Determinan la red a la que pertenece la dirección." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es el [[rand,sufijo|ID|identificador]] de interfaz en una dirección IPv6?", + "rights" : [ + "Son los últimos 64 bits de la dirección.", + "Identifican de manera única la interfaz en la red.", + "Es la parte que se suele conformar de la MAC de la [[rand,interfaz|tarjeta]] de Red a la que pertenece.", + "Pese a que por defecto es la MAC, puede ser asignada de manera manual o incluso aleatoria por el [[rand,OS|Sistema Operativo]]." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es el prefijo de sitio en una dirección IPv6?", + "rights" : [ + "Son los primeros 48 bits de la dirección.", + "Es la parte que determina el sitio al que pertenece la dirección." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es el [[rand,ID|identificador|prefijo]] de subred en una dirección IPv6?", + "rights" : [ + "Son los Bits comprendidos entre el 49 y el 64 de la dirección.", + "Es la parte que determina la subred a la que pertenece la dirección." + ], + "brothers_are_wrongs" : true + }] +}, { + "origin" : "KyMAN", + "sources" : [], + "title" : "Redes - IPv6 - Definiciones", + "group" : "kyman_redes_ipv6", + "queries" : [{ + "question" : "¿Qué es la notación CIDR en IPv6?", + "rights" : [ + "Es un método para representar direcciones IP y sus máscaras de subred.", + "Se expresa como una dirección IP seguida de una barra y un número que indica la longitud del prefijo." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cómo es la notación completa de una dirección IPv6?", + "rights" : [ + "Consiste en [[rand,8|ocho]] grupos de [[rand,4|cuatro]] [[rand,caracteres|dígitos]] hexadecimales separados por dos puntos.", + "Con [[rand,8|ocho]] grupos de 16 bits cada uno." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es la compresión de ceros en una dirección IPv6?", + "rights" : [ + "Es un método para simplificar la representación de direcciones.", + "Permite omitir ceros a la izquierda de un grupo de dígitos hexadecimales.", + "Consiste en reemplazar secuencias de ceros consecutivos por un doble dos puntos (::)." + ], + "brothers_are_wrongs" : true + }, { + "question" : "En una dirección IPv6 compactada, ¿Qué indica el uso de '::'?", + "rights" : [ + "Indica la omisión de uno o más grupos de ceros consecutivos.", + "Solo puede aparecer una vez en una dirección para evitar ambigüedades." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es una subred en IPv6?", + "rights" : ["Una subdivisión lógica de una red IPv6."], + "brothers_are_wrongs" : true + }] +}, { + "origin" : "KyMAN", + "sources" : [], + "title" : "Redes - IPv6 - Definiciones II", + "group" : "kyman_redes_ipv6", + "queries" : [{ + "question" : "¿Para qué se usa por defecto, en IPv6 la MAC de la [[rand,tarjeta|interfaz]] de red?", + "rights" : [ + "Para conformar el ID de interfaz (los últimos 64 bits) de la dirección IPv6.", + "Para asegurar que cada dispositivo en la red tenga una dirección única." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Si la MAC es única en cada [[rand,tarjeta|interfaz]] de red, qué problema puede surgir al usarla para conformar el ID de interfaz en IPv6?", + "rights" : [ + "Que si se cambia la [[rand,tarjeta|interfaz]] de red, la dirección IPv6 también cambiará.", + "Que puede comprometer la privacidad del usuario al permitir rastrear el dispositivo." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué métodos existen para evitar los problemas de usar la MAC para conformar el ID de interfaz en IPv6?", + "rights" : [ + "Asignar el ID de interfaz de manera manual.", + "Generar el ID de interfaz de manera aleatoria mediante el sistema operativo." + ], + "brothers_are_wrongs" : true + }] +}, { + "origin" : "KyMAN", + "sources" : [], + "title" : "Redes - IPv6 - Bits", + "group" : "kyman_redes_ipv6", + "queries" : [{ + "question" : "¿Cuántos bits tiene una dirección IPv6?", + "rights" : ["128 bits."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuántos Bits tiene el prefijo de red en una dirección IPv6?", + "rights" : ["64 bits."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuántos Bits tiene el ID de interfaz en una dirección IPv6?", + "rights" : ["64 bits."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuántos Bits tiene el prefijo de sitio en una dirección IPv6?", + "rights" : ["48 bits."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuántos Bits tiene el ID de subred en una dirección IPv6?", + "rights" : ["16 bits."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuántos Bits tiene un grupo de una dirección IPv6?", + "rights" : ["16 bits."], + "brothers_are_wrongs" : true + }] +}, { + "origin" : "KyMAN", + "sources" : [], + "title" : "Redes - IPv6 - Bytes", + "group" : "kyman_redes_ipv6", + "queries" : [{ + "question" : "¿Cuántos bytes tiene una dirección IPv6?", + "rights" : ["16 bytes."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuántos bytes tiene el prefijo de red en una dirección IPv6?", + "rights" : ["8 bytes."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuántos bytes tiene el ID de interfaz en una dirección IPv6?", + "rights" : ["8 bytes."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuántos bytes tiene el prefijo de sitio en una dirección IPv6?", + "rights" : ["6 bytes."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuántos bytes tiene el ID de subred en una dirección IPv6?", + "rights" : ["2 bytes."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuántos bytes tiene un grupo de una dirección IPv6?", + "rights" : ["2 bytes."], + "brothers_are_wrongs" : true + }] +}, { + "origin" : "KyMAN", + "sources" : [], + "title" : "Redes - IPv6 - Rangos de Subredes y Superredes", + "group" : "kyman_redes_ipv6", + "queries" : [{ + "question" : "Qué rango de [[rand,direcciones de subred|prefijos de red]] están establecidos por el prefijo destinados a usos específicos y controlados y no generales?", + "rights" : ["Del /65 al /127."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué rango de [[rand,direcciones de subred|prefijos de red]] están establecidos por el prefijo destinados a usos generales?", + "rights" : ["Del /0 al /64."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué rango de [[rand,direcciones de subred|prefijos de red]] están destinados para la asignación de un sitio o cliente por parte del [[rand,ISP|Proveedor de Servicios de Internet]]?", + "rights" : ["Del /48 al /64."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué rango de [[rand,direcciones de subred|prefijos de red]] es para determinar el tamaño de subred universal?", + "rights" : ["El /64."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué rango de [[rand,direcciones de subred|prefijos de red]] tiene el tamaño estándar para una organización o sitio desde un [[rand,ISP|Proveedor de Servicios de Internet]]?", + "rights" : ["El /48."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué rango de [[rand,direcciones de subred|prefijos de red]] es la más común para asignar a [[rand,clientes residenciales|pequeñas empresas]] en IPv6 desde un [[rand,ISP|Proveedor de Servicios de Internet]]?", + "rights" : ["El /56."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué rango de [[rand,direcciones de subred|prefijos de red]] es recomendado específicamente para enlaces punto a punto?", + "rights" : ["El /127."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué rango de direcciones de superred está reservado para la asignación global?", + "rights" : ["Del /0 al /47."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué rango de [[rand,direcciones de subred|prefijos de red]] está reservado [[rand,a identificar un dispositivo específico|al equivalente de la red de Loopback de IPv4]]?", + "rights" : ["El /128."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué rango de [[rand,direcciones de subred|prefijos de red]] significa 'todas las redes'?", + "rights" : ["El /0."], + "brothers_are_wrongs" : true + }] +}, { + "origin" : "KyMAN", + "sources" : [], + "title" : "Redes - IPv6 - Redes reservadas", + "group" : "kyman_redes_ipv6", + "queries" : [{ + "question" : "¿Qué rango de IPs están reservadas rutas por defecto?", + "rights" : [ + "::/0.", + "Desde :: hasta ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff.", + "Desde :: hasta FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF.", + "Todas las direcciones posibles." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es el rango de IPs para direcciones [[rand,indefinidas|no definidas]]?", + "rights" : ["::/128."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es la dirección IP para el Loopback?", + "rights" : ["::1/128."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es el rango de IPs para direcciones [[rand,multicast|multidifusión]]?", + "rights" : [ + "[[rand,ff|FF]]00::/8.", + "Desde ff00:: hasta ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff.", + "Desde FF00:: hasta FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es el rango de IPs para direcciones [[rand,Link-Local|Local de Enlace|de ámbito Local de Enlace]]?", + "rights" : [ + "[[rand,fe|FE]]80::/10.", + "Desde fe80:: hasta febf:ffff:ffff:ffff:ffff:ffff:ffff:ffff.", + "Desde FE80:: hasta FEBF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es el rango de IPs para direcciones [[rand,Unique Local|Locales Unicas|ULA]]?", + "rights" : [ + "[[rand,fc|FC]]00::/7.", + "Desde fc00:: hasta fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff.", + "Desde FC00:: hasta FDFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es el rango de IPs para direcciones [[rand,Site-Local|de Local de Sitio|de ámbito Local de Sitio]], actualmente obsoleto?", + "rights" : ["[[rand,fec|FEC]]0::/10."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es el rango de IPs para direcciones [[rand,IPv4-mapped|mapeadas de IPv4]]?", + "rights" : [ + "::[[rand,ffff|FFFF]]:0:0/96.", + "::[[rand,FFFF|ffff]]/96.", + "desde ::ffff:0.0.0.0 hasta ::ffff:255.255.255.255.", + "desde ::FFFF:0.0.0.0 hasta ::FFFF:255.255.255.255.", + "desde ::ffff:0:0 hasta ::ffff:ffff:ffff.", + "desde ::FFFF:0:0 hasta ::FFFF:FFFF:FFFF." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es el rango de IPs para direcciones [[rand,IPv4-compatible|compatibles con IPv4|IPv4 Traducida]]?", + "rights" : [ + "::[[rand,ffff|FFFF]]:0:0:0/96.", + "::[[rand,FFFF|ffff]]:0:0/96.", + "desde ::ffff:0:0.0.0.0 hasta ::ffff:0:255.255.255.255.", + "desde ::FFFF:0:0.0.0.0 hasta ::FFFF:0:255.255.255.255.", + "desde ::ffff:0:0:0 hasta ::ffff:0:ffff:ffff.", + "desde ::FFFF:0:0:0 hasta ::FFFF:0:FFFF:FFFF." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es el rango de IPs para direcciones [[rand,Multicast|Multidifusión]] de ámbito local?", + "rights" : ["ff02::/16."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es el rango de IPs para direcciones de enrutamiento para entornos de prueba?", + "rights" : [ + "100::/64.", + "Desde 100:: hasta 100:ffff:ffff:ffff:ffff:ffff:ffff:ffff.", + "Desde 100:: hasta 100:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es el rango de IPs para direcciones de Túnel de Teredo?", + "rights" : [ + "2001::/32.", + "Desde 2001:: hasta 2001:ffff:ffff:ffff:ffff:ffff:ffff:ffff.", + "Desde 2001:: hasta 2001:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es el rango de IPs para direcciones de documentación, códigos de ejemplo y pruebas?", + "rights" : [ + "2001:db8::/32.", + "Desde 2001:db8:: hasta 2001:db8:ffff:ffff:ffff:ffff:ffff:ffff.", + "Desde 2001:DB8:: hasta 2001:DB8:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es el rango de IPs para direcciones de 6to4?", + "rights" : [ + "2002::/16.", + "Desde 2002:: hasta 2002:ffff:ffff:ffff:ffff:ffff:ffff:ffff.", + "Desde 2002:: hasta 2002:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF." + ], + "brothers_are_wrongs" : true + }] +}, { + "origin" : "KyMAN", + "sources" : [], + "title" : "Redes - IPv6 - Tipos", + "group" : "kyman_redes_ipv6", + "queries" : [{ + "question" : "¿Qué es una dirección IP Unicast?", + "rights" : ["Una dirección que identifica a un único interfaz en una red."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es una dirección IP Multicast?", + "rights" : ["Una dirección que identifica a un grupo de interfaces en una red."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es una dirección IP Anycast?", + "rights" : ["Una dirección que puede ser asignada a múltiples interfaces, donde el tráfico se envía a la interfaz más cercana."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es una dirección IP de Broadcast en IPv6?", + "rights" : ["IPv6 no utiliza direcciones de Broadcast; en su lugar, se usan direcciones Multicast."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es una dirección Link-Local?", + "rights" : [ + "Una dirección que es válida solo dentro del enlace local (subred) y no es enrutable fuera de él.", + "Una dirección que comienza por [[rand,fe80|FE80]]::[[rand,|/10]]." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es una dirección [[rand,Unicast Global|Global Unicast|GUA]]?", + "rights" : ["Una dirección que es enrutable en Internet y se utiliza para la comunicación global."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es una dirección [[rand,Unique Local|ULA]]?", + "rights" : [ + "Una dirección que es válida dentro de una organización y no es enrutable en Internet.", + "Son direcciones similares a las direcciones privadas en IPv4.", + "Son direcciones que comienzan por [[rand,fc|FC]]00::/7." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es una dirección Site-Local?", + "rights" : ["Una dirección que era válida dentro de un sitio o red privada, pero está obsoleta y ya no se recomienda su uso."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es una dirección No Especificada en IPv6?", + "rights" : ["Una dirección que indica la ausencia de una dirección válida, representada como [[rand,::|::/128]]."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es una dirección Loopback en IPv6?", + "rights" : ["Una dirección que se utiliza para pruebas internas en el dispositivo, representada como [[rand,::1|::1/128]]."], + "brothers_are_wrongs" : true + }] +}] \ No newline at end of file diff --git a/Public/json/kyman/especifico/kyman.01.generaciones.json b/Public/json/kyman/especifico/kyman.01.generaciones.json new file mode 100644 index 0000000..59a4470 --- /dev/null +++ b/Public/json/kyman/especifico/kyman.01.generaciones.json @@ -0,0 +1,101 @@ +[{ + "origin" : "KyMAN", + "sources" : [], + "title" : "Informática - Generaciones de computadoras", + "group" : "kyman_informatica_generaciones_copmputadoras", + "queries" : [{ + "question" : "¿Cuándo se produjo la [[rand,|Primera|Segunda|Tercera|Cuarta|1ª|2ª|3ª|4ª]] Generación de las Computadoras?", + "rights" : ["No hay un consenso claro de cuándo fue."], + "wrongs" : [ + "Desde [[serie,1938|1940|1943|1945|1946|1955|1956|1963|1964|1971|1981|1982|1989|1990|1998|1998|1999]] hasta [[serie,1956|1963|1964|1971|1981|1982|1989|1990|1998|1998|1999]].", + "Desde [[serie,1938|1940|1943|1945|1946|1955|1956|1963|1964|1971|1981|1982|1989|1990|1998|1998|1999]] hasta la actualidad.", + "Nunca existió.", + "Es un concepto futuro que aún no ha llegado.", + "Es la Generación actual, que continúa a día de hoy.", + "Nunca, pues aunque halla informes o estudios que la recojan, actualmente no se ha definido como que realmente halla existido o existe más que como futuro." + ] + }, { + "question" : "¿Cuándo se produjo la [[rand,Quinta|5ª]] Generación de las Computadoras?", + "rights" : [ + "Es la Generación actual, que continúa a día de hoy.", + "No existe un consenso que determine cuándo comenzó exactamente." + ], + "wrongs" : [ + "Desde [[serie,1938|1940|1943|1945|1946|1955|1956|1963|1964|1971|1981|1982|1989|1990|1998|1998|1999]] hasta [[serie,1956|1963|1964|1971|1981|1982|1989|1990|1998|1998|1999]].", + "Desde [[serie,1938|1940|1943|1945|1946|1955|1956|1963|1964|1971|1981|1982|1989|1990|1998|1998|1999]] hasta la actualidad.", + "Nunca existió.", + "Es un concepto futuro que aún no ha llegado.", + "Nunca, pues aunque halla informes o estudios que la recojan, actualmente no se ha definido como que realmente halla existido o existe más que como futuro." + ] + }, { + "question" : "¿Cuándo se produjo la [[rand,Sexta|Séptima|Octava|6ª|7ª|8ª]] Generación de las Computadoras?", + "rights" : ["Nunca, pues aunque halla informes o estudios que la recojan, actualmente no se ha definido como que realmente halla existido o existe más que como futuro."], + "wrongs" : [ + "Desde [[serie,1938|1940|1943|1945|1946|1955|1956|1963|1964|1971|1981|1982|1989|1990|1998|1998|1999]] hasta [[serie,1956|1963|1964|1971|1981|1982|1989|1990|1998|1998|1999]].", + "Desde [[serie,1938|1940|1943|1945|1946|1955|1956|1963|1964|1971|1981|1982|1989|1990|1998|1998|1999]] hasta la actualidad.", + "Es un concepto futuro que aún no ha llegado.", + "Es la Generación actual, que continúa a día de hoy." + ] + }] +}, { + "origin" : "KyMAN", + "sources" : [], + "title" : "Informática - Generaciones de computadoras - Tecnologías", + "group" : "kyman_informatica_generaciones_copmputadoras", + "queries" : [{ + "question" : "¿Qué tecnología fue utilizada en la [[rand,Primera|1ª]] Generación de las Computadoras?", + "rights" : [ + "Vávulas de vacío.", + "[[rand,Lenguaje Máquina|Código Máquina Absoluto|Código Binario]].", + "Creación del lenguaje [[rand,FORTRAN|FORmula TRANslation]] en una computadora de Válvulas de Vacío." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué tecnología fue utilizada en la [[rand,Segunda|2ª]] Generación de las Computadoras?", + "rights" : [ + "Transistores.", + "Lenguajes de programación.", + "Lenguaje Ensamblador.", + "Se crea el lenguaje [[rand,COBOL|COmmon Business-Oriented Language]].", + "Uso generalizado de [[rand,FORTRAN|FORmula TRANslation]] en computadoras con transistores." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué tecnología fue utilizada en la [[rand,Tercera|3ª]] Generación de las Computadoras?", + "rights" : [ + "Nacen los primeros [[rand,ICs|Circuitos Integrados]].", + "Lenguajes de alto nivel.", + "Chips.", + "Nacimiento del Lenguaje de programación [[rand,BASIC|Beginner's All-purpose Symbolic Instruction Code]]." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué tecnología fue utilizada en la [[rand,Cuarta|4ª]] Generación de las Computadoras?", + "rights" : [ + "Microprocesadores.", + "Lenguajes Orientados a Objetos.", + "Circuitos [[rand,VLSI|Very Large Scale Integration]].", + "Aparición de las primeras [[rand,Computadoras Personales|PC|Personal Computer]].", + "Desarrollo de sistemas operativos más avanzados como [[rand,MS-DOS|Microsoft Disk Operating System]] y [[rand,UNIX|Uniplexed Information and Computing System]].", + "Nacimiento del lenguaje de programación C.", + "Nacimiento del lenguaje de programación Pascal.", + "Lenguajes [[rand,4GL|de Cuarta Generación]].", + "Nacimiento del Lenguaje [[rand,SQL|Structured Query Language]].", + "Aparece la empresa [[rand,Intel|Intel Corporation]] con el Intel 4004." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué tecnología es utilizada en la [[rand,Quinta|5ª]] Generación de las Computadoras?", + "rights" : [ + "Inteligencia artificial.", + "Computación cuántica.", + "Procesamiento del lenguaje natural.", + "Redes Neuronales.", + "Computación en la nube.", + "Big Data.", + "Computación Ubicua.", + "Nacimiento del Lenguaje Java." + ], + "brothers_are_wrongs" : true + }] +}] \ No newline at end of file diff --git a/Public/json/kyman/especifico/kyman.02.hardware.00.ics.json b/Public/json/kyman/especifico/kyman.02.hardware.00.ics.json new file mode 100644 index 0000000..eb2bc07 --- /dev/null +++ b/Public/json/kyman/especifico/kyman.02.hardware.00.ics.json @@ -0,0 +1,107 @@ +[{ + "origin" : "KyMAN", + "sources" : [], + "title" : "Informática - Hardware - ICs", + "group" : "kyman_hardware_ics", + "queries" : [{ + "question" : "¿Qué es un 'IC'?", + "rights" : [ + "Un Circuito Integrado.", + "Un Integrated Circuit.", + "Dispositivo electrónico que integra múltiples componentes en un solo chip." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es un 'SSI'?", + "rights" : [ + "Una Small Scale Integration.", + "Una Integración a Pequeña Escala.", + "Circuitos Integrados con un número limitado de puertas lógicas (generalmente hasta 100)." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es un 'MSI'?", + "rights" : [ + "Una Medium Scale Integration.", + "Una Integración a Media Escala.", + "Circuitos Integrados que contienen entre [[rand,101 y 1,000|más de cien y mil|cientouno y mil]] puertas lógicas." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es un 'LSI'?", + "rights" : [ + "Una Large Scale Integration.", + "Una Integración a Gran Escala.", + "Circuitos Integrados que contienen entre [[rand,1,001 y 10,000|más de mil y diez mil|mil uno y diez mil]] puertas lógicas." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es un 'VLSI'?", + "rights" : [ + "Una Very Large Scale Integration.", + "Una Integración a Muy Gran Escala.", + "Circuitos Integrados que contienen entre [[rand,10,001 y 100,000|más de diez mil y cien mil|diez mil uno y cien mil]] puertas lógicas." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es un 'ULSI'?", + "rights" : [ + "Una Ultra Large Scale Integration.", + "Una Integración a Ultra Gran Escala.", + "Circuitos Integrados que contienen entre [[rand,100,001 y 1,000,000|más de cien mil y un millón|cien mil uno y un millón]] de puertas lógicas." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es un GLSI?", + "rights" : [ + "Una Giga Large Scale Integration.", + "Una Integración a Escala Giga.", + "Circuitos Integrados que contienen más de [[rand,un millón|1,000,000]] de puertas lógicas." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es un Circuito Monolítico?", + "rights" : [ + "Un tipo de [[rand,IC|Circuito Integrado]] donde todos los componentes están fabricados en una sola pieza de material semiconductor.", + "Un [[rand,IC|Circuito Integrado]] donde los transistores, resistencias y condensadores están integrados en un único chip.", + "Un tipo de [[rand,IC|Circuito Integrado]] que suele estar construido en un único Monocristal de Silicio.", + "Un tipo de [[rand,IC|Circuito Integrado]] que puede estar construído en un único Monocristal de [[select,1-3,0,Germanio|Asenido de Galio|Silicio-Germanio]] entre otros." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es un Circuito Híbrido de Capa Fina?", + "rights" : [ + "Un tipo de [[rand,IC|Circuito Integrado]] que combina componentes discretos y circuitos integrados en una sola unidad.", + "Son como los Circuitos Monolíticos pero contienen componentes más difíciles de fabricar para éstos.", + "Muchos de los conversores [[rand,A/D y D/A|Analógico/Digital y Digital/Analógico]] son fabricados con esta tecnología." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es un Circuito Híbrido de Capa Gruesa?", + "rights" : [ + "Suelen tener Circuitos Monolíticos sin cápsula, transistores, diodos, etc. Interconectados por pistas conductoras.", + "Suele estar conformado sobre un sustrato dieléctrico.", + "Las resistencias se depositan por serigrafía y se ajustan con láser", + "El encapsulado puede ser metálico o plástico, dependiendo de la disipación que requiera.", + "Se pueden encontrar muchos casos donde se cubre el circuito con resina Epoxi para protegerlo.", + "Se suelen usar para módulos de radiofrecuencia, fuentes de alimentación, etc." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es un IC Analógico?", + "rights" : [ + "Un tipo de [[rand,IC|Circuito Integrado]] que maneja señales continuas.", + "Un [[rand,IC|Circuito Integrado]] que procesa señales como amplificadores operacionales, reguladores de voltaje y filtros.", + "Un [[rand,IC|Circuito Integrado]] que se utiliza en aplicaciones de audio, radiofrecuencia y procesamiento de señales." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es un IC Digital?", + "rights" : [ + "Un tipo de [[rand,IC|Circuito Integrado]] que maneja señales discretas.", + "Un [[rand,IC|Circuito Integrado]] que procesa señales como microprocesadores, memorias y circuitos lógicos.", + "Un [[rand,IC|Circuito Integrado]] que se utiliza en computadoras, dispositivos electrónicos y sistemas de comunicación." + ], + "brothers_are_wrongs" : true + }] +}] \ No newline at end of file diff --git a/Public/json/kyman/especifico/kyman.03.desarrollo.02.codificaciones-texto.json b/Public/json/kyman/especifico/kyman.03.desarrollo.02.codificaciones-texto.json new file mode 100644 index 0000000..c103c86 --- /dev/null +++ b/Public/json/kyman/especifico/kyman.03.desarrollo.02.codificaciones-texto.json @@ -0,0 +1,154 @@ +[{ + "origin" : "KyMAN", + "sources" : [], + "title" : "Informática - Programación - Codificaciones de Texto", + "group" : "kyman_programacion_codificaciones_texto", + "queries" : [{ + "question" : "¿Qué es el BCD?", + "rights" : [ + "Binary-Coded Decimal.", + "Codificación de Números Decimales en Binario.", + "Sistema de representación de números decimales donde cada dígito se representa por su equivalente en binario de 4 bits." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es el EBCDIC?", + "rights" : [ + "Extended Binary-Coded Decimal Interchange Code.", + "Código de Intercambio Decimal Codificado en Binario Extendido.", + "Sistema de codificación de caracteres de 8 bits desarrollado por IBM, utilizado principalmente en sistemas mainframe." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es el ASCII?", + "rights" : [ + "American Standard Code for Information Interchange.", + "Código Estándar Americano para el Intercambio de Información.", + "Sistema de codificación de caracteres que utiliza 7 bits para representar caracteres alfanuméricos y de control.", + "Un sistema de codificación cuyo símbolo 127 es el caracter de control." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es el ASCII Extendido?", + "rights" : [ + "Extended ASCII.", + "ASCII [[rand,Ampliado|Extendido]].", + "Extended American Standard Code for Information Interchange.", + "Código Estándar Americano para el Intercambio de Información [[rand,Ampliado|Extendido]].", + "Sistema de codificación de caracteres que utiliza 8 bits, permitiendo representar 256 caracteres, incluyendo caracteres especiales y símbolos gráficos." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es el EBCDIC?", + "rights" : [ + "Extended Binary-Coded Decimal Interchange Code.", + "Código de Intercambio Decimal Codificado en Binario Extendido.", + "Sistema de codificación de caracteres de 8 bits desarrollado por IBM, utilizado principalmente en sistemas mainframe." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es el Unicode?", + "rights" : [ + "Estándar de codificación de caracteres universal.", + "Sistema que asigna un número único a cada carácter, independientemente de la plataforma, programa o idioma.", + "Permite representar caracteres de múltiples idiomas y símbolos en un solo conjunto de caracteres." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es el UTF?", + "rights" : [ + "Unicode Transformation Format.", + "Formato de Transformación de Unicode.", + "Sistema de codificación que permite representar todos los caracteres de Unicode utilizando una secuencia de uno o más bytes." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es el ISO/IEC 8859?", + "rights" : [ + "International Organization for Standardization / International Electrotechnical Commission 8859.", + "Organización Internacional de Normalización / Comisión Electrotécnica Internacional 8859.", + "Conjunto de estándares de codificación de caracteres.", + "Define diferentes codificaciones para representar caracteres en 8 bits.", + "Incluye variantes como ISO/IEC 8859-1 (Latin-1) para idiomas occidentales." + ], + "brothers_are_wrongs" : true + }] +}, { + "origin" : "KyMAN", + "sources" : [], + "title" : "Informática - Programación - Codificaciones de Texto - Bits", + "group" : "kyman_programacion_codificaciones_texto", + "queries" : [{ + "question" : "¿Cuántos [[mix,o,bytes|bits]] utiliza el [[rand,BCD|Binary-Coded Decimal|Código Decimal Codificado en Binario]]?", + "rights" : ["4 bits."], + "brothers_are_wrongs" : true + }, { + "question" : [ + "¿Cuántos bits utiliza el [[rand,ASCII Extendido|Extended ASCII|ASCII Extendido|Extended American Standard Code for Information Interchange|Código Estándar Americano para el Intercambio de Información Extendido]]?", + "¿Cuántos bits utiliza el [[rand,EBCDIC|Extended Binary-Coded Decimal Interchange Code|Código de Intercambio Decimal Codificado en Binario Extendido]]?", + "¿Cuántos bits utiliza el [[rand,UTF-8|Unicode Transformation Format 8|Formato de Transformación de Unicode 8]]?", + "¿Cuántos bits utiliza el [[rand,ISO/IEC 8859|International Organization for Standardization / International Electrotechnical Commission 8859|Organización Internacional de Normalización / Comisión Electrotécnica Internacional 8859]]?" + ], + "rights" : ["8 bits.", "1 byte."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuántos [[mix,o,bytes|bits]] utiliza el [[rand,ASCII|American Standard Code for Information Interchange|Código Estándar Americano para el Intercambio de Información]]?", + "rights" : ["7 bits."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuántos [[mix,o,bytes|bits]] utiliza el Unicode?", + "rights" : [ + "8, 16 o 32 bits dependiendo de la codificación específica.", + "1, 2, o 4 bytes dependiendo de la codificación específica." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuántos [[mix,o,bytes|bits]] utiliza el [[rand,UTF-16|Unicode Transformation Format 16|Formato de Transformación de Unicode 16]]?", + "rights" : ["16 bits.", "2 bytes."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuántos [[mix,o,bytes|bits]] utiliza el [[rand,UTF-32|Unicode Transformation Format 32|Formato de Transformación de Unicode 32]]?", + "rights" : ["32 bits.", "4 bytes."], + "brothers_are_wrongs" : true + }] +}, { + "origin" : "KyMAN", + "sources" : [], + "title" : "Informática - Programación - Codificaciones de Texto - Bits por caracter", + "group" : "kyman_programacion_codificaciones_texto", + "queries" : [{ + "question" : "¿Cuántos [[mix,o,bytes|bits]] por caracter utiliza el [[rand,BCD|Binary-Coded Decimal|Código Decimal Codificado en Binario]]?", + "rights" : ["4 bits."], + "brothers_are_wrongs" : true + }, { + "question" : [ + "¿Cuántos bits utiliza el [[rand,ASCII Extendido|Extended ASCII|ASCII Extendido|Extended American Standard Code for Information Interchange|Código Estándar Americano para el Intercambio de Información Extendido]]?", + "¿Cuántos bits utiliza el [[rand,EBCDIC|Extended Binary-Coded Decimal Interchange Code|Código de Intercambio Decimal Codificado en Binario Extendido]]?", + "¿Cuántos bits utiliza el [[rand,ISO/IEC 8859|International Organization for Standardization / International Electrotechnical Commission 8859|Organización Internacional de Normalización / Comisión Electrotécnica Internacional 8859]]?" + ], + "rights" : ["8 bits.", "1 byte."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuántos [[mix,o,bytes|bits]] por caracter utiliza el [[rand,ASCII|American Standard Code for Information Interchange|Código Estándar Americano para el Intercambio de Información]]?", + "rights" : ["7 bits."], + "brothers_are_wrongs" : true + }, { + "question" : [ + "¿Cuántos bits utiliza el [[rand,UTF-8|Unicode Transformation Format 8|Formato de Transformación de Unicode 8]]?", + "¿Cuántos [[mix,o,bytes|bits]] utiliza el Unicode?" + ], + "rights" : [ + "Entre 8, 16 y 32 bits.", + "Entre 1, 2, y 4 bytes." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuántos [[mix,o,bytes|bits]] por caracter utiliza el [[rand,UTF-16|Unicode Transformation Format 16|Formato de Transformación de Unicode 16]]?", + "rights" : ["Entre 8 y 16 bits.", "Entre 1 y 2 bytes."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuántos [[mix,o,bytes|bits]] por caracter utiliza el [[rand,UTF-32|Unicode Transformation Format 32|Formato de Transformación de Unicode 32]]?", + "rights" : ["32 bits.", "4 bytes."], + "brothers_are_wrongs" : true + }] +}] \ No newline at end of file diff --git a/Public/json/kyman/especifico/kyman.aa.red-sara.json b/Public/json/kyman/especifico/kyman.aa.red-sara.json new file mode 100644 index 0000000..911dfaf --- /dev/null +++ b/Public/json/kyman/especifico/kyman.aa.red-sara.json @@ -0,0 +1,159 @@ +[{ + "origin" : "KyMAN", + "sources" : [ + "https://es.wikipedia.org/wiki/Red_SARA", + "https://es.wikipedia.org/wiki/RedIRIS" + ], + "title" : "Informática - Entornos - Red SARA - Conceptos", + "group" : "kyman_informatica_entornos_red_sara", + "queries" : [{ + "question" : "¿Qué es la Red SARA?", + "rights" : [ + "Sistema de Aplicaciones y Redes para las Administraciones.", + "Un conjunto de [[mix,y,infraestructuras de comunicaciones|servicios básicos]] que conecta las redes de las [[mix,y,Administraciones Públicas Españolas|Instituciones Europeas]] facilitando [[mix,y,el intercambio de información|el acceso a los servicios]]." + ], + "wrongs" : [ + "Una red social para [[rand,funcionarios|cargos estatales]].", + "Un Sistema de Aplicaciones y Redes para [[select,1-2,y,las Empresas|el Sector Público]].", + "Una plataforma de gestión de recursos [[select,1-2,y,privados|secretos]] para las Administraciones.", + "Una infraestructura de comunicaciones para [[select,1-2,y,usuarios particulares|empresas privadas]]." + ] + }, { + "question" : "¿Qué es lo que permite la Red SARA?", + "rights" : [ + "Interconectar las redes de las Administraciones Públicas.", + "Cualquier unidad conectada pueda [[mix,o,proveer servicios|utilizar los que ponen a su dispocisión otras unidades de las diferentes Administraciones Públicas [1mix,o,Españolas:::Europeas1]]]." + ], + "wrongs" : [ + "Interconectar las redes de [[rand,empresas privadas|usuarios particulares]].", + "Cualquier unidad conectada pueda [[mix,o,proveer servicios|utilizar los que ponen a su dispocisión otras unidades de las diferentes [1rand,empresas privadas:::usuarios particulares1]]]." + ] + }, { + "question" : "¿Cuál de las siguientes opciones está dentro del alcance de la Red SARA?", + "rights" : [ + "[[rand,Centros de Proceso de Datos|CPD]] del Ministerio competente en materia de función pública donde se alojan servicios comunes de Administración Electrónica.", + "Ministerios de la Administración General del Estado[[rand,|, a través de éstos o de sus organismos adscritos]].", + "Comunidades Autónomas y sus Instituciones Públicas[[rand,|, a través de éstas o de las Corporaciones Locales]].", + "[[Mix,y,Instituciones|Organismos]] Públicos sin adscripción a [[mix,o,Ministerios|Comunidades Autónomas]] tales como los Órganos Constitucionales.", + "[[Mix,y,Comisión|Estados Miembros de la Unión Europea]][[rand,|, a través de [1rand,sTESTA|la Red Transeuropea]].", + "Universidades[[rand,|, a través de la conexión con [1mix,y,la Red Académica:::[2rand,RedIRIS:::Red Española para Interconexión de los Recursos Informáticos de las Universidades y Centros de Investigación2]1]]]." + ], + "wrongs" : [ + "[[rand,Centro de Procedimiento de Datos|CPD]] de [[rand,una empresa privada|un usuario particular]], intermediada por [[select,1-3,y,el Gobierno|las Cámaras|el Senado|las Autoridades|el Congreso de los Diputados|la Corona]].", + "La interconexión entre las [[mix,y,Administraciones Públicas|Empresas Privadas]] para manejo de datos comunes.", + "Operativilidad con países de la OTAN.", + "Redes de Telecomunicaciones Comerciales." + ] + }, { + "question" : "¿En qué año se adjudicó la partida para la primera versión de la Red SARA?", + "rights" : ["En 2007."], + "wrongs" : ["En [[range,1990-2004|2005-2006|2008-2011|2012-2025]]."] + }, { + "question" : "¿En qué año se lanzó la Red SARA 2.0?", + "rights" : ["En 2009."], + "wrongs" : ["En [[range,1990-2004|2005-2008|2010-2015|2016-2025]]."] + }, { + "question" : "¿Cuál es la idea de la Red SARA?", + "rights" : ["Ser la red troncal de las comunicaciones de las Administraciones."], + "wrongs" : [ + "Ser una red social para [[rand,funcionarios|cargos estatales]].", + "Ser una plataforma de gestión de recursos [[select,1-2,y,privados|secretos]] para las Administraciones.", + "Ser una infraestructura de comunicaciones para [[select,1-2,y,usuarios particulares|empresas privadas]]." + ] + }, { + "question" : "¿En qué se basa la Red Troncal de la Red SARA?", + "rights" : ["[[rand,Desde[1rand,::: el 11 de Septiembre de1] 2015, e|E]]n la infraestructura de comunicaciones del operador adjudicatario de los Servicios Consolidados de Telecomunicaciones de la Administración General del Estado[[rand,| Fase I]]"], + "wrongs" : [ + "[[rand,Desde[1rand,::: el [2range,1-302] de [2rand,Enero:::Febrero:::Marzo:::Abril:::Mayo:::Junio:::Julio:::Agosto:::Septiembre:::Octubre:::Noviembre:::Diciembre2] de1] [1range,2007-20251], e|E]]n cualquier proveedor de Internet[[rand,|, independientemente de su [1rand,capacidad:::seguridad:::área1]]].", + "[[rand,Desde[1rand,::: el [2range,1-302] de [2rand,Enero:::Febrero:::Marzo:::Abril:::Mayo:::Junio:::Julio:::Agosto:::Septiembre:::Octubre:::Noviembre:::Diciembre2] de1] [1range,2007-20251], e|E]]n la infraestructura de comunicaciones del operador adjudicatario de los Servicios Técnicos de Telecomunicaciones de la Administración Pública[[rand,| Fase I]]." + ] + }] +}, { + "origin" : "KyMAN", + "sources" : [ + "https://es.wikipedia.org/wiki/Red_SARA", + "https://es.wikipedia.org/wiki/RedIRIS" + ], + "title" : "Informática - Entornos - Red SARA - Comunes", + "group" : "kyman_informatica_entornos_red_sara", + "queries" : [{ + "question" : "¿Cómo es la comunicación en la Red SARA?", + "rights" : ["De transporte cifrado sobre la Red Troncal de la [[rand,VPLS|Virtual Private LAN Service|de Servicio de LAN Privada Virtual]][[rand,|, independientemente del tipo de tráfico]][[rand,|, aplicando mecanismos de [1rand,QoS:::Quality of Service:::Calidad de Servicio1]]]."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Por qué tecnologías fue precedida la Red SARA?", + "rights" : ["La red IA", "La Intranet Administrativa."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué tecnología se implementó para poder abarcar grandes áreas geográficas?", + "rights" : ["Tecnología [[rand,VPLS|Virtual Private LAN Service|de Servicio de LAN Privada Virtual]]."], + "brothers_are_wrongs" : true + }, { + "question" : "Cuáles de los siguientes servicios a usuarios ofrece la Red SARA?", + "rights" : [ + "[[rand,VoIP|Voice over IP|Voz sobre Protocolo de Internet]].", + "Videoconferencia.", + "Datos de Aplicaciones." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuáles de los siguientes servicios técnicos telemáticos ofrece la Red SARA?", + "rights" : [ + "[[rand,DNS|Domain Name System|Sistema de Nombres de Dominio]].", + "[[rand,SMTP|Simple Mail Transfer Protocol|Protocolo Simple de Transferencia de Correo]].", + "[[rand,NTP|Network Time Protocol|Protocolo de Tiempo de Red]].", + "Proxy.", + "Proxy Inverso." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Con cuáles de las siguientes herramientas de seguridad cuenta la Red SARA?", + "rights" : [ + "Cortafuegos.", + "[[rand,IDS|Sistemas de Detección de Intrusos|Intrusion Detection System]].", + "Análisis de Vulnerabilidades.", + "Correlación de Logs." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuáles son los servicios [[rand,comunes|horizontales]] de la Red SARA?", + "rights" : ["Los promovidos directamente por el Ministerio de Política Territorial y Función Pública."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuáles son los servicios verticales de la Red SARA?", + "rights" : ["Los promovidos por las diferentes Administraciones Públicas[[rand,|, [1mix,y,en el marco de sus competencias:::bajo su responsabilidad1]]]."], + "brothers_are_wrongs" : true + }] +}, { + "origin" : "KyMAN", + "sources" : [ + "https://es.wikipedia.org/wiki/Red_SARA", + "https://es.wikipedia.org/wiki/RedIRIS" + ], + "title" : "Informática - Entornos - Red SARA - Marco normativo", + "group" : "kyman_informatica_entornos_red_sara", + "queries" : [{ + "question" : "¿En cuáles de las siguientes opciones se regula obligación de las Administraciones Públicas de conectarse a la Red SARA?", + "rights" : [ + "En[[rand,| el artículo 43 de]] la Ley 11/2007[[rand,|, de 22 de junio]][[rand,|, de Acceso Electrónico de los Ciudadanos a los Servicios Públicos]].", + "En [[rand,de|el artículo 13 del]] Real Decreto 4/2010[[rand,|, de 8 de enero]][[rand,|, por el que se regula el Esquema Nacional de Interoperabilidad en el ámbito de la Administración Electrónica]]." + ], + "wrongs" : [ + "En[[rand,| el artículo [1range,1-2001] de]] [[rand,la Ley[1rand,::: Orgánica ::: Ordinaria1]|del Real Decreto[1rand,::: Ley::: Legislativo1]]] [[range,1-3|5-10|12-90]]/[[range,1965-2025]][[rand,|, de [1range,1-301] de [1rand,Enero:::Febrero:::Marzo:::Abril:::Mayo:::Junio:::Julio:::Agosto:::Septiembre:::Octubre:::Noviembre:::Diciembre1]]][[rand,|, por el que se regula el Esquema Nacional de Interoperabilidad en el ámbito de la Administración Electrónica|, de Acceso Electrónico de los Ciudadanos a los Servicios Públicos]].", + "En[[rand,| el artículo [1range,1-2001] de]] [[rand,la Ley[1rand,::: Orgánica ::: Ordinaria1]|del Real Decreto[1rand,::: Ley::: Legislativo1]]] [[range,1-90]]/[[range,1965-2007|2008-2009|2011-2025]][[rand,|, de [1range,1-301] de [1rand,Enero:::Febrero:::Marzo:::Abril:::Mayo:::Junio:::Julio:::Agosto:::Septiembre:::Octubre:::Noviembre:::Diciembre1]]][[rand,|, por el que se regula el Esquema Nacional de Interoperabilidad en el ámbito de la Administración Electrónica|, de Acceso Electrónico de los Ciudadanos a los Servicios Públicos]]." + ] + }, { + "question" : "¿En cuáles de las siguientes opciones se regula Red SARA?", + "rights" : [ + "En[[rand,| el artículo 43 de]] la Ley 11/2007[[rand,|, de 22 de junio]][[rand,|, de Acceso Electrónico de los Ciudadanos a los Servicios Públicos]].", + "En [[rand,| el artículo 13 del]] Real Decreto 4/2010[[rand,|, de 8 de enero]][[rand,|, por el que se regula el Esquema Nacional de Interoperabilidad en el ámbito de la Administración Electrónica]].", + "[[rand,| Resolución de 19 de Julio de 2011 de la Secretaría de Estado para la Función Pública, por la que se aprueba la ]]Norma Técnica de Interoperatibilidad de requisitos de conexión a la red de comunicaciones de las Administraciones Públicas Españolas." + ], + "wrongs" : [ + "En[[rand,| el artículo [1range,1-2001] de]] [[rand,la Ley[1rand,::: Orgánica ::: Ordinaria1]|del Real Decreto[1rand,::: Ley::: Legislativo1]]] [[range,1-3|5-10|12-90]]/[[range,1965-2025]][[rand,|, de [1range,1-301] de [1rand,Enero:::Febrero:::Marzo:::Abril:::Mayo:::Junio:::Julio:::Agosto:::Septiembre:::Octubre:::Noviembre:::Diciembre1]]][[rand,|, por el que se regula el Esquema Nacional de Interoperabilidad en el ámbito de la Administración Electrónica|, de Acceso Electrónico de los Ciudadanos a los Servicios Públicos]].", + "En[[rand,| el artículo [1range,1-2001] de]] [[rand,la Ley[1rand,::: Orgánica ::: Ordinaria1]|del Real Decreto[1rand,::: Ley::: Legislativo1]]] [[range,1-90]]/[[range,1965-2007|2008-2009|2011-2025]][[rand,|, de [1range,1-301] de [1rand,Enero:::Febrero:::Marzo:::Abril:::Mayo:::Junio:::Julio:::Agosto:::Septiembre:::Octubre:::Noviembre:::Diciembre1]]][[rand,|, por el que se regula el Esquema Nacional de Interoperabilidad en el ámbito de la Administración Electrónica|, de Acceso Electrónico de los Ciudadanos a los Servicios Públicos]].", + "[[rand,| Resolución de [1range,1-18:::20-301] de [1rand,Enero:::Febrero:::Marzo:::Abril:::Mayo:::Junio:::Julio:::Agosto:::Septiembre:::Octubre:::Noviembre:::Diciembre1] de [1range,1995-20251] de [1rand,la Secretaría de Estado para la Función Pública1], por la que se aprueba la ]]Norma[[rand,|tiva]] Técnica de Interoperatibilidad de [[rand,requisitos|recursos|condiciones]] de conexión a la red de comunicaciones de las Administraciones Públicas [[rand,Europeas|Españolas|Internacionales]].", + "[[rand,| Resolución de [1range,1-301] de [1rand,Enero:::Febrero:::Marzo:::Abril:::Mayo:::Junio:::Julio:::Agosto:::Septiembre:::Octubre:::Noviembre:::Diciembre1] de [1range,1995-2010:::2012-20251] de [1rand,la Secretaría de Estado para la Función Pública1], por la que se aprueba la ]]Norma[[rand,|tiva]] Técnica de Interoperatibilidad de [[rand,requisitos|recursos|condiciones]] de conexión a la red de comunicaciones de las Administraciones Públicas [[rand,Europeas|Españolas|Internacionales]]." + ] + }] +}] \ No newline at end of file diff --git a/Public/json/paco/paco.ce.00.constitucion.json b/Public/json/paco/paco.ce.00.constitucion.json new file mode 100644 index 0000000..22f4369 --- /dev/null +++ b/Public/json/paco/paco.ce.00.constitucion.json @@ -0,0 +1,526 @@ +[{ + "origin" : "Paco Barbié", + "title" : "Constitución - Estructura", + "source" : "https://www.youtube.com/watch?v=jll91s6qz6c", + "queries" : [{ + "question" : "¿Cuántos artículos tiene la Constitución Española de 1978?", + "rights" : ["169 artículos"], + "wrongs" : ["[[range,40-168|170-230]] artículos"] + }, { + "question" : "¿Cuántos títulos tiene la Constitución Española?", + "rights" : ["Un título preliminar y 10 títulos"], + "wrongs" : ["[[range,2-9|11-23]] títulos", "[[range,2-15]] títulos preliminares y [[range,2-9|11-23]] títulos"] + }, { + "question" : "¿Cuántas disposiciones adicionales tiene la Constitución Española?", + "rights" : ["4 disposiciones adicionales"], + "wrongs" : ["Ninguna disposición adicional", "1 disposición adicional", "[[range,2-3|5-15]] disposiciones adicionales"] + }, { + "question" : "¿Cuántas disposiciones transitorias tiene la Constitución Española?", + "rights" : ["9 disposiciones transitorias"], + "wrongs" : ["Ninguna disposición transitoria", "1 disposición transitoria", "2 disposiciones transitorias", "3 disposiciones transitorias", "1 disposición transitoria", "5 disposiciones transitorias", "4 disposiciones transitorias", "6 disposiciones transitorias", "7 disposiciones transitorias", "8 disposiciones transitorias", "10 disposiciones transitorias"] + }, { + "question" : "¿Cuántas disposiciones derogatorias tiene la Constitución Española?", + "rights" : ["1 disposición derogatoria"], + "wrongs" : ["Ninguna disposición derogatoria", "2 disposiciones derogatorias", "3 disposiciones derogatorias", "1 disposición derogatoria", "5 disposiciones derogatorias", "4 disposiciones derogatorias", "6 disposiciones derogatorias", "7 disposiciones derogatorias", "8 disposiciones derogatorias", "10 disposiciones derogatorias"] + }, { + "question" : "¿Cuántas disposiciones finales tiene la Constitución Española?", + "rights" : ["1 disposición final"], + "wrongs" : ["Ninguna disposición final", "2 disposiciones finales", "3 disposiciones finales", "1 disposición final", "5 disposiciones finales", "4 disposiciones finales", "6 disposiciones finales", "7 disposiciones finales", "8 disposiciones finales", "10 disposiciones finales"] + }, { + "question" : "¿Cómo se llama el Título I de la Constitución Española?", + "rights" : ["de los derechos y deberes fundamentales"], + "wrongs" : ["de la Corona", "de las Cortes Generales", "del Gobierno", "de la organización territorial del Estado", "de la Administración Pública", "de la justicia", "de la economía y la hacienda", "de la seguridad social", "de la defensa nacional", "de la Unión Europea"] + }, { + "question" : "¿A qué Título de la Constitución Española corresponde 'De los derechos y deberes fundamentales'?", + "rights" : ["Título I"], + "wrongs" : ["Título [[rand,II|III|IV|V|VI|VII|VIII|IX|X]]"] + }, { + "question" : "¿De cuántos artículos se componen el Título [[rand,I|De los derechos y deberes fundamentales]] de la Constitución Española?", + "rights" : ["46 artículos"], + "wrongs" : [["1 artículo", 0.1], "[[range,2-45|47-60]] artículos"] + }, { + "question" : "¿De cuántos capítulos se componen el Título [[rand,I|De los derechos y deberes fundamentales]] de la Constitución Española?", + "rights" : ["5 capítulos"], + "wrongs" : [["Ningún capítulo", 0.1], "1 capítulo", "[[range,2-4|6-7]] capítulos"] + }, { + "question" : "¿De qué artículos se componen el Título [[rand,I|De los derechos y deberes fundamentales]] de la Constitución Española?", + "rights" : ["Del artículo 10 al artículo 55"], + "wrongs" : [["Sólo el artículo [[range,1-230]]", 0.1], "Del artículo [[serie,1-44]] al artículo [[serie,2-60]]"] + }, { + "question" : "¿Cómo se llama el Título II de la Constitución Española?", + "rights" : ["de la Corona"], + "wrongs" : ["de los derechos y deberes fundamentales", "de las Cortes Generales", "del Gobierno", "de la organización territorial del Estado", "de la Administración Pública", "de la justicia", "de la economía y la hacienda", "de la seguridad social", "de la defensa nacional", "de la Unión Europea"] + }, { + "question" : "¿A qué Título de la Constitución Española corresponde 'De la Corona'?", + "rights" : ["Título II"], + "wrongs" : ["Título [[rand,I|III|IV|V|VI|VII|VIII|IX|X]]"] + }, { + "question" : "¿De cuántos capítulos se componen el Título [[rand,II|De la Corona]] de la Constitución Española?", + "rights" : ["Ningún capítulo"], + "wrongs" : [["1 capítulo", 0.17], "[[range,2-7]] capítulos"] + }, { + "question" : "¿De cuántos artículos se componen el Título [[rand,II|De la Corona]] de la Constitución Española?", + "rights" : ["10 artículos"], + "wrongs" : [["1 artículo", 0.1], "[[range,2-9|11-60]] artículos"] + }, { + "question" : "¿De qué artículos se componen el Título [[rand,II|De la Corona]] de la Constitución Española?", + "rights" : ["Del artículo 56 al artículo 65"], + "wrongs" : [["Sólo el artículo [[range,1-230]]", 0.1], "Del artículo [[serie,30-80]] al artículo [[serie,32-110]]"] + }, { + "question" : "¿Cómo se llama el Título III de la Constitución Española?", + "rights" : ["de las Cortes Generales"], + "wrongs" : ["de los derechos y deberes fundamentales", "de la Corona", "del Gobierno", "de la organización territorial del Estado", "de la Administración Pública", "de la justicia", "de la economía y la hacienda", "de la seguridad social", "de la defensa nacional", "de la Unión Europea"] + }, { + "question" : "¿A qué Título de la Constitución Española corresponde 'De las Cortes Generales'?", + "rights" : ["Título III"], + "wrongs" : ["Título [[rand,I|II|IV|V|VI|VII|VIII|IX|X]]"] + }, { + "question" : "¿De cuántos artículos se componen el Título [[rand,III|De las Cortes Generales]] de la Constitución Española?", + "rights" : ["31 artículos"], + "wrongs" : [["1 artículo", 0.1], "[[range,2-30|32-60]] artículos"] + }, { + "question" : "¿De cuántos capítulos se componen el Título [[rand,III|De las Cortes Generales]] de la Constitución Española?", + "rights" : ["3 capítulos"], + "wrongs" : [["Ningún capítulo", 0.1], "1 capítulo", "[[range,2|4-7]] capítulos"] + }, { + "question" : "¿De qué artículos se componen el Título [[rand,III|De las Cortes Generales]] de la Constitución Española?", + "rights" : ["Del artículo 66 al artículo 96"], + "wrongs" : [["Sólo el artículo [[range,1-230]]", 0.1], "Del artículo [[serie,40-90]] al artículo [[serie,43-120]]"] + }, { + "question" : "¿Cómo se llama el Título IV de la Constitución Española?", + "rights" : ["del Gobierno"], + "wrongs" : ["de los derechos y deberes fundamentales", "de la Corona", "de las Cortes Generales", "de la organización territorial del Estado", "de la Administración Pública", "de la justicia", "de la economía y la hacienda", "de la seguridad social", "de la defensa nacional", "de la Unión Europea"] + }, { + "question" : "¿A qué Título de la Constitución Española corresponde 'Del Gobierno'?", + "rights" : ["Título IV"], + "wrongs" : ["Título [[rand,I|II|III|V|VI|VII|VIII|IX|X]]"] + }, { + "question" : "¿De cuántos artículos se componen el Título [[rand,IV|Del Gobierno]] de la Constitución Española?", + "rights" : ["11 artículos"], + "wrongs" : [["1 artículo", 0.1], "[[range,2-10|12-60]] artículos"] + }, { + "question" : "¿De cuántos capítulos se componen el Título [[rand,IV|Del Gobierno]] de la Constitución Española?", + "rights" : ["Ningún capítulo"], + "wrongs" : [["1 capítulo", 0.17], "[[range,2-7]] capítulos"] + }, { + "question" : "¿De qué artículos se componen el Título [[rand,IV|Del Gobierno]] de la Constitución Española?", + "rights" : ["Del artículo 97 al artículo 107"], + "wrongs" : [["Sólo el artículo [[range,1-230]]", 0.1], "Del artículo [[serie,85-110]] al artículo [[serie,88-130]]"] + }, { + "question" : "¿Cómo se llama el Título V de la Constitución Española?", + "rights" : ["de las relaciones entre el Gobierno y las Cortes Generales"], + "wrongs" : ["de los derechos y deberes fundamentales", "de la Corona", "de las Cortes Generales", "de la organización territorial del Estado", "de la Administración Pública", "de la justicia", "de la economía y la hacienda", "de la seguridad social", "de la defensa nacional", "de la Unión Europea"] + }, { + "question" : "¿A qué Título de la Constitución Española corresponde 'De las relaciones entre el Gobierno y las Cortes Generales'?", + "rights" : ["Título V"], + "wrongs" : ["Título [[rand,I|II|III|IV|VI|VII|VIII|IX|X]]"] + }, { + "question" : "¿De cuántos artículos se componen el Título [[rand,V|De las relaciones entre el Gobierno y las Cortes Generales]] de la Constitución Española?", + "rights" : ["9 artículos"], + "wrongs" : [["1 artículo", 0.1], "[[range,2-8|10-60]] artículos"] + }, { + "question" : "¿De cuántos capítulos se componen el Título [[rand,V|De las relaciones entre el Gobierno y las Cortes Generales]] de la Constitución Española?", + "rights" : ["Ningún capítulo"], + "wrongs" : [["1 artículo", 0.1], "1 capítulo", "[[range,2-7]] capítulos"] + }, { + "question" : "¿De qué artículos se componen el Título [[rand,V|De las relaciones entre el Gobierno y las Cortes Generales]] de la Constitución Española?", + "rights" : ["Del artículo 108 al artículo 116"], + "wrongs" : [["Sólo el artículo [[range,1-230]]", 0.1], "Del artículo [[serie,90-140]] al artículo [[serie,93-160]]"] + }, { + "question" : "¿Cómo se llama el Título VI de la Constitución Española?", + "rights" : ["del Poder Judicial"], + "wrongs" : ["de los derechos y deberes fundamentales", "de la Corona", "de las Cortes Generales", "de la organización territorial del Estado", "de la Administración Pública", "de la justicia", "de la economía y la hacienda", "de la seguridad social", "de la defensa nacional", "de la Unión Europea"] + }, { + "question" : "¿A qué Título de la Constitución Española corresponde 'De las relaciones entre el Gobierno y las Cortes Generales'?", + "rights" : ["Título VI"], + "wrongs" : ["Título [[rand,I|II|III|IV|IV|VII|VIII|IX|X]]"] + }, { + "question" : "¿De cuántos artículos se componen el Título [[rand,VI|Del Poder Judicial]] de la Constitución Española?", + "rights" : ["11 artículos"], + "wrongs" : [["1 artículo", 0.1], "[[range,2-10|12-60]] artículos"] + }, { + "question" : "¿De cuántos capítulos se componen el Título [[rand,VI|Del Poder Judicial]] de la Constitución Española?", + "rights" : ["Ningún capítulo"], + "wrongs" : [["1 capítulo", 0.17], "[[range,2-7]] capítulos"] + }, { + "question" : "¿De qué artículos se componen el Título [[rand,VI|Del Poder Judicial]] de la Constitución Española?", + "rights" : ["Del artículo 117 al artículo 127"], + "wrongs" : [["Sólo el artículo [[range,1-230]]", 0.1], "Del artículo [[serie,100-140]] al artículo [[serie,103-160]]"] + }, { + "question" : "¿Cómo se llama el Título VII de la Constitución Española?", + "rights" : ["Economía y Hacienda"], + "wrongs" : ["de los derechos y deberes fundamentales", "de la Corona", "de las Cortes Generales", "de la organización territorial del Estado", "de la Administración Pública", "de la justicia", "de la economía y la hacienda", "de la seguridad social", "de la defensa nacional", "de la Unión Europea"] + }, { + "question" : "¿A qué Título de la Constitución Española corresponde a 'Economía y Hacienda'?", + "rights" : ["Título VII"], + "wrongs" : ["Título [[rand,I|II|III|IV|IV|VI|VIII|IX|X]]"] + }, { + "question" : "¿De cuántos artículos se componen el Título [[rand,VII|De la Economía y Hacienda]] de la Constitución Española?", + "rights" : ["9 artículos"], + "wrongs" : [["1 artículo", 0.1], "[[range,2-8|10-60]] artículos"] + }, { + "question" : "¿De cuántos capítulos se componen el Título [[rand,VII|De la Economía y Hacienda]] de la Constitución Española?", + "rights" : ["Ningún capítulo"], + "wrongs" : [["1 capítulo", 0.17], "[[range,2-7]] capítulos"] + }, { + "question" : "¿De qué artículos se componen el Título [[rand,VII|De la Economía y Hacienda]] de la Constitución Española?", + "rights" : ["Del artículo 128 al artículo 136"], + "wrongs" : [["Sólo el artículo [[range,1-230]]", 0.1], "Del artículo [[serie,110-140]] al artículo [[serie,113-170]]"] + }, { + "question" : "¿Cómo se llama el Título VIII de la Constitución Española?", + "rights" : ["De la Organización Territorial del Estado"], + "wrongs" : ["de los derechos y deberes fundamentales", "de la Corona", "de las Cortes Generales", "de la organización territorial del Estado", "de la Administración Pública", "de la justicia", "de la economía y la hacienda", "de la seguridad social", "de la defensa nacional", "de la Unión Europea"] + }, { + "question" : "¿A qué Título de la Constitución Española corresponde 'De la Organización Territorial del Estado'?", + "rights" : ["Título VIII"], + "wrongs" : ["Título [[rand,I|II|III|IV|IV|VI|VII|IX|X]]"] + }, { + "question" : "¿De cuántos artículos se componen el Título [[rand,VIII|De la Organización Territorial del Estado]] de la Constitución Española?", + "rights" : ["22 artículos"], + "wrongs" : [["1 artículo", 0.1], "[[range,2-21|23-60]] artículos"] + }, { + "question" : "¿De cuántos capítulos se componen el Título [[rand,VIII|De la Organización Territorial del Estado]] de la Constitución Española?", + "rights" : ["3 capítulos"], + "wrongs" : [["Ningún capítulo", 0.1], "1 capítulo", "[[range,2|4-7]] capítulos"] + }, { + "question" : "¿De qué artículos se componen el Título [[rand,VIII|De la Organización Territorial del Estado]] de la Constitución Española?", + "rights" : ["Del artículo 137 al artículo 158"], + "wrongs" : [["Sólo el artículo [[range,1-230]]", 0.1], "Del artículo [[serie,130-150]] al artículo [[serie,133-170]]"] + }, { + "question" : "¿Cómo se llama el Título IX de la Constitución Española?", + "rights" : ["Del Tribunal Constitucional"], + "wrongs" : ["de los derechos y deberes fundamentales", "de la Corona", "de las Cortes Generales", "de la organización territorial del Estado", "de la Administración Pública", "de la justicia", "de la economía y la hacienda", "de la seguridad social", "de la defensa nacional", "de la Unión Europea"] + }, { + "question" : "¿A qué Título de la Constitución Española corresponde 'Del Tribunal Constitucional'?", + "rights" : ["Título IX"], + "wrongs" : ["Título [[rand,I|II|III|IV|IV|VI|VII|VIII|X]]"] + }, { + "question" : "¿De cuántos artículos se componen el Título [[rand,IX|Del Tribunal Constitucional]] de la Constitución Española?", + "rights" : ["7 artículos"], + "wrongs" : [["1 artículo", 0.1], "[[range,2-6|8-60]] artículos"] + }, { + "question" : "¿De cuántos capítulos se componen el Título [[rand,IX|Del Tribunal Constitucional]] de la Constitución Española?", + "rights" : ["Ningún capítulo"], + "wrongs" : [["1 capítulo", 0.17], "[[range,2-7]] capítulos"] + }, { + "question" : "¿De qué artículos se componen el Título [[rand,IX|Del Tribunal Constitucional]] de la Constitución Española?", + "rights" : ["Del artículo 159 al artículo 165"], + "wrongs" : [["Sólo el artículo [[range,1-230]]", 0.1], "Del artículo [[serie,150-170]] al artículo [[serie,153-180]]"] + }, { + "question" : "¿Cómo se llama el Título X de la Constitución Española?", + "rights" : ["De la Reforma Constitucional"], + "wrongs" : ["de los derechos y deberes fundamentales", "de la Corona", "de las Cortes Generales", "de la organización territorial del Estado", "de la Administración Pública", "de la justicia", "de la economía y la hacienda", "de la seguridad social", "de la defensa nacional", "de la Unión Europea"] + }, { + "question" : "¿A qué Título de la Constitución Española corresponde 'De la Reforma Constitucional'?", + "rights" : ["Título X"], + "wrongs" : ["Título [[rand,I|II|III|IV|IV|VI|VII|VIII|IX]]"] + }, { + "question" : "¿De cuántos artículos se componen el Título [[rand,X|De la Reforma Constitucional]] de la Constitución Española?", + "rights" : ["4 artículos"], + "wrongs" : [["1 artículo", 0.1], "[[range,2-3|5-60]] artículos"] + }, { + "question" : "¿De cuántos capítulos se componen el Título [[rand,X|De la Reforma Constitucional]] de la Constitución Española?", + "rights" : ["Ningún capítulo"], + "wrongs" : [["1 capítulo", 0.17], "[[range,2-7]] capítulos"] + }, { + "question" : "¿De qué artículos se componen el Título [[rand,X|De la Reforma Constitucional]] de la Constitución Española?", + "rights" : ["Del artículo 166 al artículo 169"], + "wrongs" : [["Sólo el artículo [[range,1-230]]", 0.1], "Del artículo [[serie,160-170]] al artículo [[serie,161-180]]"] + }, { + "question" : "¿Cómo se llama el Capítulo Primero del Título I de la Constitución Española?", + "rights" : ["De los españoles y los extranjeros"], + "wrongs" : ["de los derechos y deberes fundamentales", "de la Corona", "de las Cortes Generales", "de la organización territorial del Estado", "de la Administración Pública", "de la justicia", "de la economía y la hacienda", "de la seguridad social", "de la defensa nacional", "de la Unión Europea"] + }, { + "question" : "¿A qué Capítulo de la Constitución Española corresponde los derechos y deberes fundamentales 'De los españoles y los extranjeros'?", + "rights" : ["Capítulo Primero del Título I"], + "wrongs" : ["Capítulo [[rand,Segundo|Tercero|Cuarto|Quinto]] del Título I", "Capítulo Primero del Título [[rand,II|III|IV|V|VI|VII|VIII|IX|X]]"] + }, { + "question" : "¿De cuántos artículos se componen el Capítulo [[rand,Primero|De los españoles y los extranjeros]] del Título [[rand,I|De los derechos y deberes fundamentales]] de la Constitución Española?", + "rights" : ["3 artículos"], + "wrongs" : [["1 artículo", 0.1], "[[range,2-2|4-40]] artículos"] + }, { + "question" : "¿De cuántas secciones se componen el Capítulo [[rand,Primero|De los españoles y los extranjeros]] del Título [[rand,I|De los derechos y deberes fundamentales]] de la Constitución Española?", + "rights" : ["Ninguna sección"], + "wrongs" : [["Ninguna sección", 0.2], ["1 sección", 0.17], "[[range,2-7]] secciones"] + }, { + "question" : "¿De qué artículos se componen el Capítulo [[rand,Primero|De los españoles y los extranjeros]] del Título [[rand,I|De los derechos y deberes fundamentales]] de la Constitución Española?", + "rights" : ["Del artículo 11 al artículo 13"], + "wrongs" : [["Sólo el artículo [[range,1-230]]", 0.1], "Del artículo [[serie,1-17]] al artículo [[serie,2-22]]"] + }, { + "question" : "¿Cómo se llama el Capítulo Segundo del Título I de la Constitución Española?", + "rights" : ["Derechos y libertades"], + "wrongs" : ["de los derechos y deberes fundamentales", "de la Corona", "de las Cortes Generales", "de la organización territorial del Estado", "de la Administración Pública", "de la justicia", "de la economía y la hacienda", "de la seguridad social", "de la defensa nacional", "de la Unión Europea"] + }, { + "question" : "¿A qué Capítulo de la Constitución Española corresponde los derechos y deberes fundamentales, 'Derechos y libertades'?", + "rights" : ["Capítulo Segundo del Título I"], + "wrongs" : ["Capítulo [[rand,Primero|Tercero|Cuarto|Quinto]] del Título I", "Capítulo Segundo del Título [[rand,II|III|IV|V|VI|VII|VIII|IX|X]]"] + }, { + "question" : "¿De cuántos artículos se componen el Capítulo [[rand,Segundo|De los Derechos y Libertades]] del Título [[rand,I|De los derechos y deberes fundamentales]] de la Constitución Española?", + "rights" : ["25 artículos"], + "wrongs" : [["1 artículo", 0.1], "[[range,2-24|26-40]] artículos"] + }, { + "question" : "¿De cuántas secciones se componen el Capítulo [[rand,Segundo|De los Derechos y Libertades]] del Título [[rand,I|De los derechos y deberes fundamentales]] de la Constitución Española?", + "rights" : ["2 secciones"], + "wrongs" : [["Ninguna sección", 0.2], ["1 sección", 0.17], "[[range,3-7]] secciones"] + }, { + "question" : "¿De qué artículos se componen el Capítulo [[rand,Segundo|De los Derechos y Libertades]] del Título [[rand,I|De los derechos y deberes fundamentales]] de la Constitución Española?", + "rights" : ["Del artículo 14 al artículo 38"], + "wrongs" : [["Sólo el artículo [[range,1-230]]", 0.1], "Del artículo [[serie,5-32]] al artículo [[serie,10-60]]"] + }, { + "question" : "¿Cómo se llama el Capítulo Tercero del Título I de la Constitución Española?", + "rights" : ["De los principios rectores de la política social y económica"], + "wrongs" : ["de los derechos y deberes fundamentales", "de la Corona", "de las Cortes Generales", "de la organización territorial del Estado", "de la Administración Pública", "de la justicia", "de la economía y la hacienda", "de la seguridad social", "de la defensa nacional", "de la Unión Europea"] + }, { + "question" : "¿A qué Capítulo de la Constitución Española corresponde los derechos y deberes fundamentales, 'De los principios rectores de la política social y económica'?", + "rights" : ["Capítulo Tercero del Título I"], + "wrongs" : ["Capítulo [[rand,Segundo|Primero|Cuarto|Quinto]] del Título I", "Capítulo Tercero del Título [[rand,II|III|IV|V|VI|VII|VIII|IX|X]]"] + }, { + "question" : "¿De cuántos artículos se componen el Capítulo [[rand,Tercero|De los principios rectores de la política social y económica]] del Título [[rand,I|De los derechos y deberes fundamentales]] de la Constitución Española?", + "rights" : ["14 artículos"], + "wrongs" : [["1 artículo", 0.1], "[[range,2-13|15-40]] artículos"] + }, { + "question" : "¿De cuántas secciones se componen el Capítulo [[rand,Tercero|De los principios rectores de la política social y económica]] del Título [[rand,I|De los derechos y deberes fundamentales]] de la Constitución Española?", + "rights" : ["Ninguna sección"], + "wrongs" : [["Ninguna sección", 0.2], ["1 sección", 0.17], "[[range,2-7]] secciones"] + }, { + "question" : "¿De qué artículos se componen el Capítulo [[rand,Tercero|De los principios rectores de la política social y económica]] del Título [[rand,I|De los derechos y deberes fundamentales]] de la Constitución Española?", + "rights" : ["Del artículo 39 al artículo 52"], + "wrongs" : [["Sólo el artículo [[range,1-230]]", 0.1], "Del artículo [[serie,20-60]] al artículo [[serie,25-70]]"] + }, { + "question" : "¿Cómo se llama el Capítulo Cuarto del Título I de la Constitución Española?", + "rights" : ["De las garantías de las libertades y derechos fundamentales"], + "wrongs" : ["de los derechos y deberes fundamentales", "de la Corona", "de las Cortes Generales", "de la organización territorial del Estado", "de la Administración Pública", "de la justicia", "de la economía y la hacienda", "de la seguridad social", "de la defensa nacional", "de la Unión Europea"] + }, { + "question" : "¿A qué Capítulo de la Constitución Española corresponde los derechos y deberes fundamentales, 'De las garantías de las libertades y derechos fundamentales'?", + "rights" : ["Capítulo Cuarto del Título I"], + "wrongs" : ["Capítulo [[rand,Segundo|Primero|Tercero|Quinto]] del Título I", "Capítulo Cuarto del Título [[rand,II|III|IV|V|VI|VII|VIII|IX|X]]"] + }, { + "question" : "¿De cuántos artículos se componen el Capítulo [[rand,Cuarto|De las garantías de las libertades y derechos fundamentales]] del Título [[rand,I|De los derechos y deberes fundamentales]] de la Constitución Española?", + "rights" : ["2 artículos"], + "wrongs" : [["1 artículo", 0.1], "[[range,3-40]] artículos"] + }, { + "question" : "¿De cuántas secciones se componen el Capítulo [[rand,Cuarto|De las garantías de las libertades y derechos fundamentales]] del Título [[rand,I|De los derechos y deberes fundamentales]] de la Constitución Española?", + "rights" : ["Ninguna sección"], + "wrongs" : [["Ninguna sección", 0.2], ["1 sección", 0.17], "[[range,2-7]] secciones"] + }, { + "question" : "¿De qué artículos se componen el Capítulo [[rand,Cuarto|De las garantías de las libertades y derechos fundamentales]] del Título [[rand,I|De los derechos y deberes fundamentales]] de la Constitución Española?", + "rights" : ["Del artículo 53 al artículo 54"], + "wrongs" : [["Sólo el artículo [[range,1-230]]", 0.1], "Del artículo [[serie,20-60]] al artículo [[serie,25-70]]"] + }, { + "question" : "¿Cómo se llama el Capítulo Quinto del Título I de la Constitución Española?", + "rights" : ["De la suspensión de los derechos y libertades"], + "wrongs" : ["de los derechos y deberes fundamentales", "de la Corona", "de las Cortes Generales", "de la organización territorial del Estado", "de la Administración Pública", "de la justicia", "de la economía y la hacienda", "de la seguridad social", "de la defensa nacional", "de la Unión Europea"] + }, { + "question" : "¿A qué Capítulo de la Constitución Española corresponde los derechos y deberes fundamentales, 'De la suspensión de los derechos y libertades'?", + "rights" : ["Capítulo Quinto del Título I"], + "wrongs" : ["Capítulo [[rand,Segundo|Primero|Tercero|Cuarto]] del Título I", "Capítulo Quinto del Título [[rand,II|III|IV|V|VI|VII|VIII|IX|X]]"] + }, { + "question" : "¿De cuántos artículos se componen el Capítulo [[rand,Quinto|De la suspensión de los derechos y libertades]] del Título [[rand,I|De los derechos y deberes fundamentales]] de la Constitución Española?", + "rights" : ["1 artículo"], + "wrongs" : ["[[range,2-40]] artículos"] + }, { + "question" : "¿De cuántas secciones se componen el Capítulo [[rand,Quinto|De la suspensión de los derechos y libertades]] del Título [[rand,I|De los derechos y deberes fundamentales]] de la Constitución Española?", + "rights" : ["Ninguna sección"], + "wrongs" : [["Ninguna sección", 0.2], ["1 sección", 0.17], "[[range,2-7]] secciones"] + }, { + "question" : "¿De qué artículos se componen el Capítulo [[rand,Quinto|De la suspensión de los derechos y libertades]] del Título [[rand,I|De los derechos y deberes fundamentales]] de la Constitución Española?", + "rights" : ["Sólo el artículo 55"], + "wrongs" : [["Sólo el artículo [[range,1-54|56-230]]", 0.1], "Del artículo [[serie,20-60]] al artículo [[serie,25-70]]"] + }, { + "question" : "¿Cómo se llama el Capítulo Primero del Título III de la Constitución Española?", + "rights" : ["De las Cámaras"], + "wrongs" : ["de los derechos y deberes fundamentales", "de la Corona", "de las Cortes Generales", "de la organización territorial del Estado", "de la Administración Pública", "de la justicia", "de la economía y la hacienda", "de la seguridad social", "de la defensa nacional", "de la Unión Europea"] + }, { + "question" : "¿A qué Capítulo de la Constitución Española corresponde a las Cortes Generales, 'De las Cámaras'?", + "rights" : ["Capítulo Primero del Título III"], + "wrongs" : ["Capítulo [[rand,Segundo|Tercero|Cuarto|Quinto]] del Título III", "Capítulo Primero del Título [[rand,I|II|IV|V|VI|VII|VIII|IX|X]]"] + }, { + "question" : "¿De cuántos artículos se componen el Capítulo [[rand,Primero|De las Cámaras]] del Título [[rand,III|De las Cortes Generales]] de la Constitución Española?", + "rights" : ["15 artículos"], + "wrongs" : [["1 artículo", 0.1], "[[range,2-14|16-40]] artículos"] + }, { + "question" : "¿De cuántas secciones se componen el Capítulo [[rand,Primero|De las Cámaras]] del Título [[rand,III|De las Cortes Generales]] de la Constitución Española?", + "rights" : ["Ninguna sección"], + "wrongs" : [["Ninguna sección", 0.2], ["1 sección", 0.17], "[[range,2-7]] secciones"] + }, { + "question" : "¿De qué artículos se componen el Capítulo [[rand,Primero|De las Cámaras]] del Título [[rand,III|De las Cortes Generales]] de la Constitución Española?", + "rights" : ["Del artículo 66 al artículo 80"], + "wrongs" : [["Sólo el artículo [[range,1-230]]", 0.1], "Del artículo [[serie,50-90]] al artículo [[serie,55-100]]"] + }, { + "question" : "¿Cómo se llama el Capítulo Segundo del Título III de la Constitución Española?", + "rights" : ["De la elaboración de las leyes"], + "wrongs" : ["de los derechos y deberes fundamentales", "de la Corona", "de las Cortes Generales", "de la organización territorial del Estado", "de la Administración Pública", "de la justicia", "de la economía y la hacienda", "de la seguridad social", "de la defensa nacional", "de la Unión Europea"] + }, { + "question" : "¿A qué Capítulo de la Constitución Española corresponde a las Cortes Generales, 'De la elaboración de las leyes'?", + "rights" : ["Capítulo Segundo del Título III"], + "wrongs" : ["Capítulo [[rand,Primero|Tercero|Cuarto|Quinto]] del Título III", "Capítulo Segundo del Título [[rand,I|II|IV|V|VI|VII|VIII|IX|X]]"] + }, { + "question" : "¿De cuántos artículos se componen el Capítulo [[rand,Segundo|De la elaboración de las leyes]] del Título [[rand,III|De las Cortes Generales]] de la Constitución Española?", + "rights" : ["12 artículos"], + "wrongs" : [["1 artículo", 0.1], "[[range,2-11|13-40]] artículos"] + }, { + "question" : "¿De cuántas secciones se componen el Capítulo [[rand,Segundo|De la elaboración de las leyes]] del Título [[rand,III|De las Cortes Generales]] de la Constitución Española?", + "rights" : ["Ninguna sección"], + "wrongs" : [["Ninguna sección", 0.2], ["1 sección", 0.17], "[[range,2-7]] secciones"] + }, { + "question" : "¿De qué artículos se componen el Capítulo [[rand,Segundo|De la elaboración de las leyes]] del Título [[rand,III|De las Cortes Generales]] de la Constitución Española?", + "rights" : ["Del artículo 81 al artículo 92"], + "wrongs" : [["Sólo el artículo [[range,1-230]]", 0.1], "Del artículo [[serie,60-90]] al artículo [[serie,65-110]]"] + }, { + "question" : "¿Cómo se llama el Capítulo Tercero del Título III de la Constitución Española?", + "rights" : ["De los Tratados Internacionales"], + "wrongs" : ["de los derechos y deberes fundamentales", "de la Corona", "de las Cortes Generales", "de la organización territorial del Estado", "de la Administración Pública", "de la justicia", "de la economía y la hacienda", "de la seguridad social", "de la defensa nacional", "de la Unión Europea"] + }, { + "question" : "¿A qué Capítulo de la Constitución Española corresponde a las Cortes Generales, 'De los Tratados Internacionales'?", + "rights" : ["Capítulo Tercero del Título III"], + "wrongs" : ["Capítulo [[rand,Primero|Segundo|Cuarto|Quinto]] del Título III", "Capítulo Tercero del Título [[rand,I|II|IV|V|VI|VII|VIII|IX|X]]"] + }, { + "question" : "¿De cuántos artículos se componen el Capítulo [[rand,Tercero|De los Tratados Internacionales]] del Título [[rand,III|De las Cortes Generales]] de la Constitución Española?", + "rights" : ["4 artículos"], + "wrongs" : [["1 artículo", 0.1], "[[range,2-3|5-40]] artículos"] + }, { + "question" : "¿De cuántas secciones se componen el Capítulo [[rand,Tercero|De los Tratados Internacionales]] del Título [[rand,III|De las Cortes Generales]] de la Constitución Española?", + "rights" : ["Ninguna sección"], + "wrongs" : [["Ninguna sección", 0.2], ["1 sección", 0.17], "[[range,2-7]] secciones"] + }, { + "question" : "¿De qué artículos se componen el Capítulo [[rand,Tercero|De los Tratados Internacionales]] del Título [[rand,III|De las Cortes Generales]] de la Constitución Española?", + "rights" : ["Del artículo 93 al artículo 96"], + "wrongs" : [["Sólo el artículo [[range,1-230]]", 0.1], "Del artículo [[serie,60-90]] al artículo [[serie,65-110]]"] + }, { + "question" : "¿Cómo se llama el Capítulo Primero del Título VIII de la Constitución Española?", + "rights" : ["Principios generales"], + "wrongs" : ["de los derechos y deberes fundamentales", "de la Corona", "de las Cortes Generales", "de la organización territorial del Estado", "de la Administración Pública", "de la justicia", "de la economía y la hacienda", "de la seguridad social", "de la defensa nacional", "de la Unión Europea"] + }, { + "question" : "¿A qué Capítulo de la Constitución Española corresponde a la organización territorial del estado, 'De los Principios generales'?", + "rights" : ["Capítulo Primero del Título VIII"], + "wrongs" : ["Capítulo [[rand,Segundo|Tercero|Cuarto|Quinto]] del Título VIII", "Capítulo Primero del Título [[rand,I|II|IV|V|VI|VII|VIII|IX|X]]"] + }, { + "question" : "¿De cuántos artículos se componen el Capítulo [[rand,Primero|De los Tratados Internacionales]] del Título [[rand,VIII|De la organización territorial del Estado]] de la Constitución Española?", + "rights" : ["3 artículos"], + "wrongs" : [["1 artículo", 0.1], "[[range,2|4-40]] artículos"] + }, { + "question" : "¿De cuántas secciones se componen el Capítulo [[rand,Primero|De los Tratados Internacionales]] del Título [[rand,VIII|De la organización territorial del Estado]] de la Constitución Española?", + "rights" : ["Ninguna sección"], + "wrongs" : [["Ninguna sección", 0.2], ["1 sección", 0.17], "[[range,2-7]] secciones"] + }, { + "question" : "¿De qué artículos se componen el Capítulo [[rand,Primero|De los Tratados Internacionales]] del Título [[rand,VIII|De la organización territorial del Estado]] de la Constitución Española?", + "rights" : ["Del artículo 137 al artículo 139"], + "wrongs" : [["Sólo el artículo [[range,1-230]]", 0.1], "Del artículo [[serie,110-160]] al artículo [[serie,115-165]]"] + }, { + "question" : "¿Cómo se llama el Capítulo Segundo del Título VIII de la Constitución Española?", + "rights" : ["De la Administración Local"], + "wrongs" : ["de los derechos y deberes fundamentales", "de la Corona", "de las Cortes Generales", "de la organización territorial del Estado", "de la Administración Pública", "de la justicia", "de la economía y la hacienda", "de la seguridad social", "de la defensa nacional", "de la Unión Europea"] + }, { + "question" : "¿A qué Capítulo de la Constitución Española corresponde a la organización territorial del estado, 'De la Administración Local'?", + "rights" : ["Capítulo Segundo del Título VIII"], + "wrongs" : ["Capítulo [[rand,Primero|Tercero|Cuarto|Quinto]] del Título VIII", "Capítulo Segundo del Título [[rand,I|II|IV|V|VI|VII|VIII|IX|X]]"] + }, { + "question" : "¿De cuántos artículos se componen el Capítulo [[rand,Segundo|De la Administración Local]] del Título [[rand,VIII|De la organización territorial del Estado]] de la Constitución Española?", + "rights" : ["3 artículos"], + "wrongs" : [["1 artículo", 0.1], "[[range,2|4-40]] artículos"] + }, { + "question" : "¿De cuántas secciones se componen el Capítulo [[rand,Segundo|De la Administración Local]] del Título [[rand,VIII|De la organización territorial del Estado]] de la Constitución Española?", + "rights" : ["Ninguna sección"], + "wrongs" : [["Ninguna sección", 0.2], ["1 sección", 0.17], "[[range,2-7]] secciones"] + }, { + "question" : "¿De qué artículos se componen el Capítulo [[rand,Segundo|De la Administración Local]] del Título [[rand,VIII|De la organización territorial del Estado]] de la Constitución Española?", + "rights" : ["Del artículo 140 al artículo 142"], + "wrongs" : [["Sólo el artículo [[range,1-230]]", 0.1], "Del artículo [[serie,120-160]] al artículo [[serie,125-165]]"] + }, { + "question" : "¿Cómo se llama el Capítulo Tercero del Título VIII de la Constitución Española?", + "rights" : ["De las Comunidades Autónomas"], + "wrongs" : ["de los derechos y deberes fundamentales", "de la Corona", "de las Cortes Generales", "de la organización territorial del Estado", "de la Administración Pública", "de la justicia", "de la economía y la hacienda", "de la seguridad social", "de la defensa nacional", "de la Unión Europea"] + }, { + "question" : "¿A qué Capítulo de la Constitución Española corresponde a la organización territorial del estado, 'De las Comunidades Autónomas'?", + "rights" : ["Capítulo Tercero del Título VIII"], + "wrongs" : ["Capítulo [[rand,Primero|Segundo|Cuarto|Quinto]] del Título VIII", "Capítulo Tercero del Título [[rand,I|II|IV|V|VI|VII|VIII|IX|X]]"] + }, { + "question" : "¿De cuántos artículos se componen el Capítulo [[rand,Tercero|De las Comunidades Autónomas]] del Título [[rand,VIII|De la organización territorial del Estado]] de la Constitución Española?", + "rights" : ["16 artículos"], + "wrongs" : [["1 artículo", 0.1], "[[range,2-15|17-40]] artículos"] + }, { + "question" : "¿De cuántas secciones se componen el Capítulo [[rand,Tercero|De las Comunidades Autónomas]] del Título [[rand,VIII|De la organización territorial del Estado]] de la Constitución Española?", + "rights" : ["Ninguna sección"], + "wrongs" : [["Ninguna sección", 0.2], ["1 sección", 0.17], "[[range,2-7]] secciones"] + }, { + "question" : "¿De qué artículos se componen el Capítulo [[rand,Tercero|De las Comunidades Autónomas]] del Título [[rand,VIII|De la organización territorial del Estado]] de la Constitución Española?", + "rights" : ["Del artículo 143 al artículo 158"], + "wrongs" : [["Sólo el artículo [[range,1-230]]", 0.1], "Del artículo [[serie,130-165]] al artículo [[serie,135-175]]"] + }, { + "question" : "¿En qué fecha fue la Aprobación por las Cortes Generales de la constitución Española en sesiones plenarias?", + "rights" : ["31 de Octubre de 1978"], + "wrongs" : ["[[range,1-30]] de [[rand,Diciembre|Octubre]] de 1978", "6 de Diciembre de 1978", "27 de Diciembre de 1978", "29 de Diciembre de 1978"] + }, { + "question" : "¿Quién aprobó la Constitución Española en sesiones plenarias el 31 de Octubre de 1978?", + "rights" : ["Las Cortes Generales"], + "wrongs" : ["El pueblo español en referéndum", "Su Majestad el Rey ante las Cortes", "El Tribunal Constitucional", "El Congreso de los Diputados", "El Senado"] + }, { + "question" : "¿En qué fecha fue la ratificación del pueblo Español de la constitución Española por Referéndum?", + "rights" : ["6 de Diciembre de 1978"], + "wrongs" : ["[[range,1-5|7-31]] de [[rand,Diciembre|Octubre]] de 1978", "31 de Octubre de 1978", "27 de Diciembre de 1978", "29 de Diciembre de 1978"] + }, { + "question" : "¿Quién ratificó la Constitución Española?", + "rights" : ["El pueblo español en referéndum"], + "wrongs" : ["Las Cortes Generales", "Su Majestad el Rey ante las Cortes", "El Tribunal Constitucional", "El Congreso de los Diputados", "El Senado"] + }, { + "question" : "¿Quién sancionó y promulgó la Constitución Española ante las Cortes?", + "rights" : ["Su Majestad el Rey"], + "wrongs" : ["El pueblo español en referéndum", "El Tribunal Constitucional", "El Congreso de los Diputados", "El Senado"] + }, { + "question" : "¿En qué fecha fue la sanción y promulgación por su majestad el Rey ante las Cortes para la constitución Española?", + "rights" : ["27 de Diciembre de 1978"], + "wrongs" : ["[[range,1-27|28-31]] de [[rand,Diciembre|Octubre]] de 1978", "31 de Octubre de 1978", "6 de Diciembre de 1978", "29 de Diciembre de 1978"] + }, { + "question" : "¿En qué fecha fue publica en el BOE la constitución Española?", + "rights" : ["29 de Diciembre de 1978"], + "wrongs" : ["[[range,1-28|30-31]] de [[rand,Diciembre|Octubre]] de 1978", "31 de Octubre de 1978", "6 de Diciembre de 1978", "27 de Diciembre de 1978"] + }, { + "question" : "¿En qué fecha entra vigor la constitución Española?", + "rights" : ["29 de Diciembre de 1978"], + "wrongs" : ["[[range,1-28|30-31]] de [[rand,Diciembre|Octubre]] de 1978", "31 de Octubre de 1978", "6 de Diciembre de 1978", "27 de Diciembre de 1978"] + }, { + "question" : "¿Cuándo se modificó el Artículo 13.2 de la Constitución Española?", + "rights" : ["27 de Agosto de 1992"], + "wrongs" : ["[[range,1-31]] de [[rand,Enero|Febrero|Marzo|Abril|Mayo|Junio|Julio|Agosto|Septiembre|Octubre|Noviembre|Diciembre]] de [[range,1978-2025]]", "31 de Octubre de 1978", "6 de Diciembre de 1978", "27 de Diciembre de 1978", "27 de Septiembre de 2011", "15 de Febrero de 2024"] + }, { + "question" : "¿Cuándo se modificó el Artículo 135 de la Constitución Española?", + "rights" : ["27 de Septiembre de 2011"], + "wrongs" : ["[[range,1-31]] de [[rand,Enero|Febrero|Marzo|Abril|Mayo|Junio|Julio|Agosto|Septiembre|Octubre|Noviembre|Diciembre]] de [[range,1978-2025]]", "31 de Octubre de 1978", "6 de Diciembre de 1978", "27 de Diciembre de 1978", "27 de Agosto de 1992", "15 de Febrero de 2024"] + }, { + "question" : "¿Cuándo se modificó el Artículo 49 de la Constitución Española?", + "rights" : ["15 de Febrero de 2024"], + "wrongs" : ["[[range,1-31]] de [[rand,Enero|Febrero|Marzo|Abril|Mayo|Junio|Julio|Agosto|Septiembre|Octubre|Noviembre|Diciembre]] de [[range,1978-2025]]", "31 de Octubre de 1978", "6 de Diciembre de 1978", "27 de Diciembre de 1978", "27 de Agosto de 1992", "27 de Septiembre de 2011"] + }, { + "question" : "¿Qué sucedió el 31 de Octubre de 1978?", + "rights" : ["La aprobación de la Constitución Española por las Cortes Generales en sesiones plenarias"], + "wrongs" : ["Se ratificó la Constitución Española por el pueblo español en referéndum", "Se sancionó y promulgó la Constitución Española por su Majestad el Rey ante las Cortes", "Se publicó la Constitución Española en el BOE", "Entró en vigor la Constitución Española", "Se le añade la expresión 'y pasivo' al artículo 13.2 de la Constitución Española", "Se modifica el artículo 135 de la Constitución Española para incluir el principio de estabilidad presupuestaria", "Se modifica el artículo 49 de la Constitución Española para sustituir el término 'disminuidos' por 'personas con discapacidad'"] + }, { + "question" : "¿Qué sucedió el 6 de Diciembre de 1978?", + "rights" : ["Se ratificó la Constitución Española por el pueblo español en referéndum"], + "wrongs" : ["La aprobación de la Constitución Española por las Cortes Generales en sesiones plenarias", "Se sancionó y promulgó la Constitución Española por su Majestad el Rey ante las Cortes", "Se publicó la Constitución Española en el BOE", "Entró en vigor la Constitución Española", "Se le añade la expresión 'y pasivo' al artículo 13.2 de la Constitución Española", "Se modifica el artículo 135 de la Constitución Española para incluir el principio de estabilidad presupuestaria", "Se modifica el artículo 49 de la Constitución Española para sustituir el término 'disminuidos' por 'personas con discapacidad'"] + }, { + "question" : "¿Qué sucedió el 27 de Diciembre de 1978?", + "rights" : ["Se sancionó y promulgó la Constitución Española por su Majestad el Rey ante las Cortes"], + "wrongs" : ["La aprobación de la Constitución Española por las Cortes Generales en sesiones plenarias", "Se ratificó la Constitución Española por el pueblo español en referéndum", "Se publicó la Constitución Española en el BOE", "Entró en vigor la Constitución Española", "Se le añade la expresión 'y pasivo' al artículo 13.2 de la Constitución Española", "Se modifica el artículo 135 de la Constitución Española para incluir el principio de estabilidad presupuestaria", "Se modifica el artículo 49 de la Constitución Española para sustituir el término 'disminuidos' por 'personas con discapacidad'"] + }, { + "question" : "¿Qué sucedió el 29 de Diciembre de 1978?", + "rights" : ["Se publicó la Constitución Española en el BOE", "Entró en vigor la Constitución Española"], + "wrongs" : ["La aprobación de la Constitución Española por las Cortes Generales en sesiones plenarias", "Se ratificó la Constitución Española por el pueblo español en referéndum", "Se sancionó y promulgó la Constitución Española por su Majestad el Rey ante las Cortes", "Se le añade la expresión 'y pasivo' al artículo 13.2 de la Constitución Española", "Se modifica el artículo 135 de la Constitución Española para incluir el principio de estabilidad presupuestaria", "Se modifica el artículo 49 de la Constitución Española para sustituir el término 'disminuidos' por 'personas con discapacidad'"] + }, { + "question" : "¿Qué sucedió el 27 de Agosto de 1992?", + "rights" : ["Se le añade la expresión 'y pasivo' al artículo 13.2 de la Constitución Española"], + "wrongs" : ["La aprobación de la Constitución Española por las Cortes Generales en sesiones plenarias", "Se ratificó la Constitución Española por el pueblo español en referéndum", "Se sancionó y promulgó la Constitución Española por su Majestad el Rey ante las Cortes", "Se publicó la Constitución Española en el BOE", "Entró en vigor la Constitución Española", "Se modifica el artículo 135 de la Constitución Española para incluir el principio de estabilidad presupuestaria", "Se modifica el artículo 49 de la Constitución Española para sustituir el término 'disminuidos' por 'personas con discapacidad'"] + }, { + "question" : "¿Qué sucedió el 27 de septiembre de 2011?", + "rights" : ["Se modifica el artículo 135 de la Constitución Española para incluir el principio de estabilidad presupuestaria"], + "wrongs" : ["La aprobación de la Constitución Española por las Cortes Generales en sesiones plenarias", "Se ratificó la Constitución Española por el pueblo español en referéndum", "Se sancionó y promulgó la Constitución Española por su Majestad el Rey ante las Cortes", "Se publicó la Constitución Española en el BOE", "Entró en vigor la Constitución Española", "Se le añade la expresión 'y pasivo' al artículo 13.2 de la Constitución Española", "Se modifica el artículo 49 de la Constitución Española para sustituir el término 'disminuidos' por 'personas con discapacidad'"] + }, { + "question" : "¿Qué sucedió el 15 de Febrero de 2024?", + "rights" : ["Se modifica el artículo 49 de la Constitución Española para sustituir el término 'disminuidos' por 'personas con discapacidad'"], + "wrongs" : ["La aprobación de la Constitución Española por las Cortes Generales en sesiones plenarias", "Se ratificó la Constitución Española por el pueblo español en referéndum", "Se sancionó y promulgó la Constitución Española por su Majestad el Rey ante las Cortes", "Se publicó la Constitución Española en el BOE", "Entró en vigor la Constitución Española", "Se le añade la expresión 'y pasivo' al artículo 13.2 de la Constitución Española", "Se modifica el artículo 135 de la Constitución Española para incluir el principio de estabilidad presupuestaria"] + }, { + "question" : "¿Quiénes son los Poderes Públicos del Estado?", + "rights" : ["[[Mix,y,el poder legislativo|el poder ejecutivo|el poder judicial]]."], + "wrongs" : ["El poder legislativo y el poder ejecutivo.", "El poder legislativo y el poder judicial.", "El poder ejecutivo y el poder judicial.", "El poder legislativo.", "El poder ejecutivo.", "El poder judicial.", "Ninguno de los anteriores."] + }] +}] \ No newline at end of file diff --git a/Public/json/paco/paco.ce.01.constitucion.preliminar.json b/Public/json/paco/paco.ce.01.constitucion.preliminar.json new file mode 100644 index 0000000..54f6a10 --- /dev/null +++ b/Public/json/paco/paco.ce.01.constitucion.preliminar.json @@ -0,0 +1,172 @@ +[{ + "origin" : "Paco Barbié", + "title" : "Constitución - Preámbulo y Título Preliminar", + "source" : "https://www.youtube.com/watch?v=saHVlJohBTU", + "queries" : [{ + "question" : "¿Qué es el preámbulo?", + "rights" : ["Es una carta de presentación de la Constitución Española."], + "wrongs" : ["Es un conjunto de artículos que desarrollan los derechos fundamentales.", "Es una sección que establece la estructura del gobierno.", "Es un resumen de las leyes principales del país."] + }, { + "question" : "¿Qué proclama el preámbulo?", + "rights" : ["Los valores y principios en los que se basa la Constitución."], + "wrongs" : ["Los derechos y deberes de los ciudadanos.", "La estructura del gobierno y sus funciones.", "Un resumen de las leyes principales del país."] + }, { + "question" : "¿En qué se constituye el estado Español?", + "rights" : ["En un estado social y democrático de derecho."], + "wrongs" : ["En un estado autoritario y centralizado.", "En un estado federal y confederado.", "En un estado socialista y planificado."] + }, { + "question" : "¿Cuáles son los valores superiores del ordenamiento jurídico?", + "rights" : ["[[Mix,y,la libertad|la justicia|la igualdad|el pluralismo político]]."], + "wrongs" : [ + "[[Mix,y,la seguridad|el orden|la tradición|la autoridad]].", + "[[Mix,y,la riqueza|el poder|el control|la dominación]].", + "[[Mix,y,la unidad|la homogeneidad|la conformidad|la obediencia]].", + "[[Mix,y,la solidaridad|la fraternidad|la cooperación|la ayuda mutua]].", + "[[Mix,y,la paz|la tolerancia|el respeto|la convivencia]].", + "[[Mix,y,la democracia|la participación|la transparencia|la rendición de cuentas]].", + "[[Mix,y,la soberanía|la independencia|la autonomía|la autogestión]].", + "[[Mix,y,la diversidad|la multiculturalidad|la pluralidad|la inclusión]].", + "[[Mix,y,la innovación|la creatividad|el progreso|el desarrollo]].", + "[[Mix,y,la sostenibilidad|la ecología|el medio ambiente|la conservación]].", + "[[Mix,y,la educación|la cultura|el conocimiento|la ciencia]].", + "[[Mix,y,la salud|el bienestar|la calidad de vida|la felicidad]].", + "[[Mix,y,la familia|la comunidad|la sociedad|la nación]]." + ] + }, { + "question" : "¿De dónde emanan los poderes del estado?", + "rights" : ["Del pueblo, a través de la soberanía nacional.", "De la soberanía nacional"], + "wrongs" : ["De la monarquía, a través del derecho divino.", "De las instituciones, a través de la legalidad.", "De los partidos políticos, a través de la representación."] + }, { + "question" : "¿Dónde reside la soberanía nacional?", + "rights" : ["En el pueblo español."], + "wrongs" : ["En el rey o la reina.", "En las instituciones del estado.", "En los partidos políticos."] + }, { + "question" : "¿Cuál es la forma política del estado español?", + "rights" : ["La monarquía parlamentaria."], + "wrongs" : ["La república federal.", "La república presidencialista.", "La monarquía absoluta.", "El estado socialista.", "La confederación de estados.", "El estado teocrático.", "La dictadura militar.", "El estado anárquico.", "La oligarquía plutocrática.", "El estado comunista.", "La democracia directa.", "El estado autoritario.", "La tecnocracia.", "El estado totalitario.", "La meritocracia.", "El estado tribal.", "La democracia participativa.", "El estado feudal.", "La democracia representativa."] + }, { + "question" : "¿En qué se fundamenta la Constitución Española?", + "rights" : ["En la indisoluble unidad de la nación española, patria común e indivisible de todos los españoles."], + "wrongs" : ["En la diversidad de las nacionalidades y regiones que la integran.", "En la autonomía de las comunidades autónomas.", "En la solidaridad entre las nacionalidades y regiones."] + }, { + "question" : "¿Qué reconoce y garantiza la Constitución Española?", + "rights" : ["El derecho a la autonomía de las nacionalidades y regiones que la integran y la solidaridad entre todas ellas."], + "wrongs" : ["El derecho a la independencia de las nacionalidades y regiones que la integran.", "El derecho a la secesión de las nacionalidades y regiones que la integran.", "El derecho a la supremacía de las nacionalidades y regiones que la integran."] + }, { + "question" : "¿Cuál es la lengua oficial del estado Español?", + "rights" : ["El castellano."], + "wrongs" : ["El castellano conjunto con el catalán, el gallego y el vasco.", "La competente en cada Comunidad Autónoma.", "El Español"] + }, { + "question" : "¿Con respecto [[rand,a la lengua oficial del Estado|al castellano]], qué dice la Constitución Española?", + "rights" : ["Todos los españoles tienen el deber de conocerla y el derecho a usarla."], + "wrongs" : ["Solo los españoles de nacimiento tienen el deber de conocerla y el derecho a usarla.", "Solo los españoles residentes en la península tienen el deber de conocerla y el derecho a usarla.", "Solo los españoles mayores de edad tienen el deber de conocerla y el derecho a usarla."] + }, { + "question" : "¿Qué dice la Constitución Española sobre las demás lenguas españolas?", + "rights" : ["Las demás lenguas españolas serán también oficiales en las respectivas Comunidades Autónomas de acuerdo con sus Estatutos."], + "wrongs" : ["Las demás lenguas españolas no tienen ningún reconocimiento oficial.", "Las demás lenguas españolas son oficiales en todo el territorio nacional.", "Las demás lenguas españolas son oficiales solo en las regiones donde se hablan mayoritariamente."] + }, { + "question" : "¿Qué dice la Constitución Española sobre el respeto a las lenguas?", + "rights" : ["Los poderes públicos tienen el deber de respetar y proteger las lenguas españolas."], + "wrongs" : ["Los poderes públicos no tienen ningún deber respecto a las lenguas españolas.", "Los poderes públicos tienen el deber de promover solo el castellano.", "Los poderes públicos tienen el deber de promover solo las lenguas cooficiales."] + }, { + "question" : "¿Qué dice la Constitución Española sobre la riqueza de las distintas modalidades lingüísticas de España?", + "rights" : ["La riqueza de las distintas modalidades lingüísticas de España es un patrimonio cultural que será objeto de especial respeto y protección."], + "wrongs" : ["La riqueza de las distintas modalidades lingüísticas de España no tiene ningún reconocimiento oficial.", "La riqueza de las distintas modalidades lingüísticas de España es un patrimonio cultural que será objeto de especial promoción y difusión.", "La riqueza de las distintas modalidades lingüísticas de España es un patrimonio cultural que será objeto de especial regulación y control."] + }, { + "question" : "¿Cómo está formada la bandera de España?", + "rights" : ["Por tres franjas horizontales: roja, amarilla y roja, siendo la amarilla de doble anchura que cada una de las rojas."], + "wrongs" : ["Por tres franjas verticales: roja, amarilla y roja, siendo la amarilla de doble anchura que cada una de las rojas.", "Por dos franjas horizontales: roja y amarilla, siendo la amarilla de doble anchura que la roja.", "Por dos franjas verticales: roja y amarilla, siendo la amarilla de doble anchura que la roja."] + }, { + "question" : "¿Se reconocen las banderas y enseñas de las Comunidades Autónomas?", + "rights" : ["Sí, junto a la bandera de España."], + "wrongs" : ["No, solo se reconoce la bandera de España.", "Sí, pero solo en las Comunidades Autónomas.", "No, solo se reconocen las banderas de las provincias."] + }, { + "question" : "¿Cuál es la Capital de España?", + "rights" : ["La villa de Madrid."], + "wrongs" : ["Madrid.", "La Comunidad de Madrid.", "La Ciudad de Madrid."] + }, { + "question" : "¿Qué expresan los partidos políticos?", + "rights" : ["La pluralidad de la sociedad española."], + "wrongs" : ["La unidad de la sociedad española.", "La homogeneidad de la sociedad española.", "La conformidad de la sociedad española."] + }, { + "question" : "¿Qué son los partidos políticos?", + "rights" : ["Instrumentos fundamentales para la participación política."], + "wrongs" : ["Organizaciones sociales sin relevancia política.", "Grupos de interés económico.", "Asociaciones culturales."] + }, { + "question" : "¿[[rand,Qué papel tienen|En qué concurren]] los partidos políticos en la sociedad española?", + "rights" : ["Contribuyen a la formación y manifestación de la voluntad popular."], + "wrongs" : ["Controlan la voluntad popular.", "Manipulan la voluntad popular.", "Ignoran la voluntad popular."] + }, { + "question" : "¿Cómo es la creación y el ejercicio de la actividad de los partidos políticos?", + "rights" : ["Libre dentro del respeto a la Constitución y a la ley."], + "wrongs" : ["Controlada por el gobierno.", "Regulada por las instituciones del estado.", "Limitada por los partidos mayoritarios."] + }, { + "question" : "¿Cómo es la estructura interna de los partidos políticos?", + "rights" : ["Democrática."], + "wrongs" : ["Autoritaria.", "Centralizada.", "Oligárquica."] + }, { + "question" : "¿A qué contribuyen [[mix,y,los sindicatos|las asociaciones empresariales]]?", + "rights" : ["A la defensa y promoción de los intereses [[mix,y,económicos|sociales]] que les son propios."], + "wrongs" : ["A la defensa y promoción de los intereses políticos que les son propios.", "A la defensa y promoción de los intereses culturales que les son propios.", "A la defensa y promoción de los intereses religiosos que les son propios."] + }, { + "question" : "¿Qué defienden los sindicatos de trabajadores?", + "rights" : ["Los intereses [[mix,y,económicos|sociales]] de los trabajadores."], + "wrongs" : ["Los intereses [[mix,y,económicos|sociales]] de los empresarios.", "Los intereses políticos de los trabajadores.", "Los intereses culturales de los trabajadores."] + }, { + "question" : "¿Qué defienden las asociaciones empresariales?", + "rights" : ["Los intereses [[mix,y,económicos|sociales]] de los empresarios."], + "wrongs" : ["Los intereses [[mix,y,económicos|sociales]] de los trabajadores.", "Los intereses políticos de los empresarios.", "Los intereses culturales de los empresarios."] + }, { + "question" : "¿Cómo [[rand,es la estructura interna de|han de ser]] [[mix,y,los sindicatos|las asociaciones empresariales]]?", + "rights" : ["Democráticos."], + "wrongs" : ["Autoritarios.", "Centralizados.", "Oligárquicos."] + }, { + "question" : "¿Cómo es la creación y el ejercicio de la actividad de [[mix,y,los sindicatos|las asociaciones empresariales]]?", + "rights" : ["Libre dentro del respeto a la Constitución y a la ley."], + "wrongs" : ["Controlada por el gobierno.", "Regulada por las instituciones del estado.", "Limitada por los partidos mayoritarios."] + }, { + "question" : "¿Por qué están constituídas las Fuerzas Armadas?", + "rights" : ["Por [[mix,y,el Ejército de Tierra|la Armada|el Ejército del Aire]]."], + "wrongs" : ["Por [[mix,y,el Ejército de Tierra|la Armada]].", "Por [[mix,y,el Ejército del Aire|la Armada]].", "Por [[mix,y,el Ejército de Tierra|el Ejército del Aire]]."] + }, { + "question" : "¿Cuál es la misión de las Fuerzas Armadas?", + "rights" : ["[[Mix,y,garantizar la soberanía e independencia de España|defender su integridad territorial|defender el ordenamiento constitucional]]."], + "wrongs" : ["[[Mix,y,garantizar la soberanía e independencia de España|defender su integridad territorial]].", "[[Mix,y,garantizar la soberanía e independencia de España|defender el ordenamiento constitucional]].", "[[Mix,y,defender su integridad territorial|defender el ordenamiento constitucional]]."] + }, { + "question" : "¿Quién se encarga de [[rand,garantizar la soberanía e independencia de España|defender su integridad territorial|defender el ordenamiento constitucional]]?", + "rights" : ["Las Fuerzas Armadas.", "[[Mix,y,el Ejército de Tierra|la Armada|el Ejército del Aire]]."], + "wrongs" : ["El gobierno.", "El parlamento.", "El presidente del gobierno."] + }, { + "question" : "¿A quién están sometidas las Fuerzas Armadas?", + "rights" : ["Al poder civil."], + "wrongs" : ["Al poder militar.", "Al poder judicial.", "Al poder legislativo."] + }, { + "question" : "¿Quién regula la organización militar conforme a los principios de la Constitución?", + "rights" : ["La ley orgánica."], + "wrongs" : ["El gobierno.", "El parlamento.", "El presidente del gobierno.", "La ley ordinaria.", "El rey o la reina.", "El poder judicial.", "El poder legislativo."] + }, { + "question" : "¿A qué están sujetos [[mix,y,los ciudadanos|los poderes públicos]]?", + "rights" : ["A la Constitución y al resto del ordenamiento jurídico."], + "wrongs" : ["A la voluntad del pueblo.", "A la autoridad del gobierno.", "A las decisiones del parlamento."] + }, { + "question" : "¿Qué promueven los Poderes Públicos?", + "rights" : ["Que las condiciones para que la libertad y la igualdad del individuo y de los grupos en que se integra sean reales y efectivas."], + "wrongs" : ["Que las condiciones para que la libertad y la igualdad del individuo y de los grupos en que se integra sean formales y nominales.", "Que las condiciones para que la libertad y la igualdad del individuo y de los grupos en que se integra sean limitadas y controladas.", "Que las condiciones para que la libertad y la igualdad del individuo y de los grupos en que se integra sean restringidas y supervisadas."] + }, { + "question" : "¿Qué facilitan los Poderes Públicos?", + "rights" : ["La participación de todos los ciudadanos en la vida política, económica, cultural y social."], + "wrongs" : ["La participación de todos los ciudadanos en la vida política únicamente.", "La participación de todos los ciudadanos en la vida económica únicamente.", "La participación de todos los ciudadanos en la vida cultural únicamente."] + }, { + "question" : "¿Qué remueven los Poderes Públicos?", + "rights" : ["Los obstáculos que impidan o dificulten la plenitud de la libertad y la igualdad de los ciudadanos."], + "wrongs" : ["Los obstáculos que impidan o dificulten la libertad y la igualdad de los ciudadanos únicamente.", "Los obstáculos que impidan o dificulten la libertad y la igualdad de los ciudadanos en la vida política únicamente.", "Los obstáculos que impidan o dificulten la libertad y la igualdad de los ciudadanos en la vida económica únicamente."] + }, { + "question" : "¿Qué principios garantiza la Constitución Española?", + "rights" : ["[[Mix,y,la legalidad|la jerarquía normativa|la publicidad de las normas|la irretroactividad de las disposiciones sancionadoras no favorables o restrictivas de derechos individuales|la seguridad jurídica|la responsabilidad|la interdicción de la arbitrariedad de los poderes públicos]]."], + "wrongs" : [ + "[[Mix,y,la legalidad|la jerarquía normativa|la publicidad de las normas|la irretroactividad de las disposiciones sancionadoras favorables o restrictivas de derechos individuales|la seguridad jurídica|la responsabilidad|la interdicción de la arbitrariedad de los poderes públicos]].", + "[[Mix,y,la legalidad|la jerarquía normativa|la publicidad de las normas|la irretroactividad de las disposiciones sancionadoras no favorables o restrictivas de derechos individuales|la seguridad jurídica|la responsabilidad|la arbitrariedad de los poderes públicos]].", + "[[Mix,y,la legalidad|la jerarquía normativa|la publicidad de las normas|la irretroactividad de las disposiciones sancionadoras no favorables o restrictivas de derechos individuales|la seguridad jurídica|la irresponsabilidad|la interdicción de la arbitrariedad de los poderes públicos]]." + ] + }] +}] \ No newline at end of file diff --git a/Public/json/paco/paco.ce.02.constitucion.preliminar-articulado.json b/Public/json/paco/paco.ce.02.constitucion.preliminar-articulado.json new file mode 100644 index 0000000..e72d9a0 --- /dev/null +++ b/Public/json/paco/paco.ce.02.constitucion.preliminar-articulado.json @@ -0,0 +1,123 @@ +[{ + "origin" : "Paco Barbié", + "title" : "Constitución - Articulado del Título Preliminar", + "source" : "https://www.youtube.com/watch?v=saHVlJohBTU", + "queries" : [{ + "question" : "¿Qué artículo de la Constitución Española regula la soberanía nacional?", + "rights" : ["El artículo 1."], + "wrongs" : ["El artículo [[range,2-9]]."] + }, { + "question" : "¿Qué artículo de la Constitución Española regula la forma política del Estado?", + "rights" : ["El artículo 1."], + "wrongs" : ["El artículo [[range,2-9]]."] + }, { + "question" : "¿Qué regular el artículo 1 de la Constitución Española?", + "rights" : ["[[Mix,y,la soberanía nacional|la forma política del Estado]]."], + "wrongs" : ["La unidad de España y las lenguas españolas.", "La bandera de España y la capital de España.", "Los partidos políticos y los sindicatos."] + }, { + "question" : "¿Qué artículo de la Constitución Española regula la unidad de España?", + "rights" : ["El artículo 2."], + "wrongs" : ["El artículo [[range,1|3-9]]."] + }, { + "question" : "¿Qué regula el artículo 2 de la Constitución Española?", + "rights" : ["La unidad de España."], + "wrongs" : ["La soberanía nacional y la forma política del Estado.", "Las lenguas españolas y la bandera de España.", "La capital de España y los partidos políticos."] + }, { + "question" : "¿En qué artículo de la Constitución Española se regulan las lenguas españolas?", + "rights" : ["En el artículo 3."], + "wrongs" : ["En el artículo [[range,1-2|4-9]]."] + }, { + "question" : "¿Qué regula el artículo 3 de la Constitución Española?", + "rights" : ["Las lenguas españolas."], + "wrongs" : ["La unidad de España y la soberanía nacional.", "La forma política del Estado y la bandera de España.", "La capital de España y los partidos políticos."] + }, { + "question" : "¿Qué ley regula la bandera de España y las demás banderas y enseñas?", + "rights" : ["La Ley 39/1981, de 28 de octubre, de la bandera de España y del escudo de España y otras banderas y enseñas."], + "wrongs" : ["La Ley 1/1978, de 6 de enero, de la Constitución Española.", "La Ley 2/1981, de 28 de octubre, de la bandera de España y del escudo de España y otras banderas y enseñas.", "La Ley 39/1978, de 6 de enero, de la Constitución Española."] + }, { + "question" : "¿Qué ley regular la bandera de España y las demás banderas y enseñas?", + "rights" : ["La Ley 39/1981, de 28 de octubre."], + "wrongs" : ["La Ley 1/1978, de 6 de enero.", "La Ley 2/1981, de 28 de octubre.", "La Ley 39/1978, de 6 de enero."] + }, { + "question" : "¿En qué artículo de la Constitución Española se establece la bandera de España?", + "rights" : ["En el artículo 4."], + "wrongs" : ["En el artículo [[range,1-3|5-9]]."] + }, { + "question" : "¿Qué establece el artículo 4 de la Constitución Española?", + "rights" : ["La bandera de España y las demás banderas y enseñas."], + "wrongs" : ["La unidad de España y las lenguas españolas.", "La soberanía nacional y la forma política del Estado.", "La capital de España y los partidos políticos."] + }, { + "question" : "¿En qué artículo de la Constitución Española se establece la capital de España?", + "rights" : ["En el artículo 5."], + "wrongs" : ["En el artículo [[range,1-4|6-9]]."] + }, { + "question" : "¿Qué establece el artículo 5 de la Constitución Española?", + "rights" : ["La capital de España."], + "wrongs" : ["La unidad de España y las lenguas españolas.", "La soberanía nacional y la forma política del Estado.", "La bandera de España y los partidos políticos."] + }, { + "question" : "¿Qué artículo de la Constitución Española regula los partidos políticos?", + "rights" : ["El artículo 6."], + "wrongs" : ["El artículo [[range,1-5|7-9]]."] + }, { + "question" : "¿Qué regula el artículo 6 de la Constitución Española?", + "rights" : ["Los partidos políticos."], + "wrongs" : ["La unidad de España y las lenguas españolas.", "La soberanía nacional y la forma política del Estado.", "La bandera de España y la capital de España."] + }, { + "question" : "¿Qué artículo de la Constitución Española regula [mix,y,los sindicatos|las asociaciones empresariales]]?", + "rights" : ["El artículo 7."], + "wrongs" : ["El artículo [[range,1-6|8-9]]."] + }, { + "question" : "¿Qué regular el artículo 7 de la Constitución Española?", + "rights" : ["[[Mix,y,los sindicatos|las asociaciones empresariales]]."], + "wrongs" : ["La unidad de España y las lenguas españolas.", "La soberanía nacional y la forma política del Estado.", "La bandera de España y la capital de España."] + }, { + "question" : "¿Qué artículo de la Constitucioón Española se refiere a las Fuerzas Armadas?", + "rights" : ["El artículo 8."], + "wrongs" : ["El artículo [[range,1-7|9]]."] + }, { + "question" : "¿Qué regula el artículo 8 de la Constitución Española?", + "rights" : ["Las Fuerzas Armadas."], + "wrongs" : ["La unidad de España y las lenguas españolas.", "La soberanía nacional y la forma política del Estado.", "La bandera de España y la capital de España."] + }, { + "question" : "¿Qué Ley Orgánica regula las Fuerzas Armadas?", + "rights" : ["La Ley Orgánica 5/2005, de 17 de noviembre, de la Defensa Nacional."], + "wrongs" : ["La Ley Orgánica 1/2005, de 17 de noviembre, de la Defensa Nacional.", "La Ley Orgánica 6/2005, de 17 de noviembre, de la Defensa Nacional.", "La Ley Orgánica 5/2006, de 17 de noviembre, de la Defensa Nacional."] + }, { + "question" : "¿Qué regular la Ley Orgánica 5/2005, de 17 de noviembre?", + "rights" : ["Las Fuerzas Armadas.", "[[Mix,y,el Ejército de Tierra|la Armada|el Ejército del Aire]]."], + "wrongs" : ["La unidad de España y las lenguas españolas.", "La soberanía nacional y la forma política del Estado.", "La bandera de España y la capital de España."] + }, { + "question" : "¿En qué artículo se habla sobre los principios que garantiza la Constitución Española?", + "rights" : ["En el artículo 9."], + "wrongs" : ["En el artículo [[range,1-8]]."] + }, { + "question" : "¿Qué principios garantiza la Constitución Española según el artículo 9?", + "rights" : ["[[Mix,y,la legalidad|la jerarquía normativa|la publicidad de las normas|la irretroactividad de las disposiciones sancionadoras no favorables o restrictivas de derechos individuales|la seguridad jurídica|la responsabilidad|la interdicción de la arbitrariedad de los poderes públicos.]]"], + "wrongs" : [ + "[[Mix,y,la legalidad|la jerarquía normativa|la publicidad de las normas|la irretroactividad de las disposiciones sancionadoras favorables o restrictivas de derechos individuales|la seguridad jurídica|la responsabilidad|la arbitrariedad de los poderes públicos.]]", + "[[Mix,y,la legalidad|la jerarquía normativa|la publicidad de las normas|la irretroactividad de las disposiciones sancionadoras no favorables o restrictivas de derechos individuales|la seguridad jurídica|la irresponsabilidad|la interdicción de la arbitrariedad de los poderes públicos.]]", + "[[Mix,y,la ilegalidad|la jerarquía normativa|la publicidad de las normas|la irretroactividad de las disposiciones sancionadoras no favorables o restrictivas de derechos individuales|la seguridad jurídica|la responsabilidad|la interdicción de la arbitrariedad de los poderes públicos.]]", + "[[Mix,y,la legalidad|la jerarquía normativa|la publicidad de las normas|la irretroactividad de las disposiciones sancionadoras no favorables o restrictivas de derechos individuales|la inseguridad jurídica|la responsabilidad|la interdicción de la arbitrariedad de los poderes públicos.]]" + ] + }, { + "question" : "¿A quiénes sujetan el artículo 9 de la Constitución Española?", + "rights" : ["[[Mix,y,a los poderes públicos|a los ciudadanos]]."], + "wrongs" : ["A los poderes públicos.", "A los ciudadanos.", "A ninguno de los anteriores."] + }, { + "question" : "¿Qué determina el Artículo 9 con respecto a los Poderes Públicos?", + "rights" : ["Que deben actuar conforme a la Constitución y al resto del ordenamiento jurídico."], + "wrongs" : ["Que tienen libertad total para actuar sin restricciones.", "Que solo deben rendir cuentas ante el Rey.", "Que su actuación no está sujeta a control judicial."] + }, { + "question" : "¿En qué artículo se establece el principio constitucional de [[rand,legalidad|jerarquía normativa|publicidad de las normas|irretroactividad de las disposiciones sancionadoras no favorables o restrictivas de derechos individuales|seguridad jurídica|responsabilidad|interdicción de la arbitrariedad de los poderes públicos]] en la Constitución Española?", + "rights" : ["En el artículo 9."], + "wrongs" : ["En el artículo [[range,1-8]]."] + }, { + "question" : "¿En qué artículo se encuentra regulado el principio de publicidad?", + "rights" : ["En el artículo 9.3."], + "wrongs" : ["En el artículo [[range,1-170]].[[range,1-3]]."] + }, { + "question" : "¿En qué artículo se encuentra regulado el principio de mérito y capacidad?", + "rights" : ["En el artículo 103.3."], + "wrongs" : ["En el artículo [[range,1-170]].[[range,1-3]]."] + }] +}] \ No newline at end of file diff --git a/Public/json/paco/paco.ce.03.constitucion.i.json b/Public/json/paco/paco.ce.03.constitucion.i.json new file mode 100644 index 0000000..5617ed1 --- /dev/null +++ b/Public/json/paco/paco.ce.03.constitucion.i.json @@ -0,0 +1,1404 @@ +[{ + "origin" : "Paco Barbié", + "title" : "Constitución - Título I - Derechos y Deberes Fundamentales", + "source" : "https://www.youtube.com/watch?v=saHVlJohBTU", + "group" : "paco_constitucion_i", + "queries" : [{ + "question" : "¿Cuál es el nombre del Título [[rand,I|de los Derechos y Deberes Fundamentales]] de la Constitución Española?", + "rights" : ["De los Derechos y Deberes Fundamentales."], + "brothers_are_wrongs" : true + }, { + "question" : "Cuál es el nombre del Capítulo Primero del Título [[rand,I|de los Derechos y Deberes Fundamentales]] de la Constitución Española?", + "rights" : ["De los españoles y los extranjeros."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es el nombre del Capítulo Segundo del Título [[rand,I|de los Derechos y Deberes Fundamentales]] de la Constitución Española?", + "rights" : ["De los Derechos y Libertades."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es el nombre del Capítulo Tercero del Título [[rand,I|de los Derechos y Deberes Fundamentales]] de la Constitución Española?", + "rights" : ["De los Principios Rectores de la Política Social y Económica."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es el nombre del Capítulo Cuarto del Título [[rand,I|de los Derechos y Deberes Fundamentales]] de la Constitución Española?", + "rights" : ["De las Garantías de las Libertades y Derechos Fundamentales."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es el nombre del Capítulo Quinto del Título [[rand,I|de los Derechos y Deberes Fundamentales]] de la Constitución Española?", + "rights" : ["De la Suspensión de los Derechos y Libertades."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es el nombre de la Sección Primera del Capítulo [[rand,Segundo|de los Derechos y Deberes de los Ciudadanos]] del Título [[rand,I|de los Derechos y Deberes Fundamentales]] de la Constitución Española?", + "rights" : ["De los Derechos Fundamentales y de las Libertades Públicas."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Cuál es el nombre de la Sección Segunda del Capítulo [[rand,Segundo|de los Derechos y Deberes de los Ciudadanos]] del Título [[rand,I|de los Derechos y Deberes Fundamentales]] de la Constitución Española?", + "rights" : ["De los Derechos y Deberes de los Ciudadanos."], + "brothers_are_wrongs" : true + }] +}, { + "origin" : "Paco Barbié", + "title" : "Constitución - Título I - Número de artículos", + "source" : "https://www.youtube.com/watch?v=saHVlJohBTU", + "group" : "paco_constitucion_i", + "queries" : [{ + "question" : "¿De cuántos artículos consta el Título [[rand,I|de los Derechos y Deberes Fundamentales]] de la Constitución Española?", + "rights" : ["De [[rand,46|Cuarenta y Seis]] artículos."], + "brothers_are_wrongs" : true + }, { + "question" : "¿De cuántos artículos consta el Capítulo [[rand,Primero|de los españoles y los extranjeros]] del Título [[rand,I|de los Derechos y Deberes Fundamentales]] de la Constitución Española?", + "rights" : ["De [[rand,3|Tres]] artículos."], + "brothers_are_wrongs" : true + }, { + "question" : "¿De cuántos artículos consta el Capítulo [[rand,Segundo|de los Derechos y Libertades]] del Título [[rand,I|de los Derechos y Deberes Fundamentales]] de la Constitución Española?", + "rights" : ["De [[rand,25|Veinticinco]] artículos."], + "brothers_are_wrongs" : true + }, { + "question" : "¿De cuántos artículos consta el Capítulo [[rand,Tercero|de los Principios Rectores de la Política Social y Económica]] del Título [[rand,I|de los Derechos y Deberes Fundamentales]] de la Constitución Española?", + "rights" : ["De [[rand,14|Catorce]] artículos."], + "brothers_are_wrongs" : true + }, { + "question" : "¿De cuántos artículos consta el Capítulo [[rand,Cuarto|de los Derechos y Deberes de los Ciudadanos]] del Título [[rand,I|de los Derechos y Deberes Fundamentales]] de la Constitución Española?", + "rights" : ["De [[rand,2|Dos]] artículos."], + "brothers_are_wrongs" : true + }, { + "question" : "¿De cuántos artículos consta el Capítulo [[rand,Quinto|de la Suspensión de los Derechos y Libertades]] del Título [[rand,I|de los Derechos y Deberes Fundamentales]] de la Constitución Española?", + "rights" : ["De [[rand,1|Un]] artículo."], + "brothers_are_wrongs" : true + }, { + "question" : "¿De cuántos artículos consta la Sección [[rand,Primera|de los Derechos Fundamentales y de las Libertades Públicas]] del Capítulo [[rand,Segundo|Derechos y Libertades]] del Título [[rand,I|de los Derechos y Deberes Fundamentales]] de la Constitución Española?", + "rights" : ["De [[rand,15|Quince]] artículos."], + "brothers_are_wrongs" : true + }, { + "question" : "¿De cuántos artículos consta la Sección [[rand,Segunda|de los Derechos y Deberes de los Ciudadanos]] del Capítulo [[rand,Segundo|Derechos y Libertades]] del Título [[rand,I|de los Derechos y Deberes Fundamentales]] de la Constitución Española?", + "rights" : ["De [[rand,9|Nueve]] artículos."], + "brothers_are_wrongs" : true + }] +}, { + "origin" : "Paco Barbié", + "title" : "Constitución - Título I - Rangos articulares", + "source" : "https://www.youtube.com/watch?v=saHVlJohBTU", + "group" : "paco_constitucion_i", + "queries" : [{ + "question" : "¿De qué artículos consta el Título [[rand,I|de los Derechos y Deberes Fundamentales]] de la Constitución Española?", + "rights" : [ + "Desde el artículo 10 hasta el 55.", + "Desde el artículo Diez hasta el Cincuenta y Cinco." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿De qué artículos consta el Capítulo [[rand,Primero|de los españoles y los extranjeros]] del Título [[rand,I|de los Derechos y Deberes Fundamentales]] de la Constitución Española?", + "rights" : [ + "Desde el artículo 11 hasta el 13.", + "Desde el artículo Once hasta el Trece." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿De qué artículos consta el Capítulo [[rand,Segundo|de los Derechos y Libertades]] del Título [[rand,I|de los Derechos y Deberes Fundamentales]] de la Constitución Española?", + "rights" : [ + "Desde el artículo 14 hasta el 38.", + "Desde el artículo Catorce hasta el Treinta y Ocho." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿De qué artículos consta el Capítulo [[rand,Tercero|de los Principios Rectores de la Política Social y Económica]] del Título [[rand,I|de los Derechos y Deberes Fundamentales]] de la Constitución Española?", + "rights" : [ + "Desde el artículo 39 hasta el 52.", + "Desde el artículo Treinta y Nueve hasta el Cincuenta y Dos." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿De qué artículos consta el Capítulo [[rand,Cuarto|de los Derechos y Deberes de los Ciudadanos]] del Título [[rand,I|de los Derechos y Deberes Fundamentales]] de la Constitución Española?", + "rights" : [ + "De los artículos 53 y 54.", + "De los artículos Cincuenta y Tres y Cincuenta y Cuatro." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿De qué artículos consta el Capítulo [[rand,Quinto|de la Suspensión de los Derechos y Libertades]] del Título [[rand,I|de los Derechos y Deberes Fundamentales]] de la Constitución Española?", + "rights" : [ + "Del artículo 55.", + "Del artículo Cincuenta y Cinco" + ], + "brothers_are_wrongs" : true + }, { + "question" : [ + "¿De qué artículos consta la Sección [[rand,Primera|de los Derechos Fundamentales y de las Libertades Públicas]] del Capítulo [[rand,Segundo|Derechos y Libertades]] del Título [[rand,I|de los Derechos y Deberes Fundamentales]] de la Constitución Española?", + "¿Entre qué artículos se encuentran regulados los Derechos Fundamentales y las Libertades Públicas en la Constitución Española?" + ], + "rights" : [ + "Desde el artículo 15 hasta el 29.", + "Desde el artículo Quince hasta el Veintinueve." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿De qué artículos consta la Sección [[rand,Segunda|de los Derechos y Deberes de los Ciudadanos]] del Capítulo [[rand,Segundo|Derechos y Libertades]] del Título [[rand,I|de los Derechos y Deberes Fundamentales]] de la Constitución Española?", + "rights" : [ + "Desde el artículo 30 hasta el 38.", + "Desde el artículo Treinta hasta el Treinta y Ocho." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué rango de artículos son regulados por Ley, según el artículo 53.1 de la Constitución Española?", + "rights" : [ + "Los Derechos y Libertades reconocidos en el Título [[rand,I|de los Derechos y Deberes Fundamentales]], más los artículos 14 y 30, de la Constitución.", + "Los comprendidos en el Capítulo [[rand,Segundo|Derechos y Libertades]] del Título [[rand,I|de los Derechos y Deberes Fundamentales]], más los artículos 14 y 30, de la Constitución.", + "Desde el artículo 14 hasta el 30.", + "Desde el artículo Catorce hasta el Treinta." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué rango de artículos son regulados por Ley Orgánica, según el artículo 81 de la Constitución Española?", + "rights" : [ + "Los Derechos Fundamentales y Libertades Públicas reconocidos en el Título [[rand,I|de los Derechos y Deberes Fundamentales]] de la Constitución.", + "Los comprendidos en la Sección [[rand,Primera|1ª]] del Capítulo [[rand,Segundo|Derechos y Libertades]] del Título [[rand,I|de los Derechos y Deberes Fundamentales]] de la Constitución.", + "Desde el artículo 15 hasta el 29.", + "Desde el artículo Quince hasta el Veintinueve." + ], + "brothers_are_wrongs" : true + }] +}, { + "origin" : "Paco Barbié", + "title" : "Constitución - Título I - Preguntas I", + "source" : "https://www.youtube.com/watch?v=saHVlJohBTU", + "group" : "paco_constitucion_i", + "queries" : [{ + "question" : "¿Cuáles son los derechos de la persona?", + "rights" : ["A [[Mix,y,la dignidad|los derechos inviolables que le son inherentes|el libre desarrollo de la personalidad|el respeto a la ley y a los derechos de los demás]]."], + "wrongs" : ["A [[select,3-5,y,la libertad de expresión|el derecho al honor|la dignidad|los derechos inviolables que le son inherentes|el libre desarrollo de la personalidad|el derecho a la vida|la integridad física y moral|la libertad ideológica|la libertad religiosa y de culto|el respeto de los demás|la paz social|al orden político]]."] + }, { + "question" : "¿Qué son los derechos de la persona?", + "rights" : ["Son un fundamento del orden político y de la paz social."], + "wrongs" : ["Son un fundamento [[select,1-3,y,de los derechos inviolables|de la libertad social|de la paz social|del orden público|del orden social]]."] + }, { + "question" : "¿Las normas relativas a los derechos fundamentales y a las libertades que reconoce la Constitución se interpretarán de conformidad con qué?", + "rights" : ["Conforme a [[mix,y,la Declaración Universal de los Derechos Humanos|los tratados y acuerdos internacionales]] sobre las mismas materias ratificados por España."], + "wrongs" : ["Conforme a [[select,1-4,y,la Declaración Universal de los Derechos Humanos|los tratados y acuerdos nacionales|las normativas Europeas|la legislación de las Naciones Unidas|las normativas de los Países Bajos]] sobre las mismas materias ratificados por [[select,1-4,y,España|los países de la Unión Europea|los países de la OTAN|los países de la ONU]]."] + }, { + "question" : "¿Cómo tienen que estar los tratados y acuerdos internacionales sobre derechos humanos ratificados por España?", + "rights" : ["Tienen que estar publicados oficialmente en España para que formen parte de ordenamiento jurídico interno."], + "wrongs" : ["Tienen que estar [[select,1-3,y,aprobados por el Congreso de los Diputados|aprobados por el Senado|publicados oficialmente en España|ratificados por el Presidente del Gobierno]] para que formen parte de ordenamiento jurídico interno."] + }, { + "question" : "¿Cómo se adquiere, se pierde o se mantiene la Nacionalidad Española?", + "rights" : ["Por lo que establezca la ley."], + "wrongs" : ["Por lo que establezca [[select,1-3,y,la Constitución Española|el Código Civil|el Código Penal|la Ley de Extranjería]]."] + }, { + "question" : "¿Puede algún español de origen ser privado de su nacionalidad?", + "rights" : ["No."], + "wrongs" : ["Sí.", "Depende [[select,1-3,y,de la ley|de la Constitución|del Código Civil|del Código Penal|del Tribunal Supremo]].", "Sí, pero para ello ha de suceder algo especial inherente a la ley."] + }, { + "question" : "¿Un español de origen puede [[rand,perder|renunciar a]] su nacionalidad?", + "rights" : ["Sí, pero solo en los casos previstos por la ley."], + "wrongs" : ["No.", "Depende [[select,1-3,y,de la ley|de la Constitución|del Código Civil|del Código Penal|del Tribunal Supremo]].", "Sí, pero para ello ha de suceder algo especial inherente a [[rand,la Constitución|ley]]."] + }, { + "question" : "¿Se podrán concertar tratados de doble nacionalidad con otros países?", + "rights" : ["Sí, con los países iberoamericanos y con aquellos que tengan especiales vínculos con España."], + "wrongs" : ["No.", "Sí, con [[select,1-3,y,los países de la Unión Europea|los países de la OTAN|los países de la ONU]].", "Sí, con los países iberoamericanos y con aquellos que tengan especiales vínculos con [[select,1-3,y,España|los países de la Unión Europea|los países de la OTAN|los países de la ONU]]."] + }, { + "question" : "¿Con qué países se podrán concertar tratados de doble nacionalidad?", + "rights" : ["Con los países [[mix,y,iberoamericanos|aquellos que tengan especiales vínculos con España]]."], + "wrongs" : ["Con [[select,1-3,y,los países de la Unión Europea|los países de la OTAN|los países de la ONU]].", "Con los países iberoamericanos y con aquellos que tengan especiales vínculos con [[select,1-3,y,España|los países de la Unión Europea|los países de la OTAN|los países de la ONU]]."] + }, { + "question" : "¿Con cuántos tratados bilaterales de nacionalidad contamos actualmente?", + "rights" : ["Con 11."], + "wrongs" : ["Con [[range,2-10|12-90]] tratados bilaterales de nacionalidad.", "España no tiene tratados bilaterales de nacionalidad", "Con 1 único tratado bilateral de nacionalidad."] + }, { + "question" : "¿En qué casos los españoles podrán naturalizarse en otros países según el artículo 11 de la Constitución?", + "rights" : ["En [[mix,y,aquellos países iberoamericanos|aquellos países que tengan especiales vínculos con España]][[rand,| a pesar de que ellos no ofrezcan los mismos beneficios| sin perder la nacionalidad Española]]."], + "wrongs" : [ + "En los casos previstos por [[select,1-3,y,la Constitución Española|el Código Civil|el Código Penal|la Ley de Extranjería]].", + "En ninguno.", + "En [[mix,y,aquellos países iberoamericanos|aquellos países que tengan especiales vínculos con España]] [[rand,que correspongan recíprocamente con España|los cuales se encuentren en la lista blanca en conformidad con los tratados internacionales|que acepten al ciudadano con dichas condiciones|que posean libertades como las nuestras|que posean una cultura similar a la Española|siempre que presenten los mismos beneficios a sus ciudadanos]]." + ] + }, { + "question" : "¿A qué edad un Español es considerado mayor de edad?", + "rights" : ["A los 18 años."], + "wrongs" : ["A los [[range,14-17|19-27]] años.", "Depende [[rand,del individuo|de la persona]] y su [[rand,evolución|nivel académico|condición social|condición facultativa|condición económica|razón social]].", "A los 18 años, pero puede adquirir la mayoría de edad a los [[rand,14|16]] años si éste se emancipa."] + }, { + "question" : "¿Quiénes gozarán de los derechos reconocidos en el Título [[rand,I|de los Derechos y Deberes Fundamentales]] de la Constitución Española según el artículo 11?", + "rights" : ["Los extranjeros en los términos que establezca la ley."], + "wrongs" : ["Los extranjeros en cualquier [[rand,término|caso]].", "Sólo los [[select,1-3,y,españoles|apátridas]].", "Depende de las condiciones [[rand,facultativas|legales|económicas]] [[rand,del individuo|de la persona]]."] + }, { + "question" : [ + "¿Quiénes tenemos los derechos reconocidos en el artículo 23 de la Constitución Española?", + "¿Quiénes pueden [[rand,acceder en condiciones de igualdad a los cargos públicos|participar en los asuntos públicos, directamente o por medio de representantes, libremente elegidos en elecciones periódicas por sufragio universal]]?" + ], + "rights" : [ + "Sólo los [[rand,que tengan la nacionalidad Española|españoles]], salvo lo que, atendiendo a criterios de reciprocidad, pueda establecerse un tratado o ley para el sufragio activo y pasivo en las elecciones municipales." + ], + "wrongs" : [ + "Los [[select,2-4,y,españoles|extranjeros|apátridas|ciudadanos de la Unión Europea|ciudadanos pertenecientes a países de la OTAN|ciudadanos pertenecientes a países de la ONU]].", + "Sólo los [[rand,extranjeros|apátridas|ciudadanos de la Unión Europea|ciudadanos pertenecientes a países de la OTAN|ciudadanos pertenecientes a países de la ONU]].", + "Cualquier persona conforme a la ley.", + "Aquellos que halla solicitado la nacionalidad Española.", + "Depende de las condiciones [[rand,facultativas|legales|económicas]] [[rand,del individuo|de la persona]].", + "Sólo los [[rand,que tengan la nacionalidad Española|españoles]], salvo lo que, atendiendo a criterios de reciprocidad, pueda establecerse un tratado o ley para el sufragio activo y pasivo en las elecciones [[select,1-3,y,provinciales|autonómicas|nacionales|penínsulares]]." + ] + }, { + "question" : "¿Qué es el sufragio activo dentro del artículo 13 de la Constitución Española?", + "rights" : ["Es el derecho a votar por ser español o ser residente en españa."], + "wrongs" : [ + "Es el derecho a votar por ser [[select,1-3,o,español|extranjero|apátrida|ciudadano de la Unión Europea|ciudadano en un país de la OTAN|ciudadano en un país de la ONU]].", + "Es el derecho a ser votado por ser español o ser residente en españa." + ] + }, { + "question" : "El sufragio pasivo. ¿Cuándo fue añadido a la constitución?", + "rights" : [ + "El 27 de Agosto de 1992, añadiéndo el término 'y pasivo' al apartado 2 del artículo 13.", + "El 27 de Agosto de 1992 por el tratado de Maastricht." + ], + "wrongs" : [ + "El [[rand,15|27|29|6]] de [[rand,Febrero|Agosto|Septiembre|Octubre|Diciembre]] de [[rand,1992|1978|2011|2024]], añadiéndo el término 'y pasivo' al apartado 2 del artículo 13.", + "El [[rand,15|27|29|6]] de [[rand,Febrero|Agosto|Septiembre|Octubre|Diciembre]] de [[rand,1992|1978|2011|2024]], por el tratado de Maastricht." + ] + }, { + "question" : "¿Qué es el sufragio pasivo dentro del artículo 13 de la Constitución Española?", + "rights" : ["Es el derecho a ser votado por ser español o ser residente en españa."], + "wrongs" : [ + "Es el derecho a ser votado por parte de [[select,1-3,o,español|extranjero|apátrida|ciudadano de la Unión Europea|ciudadano en un país de la OTAN|ciudadano en un país de la ONU]].", + "Es el derecho a votar por ser español o ser residente en españa." + ] + }, { + "question" : "¿Cuándo se concederá la extradición?", + "rights" : ["Cuando [[mix,y,lo establezca un tratado o la ley|atendiendo a criterios de reciprocidad]]."], + "wrongs" : [ + "Cuando lo establezca [[select,1-3,y,la Constitución Española|el Código Civil|el Código Penal|la Ley de Extranjería]].", + "Cuando lo establezca un tratado o la ley, atendiendo a criterios [[select,1-3,y,de la libertad social|de la paz social|del orden público|del orden social]]." + ] + }, { + "question" : "¿Qué casos quedan excluídos de la extradición?", + "rights" : ["Los casos de delitos políticos."], + "wrongs" : [ + "Los casos de [[select,1-3,y,delitos comunes|delitos económicos|delitos sociales|actos de terrorismo]].", + "Delitos políticos agravados al ser considerados actos terroristas." + ] + }, { + "question" : "¿Los delitos políticos pueden llegar a considerarse actos de terrorismo?", + "rights" : ["No, los actos de terrorismo no son considerados delitos políticos."], + "wrongs" : [ + "Sí, los actos de terrorismo son considerados delitos políticos.", + "Sí, dentro de lo considerado como terrorismo, algunos actos pueden ser considerados delitos políticos.", + "Depende de los participantes y sus [[rand,condiciones facultativas|condiciones económicas|razones sociales|ideologías]]." + ] + }, { + "question" : "¿Quiénes pueden gozar del derecho al asilo en España?", + "rights" : ["[[Mix,y,los ciudadanos de otros países|los apátridas]], según los términos que establezca la ley."], + "wrongs" : [ + "[[rand,Los españoles|Cualquier persona|Sólo ciudadanos de la Unión Europea|Sólo ciudadanos de un país miembro de la OTAN|Sólo ciudadanos de un país miembro de la ONU]], según los términos que establezca la ley.", + "Cualquier persona, según los términos que establezca la ley.", + "Cualquier persona, independientemente de su nacionalidad e ideología." + ] + }, { + "question" : "¿Cuáles son los 3 apartados principales de los que consta el artículo 13 de la Constitución Española?", + "rights" : ["[[Mix,y,los derechos y libertades|la extradición|el derecho al asilo]] de los extranjeros en España."], + "wrongs" : ["[[Select,2-5,y,el derecho a un juicio justo|los derechos inviolables|el derecho al asilo|la extradición|la encarcelación|el derecho a la vida|el derecho al honor|el derecho a la libertad de expresión|el derecho a la integridad física y moral|el derecho a la libertad ideológica|el derecho a la libertad religiosa y de culto|el derecho al respeto de los demás|el derecho a la paz social|el derecho al orden político]] de los extranjeros en España."] + }, { + "question" : "¿Los derechos fundamentales y las libertades públicas están regulados en qué parte de la Constitución Española?", + "rights" : [ + "En la Sección [[rand,Primera|1ª]] del Capítulo Segundo del Título I." + ], + "wrongs" : [ + "En la Sección [[rand,Segunda|2ª]] del Capítulo Segundo del Título I.", + "En el Capítulo [[rand,Primero|Tercero|Cuarto|Quinto]] del Título I.", + "En el Capítulo [[rand,Primero|Segundo|Tercero]] del Título [[rand,III|VIII]].", + "En el Título [[select,2-5,y,I|II|III|IV|V|VI|VII|VIII|IX|X|Preliminar]].", + "En las Disposiciones." + ] + }, { + "question" : "¿Puede haber algún tipo de discriminación cara los Españoles según la Constitución?", + "rights" : [ + "No, los Españoles somos iguales ante la Ley.", + "No.", + "No, ni por razón de [[mix,ni,nacimiento|por raza|por sexo|por religión|por opinión]] o cualquier otra condición o circunstancia personal o social.", + "No, ni por cualquier condición o circunstancia personal o social." + ], + "wrongs" : [ + "Depende de la condición o circunstancia personal o social.", + "Sí, puede haber discriminación en ciertos casos dependiendo de la legislación.", + "Sí, los Españoles no somos iguales ante la Ley.", + "Sí, por razón de [[select,1-3,y,nacimiento|raza|sexo|religión|opinión]]", + "Sí, por razón de [[select,1-3,y,nacimiento|raza|sexo|religión|opinión]] o cualquier otra condición o circunstancia personal o social.", + "Sí, por cualquier condición o circunstancia personal o social.", + "Depende de la situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] del individuo." + ] + }, { + "question" : "¿Qué son las Leyes Orgánicas?", + "rights" : ["Son las leyes que [[mix,y,desarrollan los derechos fundamentales y las libertades públicas|se aprueben por los Estatutos de Autonomía|las del régimen electoral general|las previstas en la Constitución]]."], + "wrongs" : [ + "Son las leyes que [[select,1-6,y,desarrollan los derechos fundamentales y las libertades públicas|se aprueben por los Estatutos de Autonomía|las del régimen electoral general|regulan el funcionamiento del Tribunal Constitucional|regulan el funcionamiento del Tribunal Supremo|regula el Tribunal Europeo|afecten a los Derechos y Libertades reguladas por la ONU|atañen internacionalmente a los Derechos y Libertades]].", + "Son las leyes que [[select,1-6,y,están previstas en la Constitución|se aprueben por los Estatutos de Autonomía|las del régimen electoral general|regulan el funcionamiento del Tribunal Constitucional|regulan el funcionamiento del Tribunal Supremo|regula el Tribunal Europeo|afecten a los Derechos y Libertades reguladas por la ONU|atañen internacionalmente a los Derechos y Libertades]]." + ] + }, { + "question" : "¿Cómo se exigirá la aprobación, modificación o derogación de las Leyes Orgánicas?", + "rights" : ["Por mayoría absoluta del Congreso de los Diputados en una votación final sobre el conjunto del proyecto."], + "wrongs" : [ + "Por una mayoría [[rand,simple|cualificada|representativa|absoluta]][[rand,| de los miembros presentes]] [[select,1-3,y,del Senado|del Tribunal Constitucional|del Tribunal Supremo|de la Cámara|del Consejo de Ministros|el Parlamento|el Gobierno]] en una votación [[rand,inicial|parcial|final]] sobre el conjunto del proyecto.", + "Por una mayoría [[rand,simple|cualificada|representativa]][[rand,| de los miembros presentes]] [[select,1-3,y,del Congreso de los Diputados|del Senado|del Tribunal Constitucional|del Tribunal Supremo|de la Cámara|del Consejo de Ministros|el Parlamento|el Gobierno]] en una votación [[rand,inicial|parcial|final]] sobre el conjunto del proyecto.", + "Por necesidad y urgencia, puede ser ejecutado por [[select,1-3,y,el Gobierno|el Rey|el o los Vicepresidentes|el presidente del Gobierno]] sin necesidad de aprobación parlamentaria." + ] + }, { + "question" : "¿Quiénes pueden recabar la tutela de [[mix,y,los Derechos|las Libertades]] reconocidos en [[mix,y,el artículo 14|la Sección Primera del Capítulo Segundo]] de la Constitución Española?", + "rights" : ["Cualquier ciudadano."], + "wrongs" : ["Sólo los [[select,1-3,y,españoles|extranjeros|apátridas|ciudadanos de la Unión Europea|ciudadanos pertenecientes a países de la OTAN|ciudadanos pertenecientes a países de la ONU]]."] + }, { + "question" : "¿Ante quiénes se puede recabar la tutela de [[mix,y,los Derechos|las Libertades]] reconocidos en [[mix,y,el artículo 14|la Sección Primera del Capítulo Segundo]] de la Constitución Española?", + "rights" : ["Ante los Tribunales Ordinarios y, en su caso, ante el Tribunal Constitucional."], + "wrongs" : ["Ante [[select,1-4,y,los Juzgados de Instancia|los Juzgados de lo Contencioso-Administrativo|los Juzgados de lo Social|el Tribunal Supremo|el Tribunal Superior de Justicia|el Gobierno|el Congreso de los Diputados|el Tribunal Constitucional|el Senado|el Rey|el Defensor del Pueblo|el Presidente del Gobierno|El Presidente Autonómico|el Alcalde]]."] + }, { + "question" : "¿Por qué procedimiento se puede recabar la tutela de [[mix,y,los Derechos|las Libertades]] reconocidos en [[mix,y,el artículo 14|la Sección Primera del Capítulo Segundo]] de la Constitución Española?", + "rights" : ["A través de un procedimiento basado en los principios de [[mix,y,sumariedad|preferencia]] y, en su caso, a través del Recurso de Amparo ante el Tribunal Constitucional."], + "wrongs" : [ + "A través de un procedimiento [[rand,Ordinario|Contencioso-Administrativo]][[rand,|, que no garantice la celeridad y eficacia en la protección de los derechos fundamentales| y, en su caso, a través del Recurso de Amparo ante el Tribunal Constitucional|mediante el Recurso de Amparo ante el Tribunal Constitucional]].", + "A través de un procedimiento basado en los principios de [[mix,y,sumariedad|preferencia]] por medio del Recurso de Amparo ante el Tribunal Constitucional." + ] + }, { + "question" : "¿A qué será aplicable el Recurso de Amparo ante el Tribunal Constitucional?", + "rights" : ["A la Objeción de Conciencia."], + "wrongs" : [ + "A la Objeción de Conciencia en casos especiales que determine la ley, únicamente.", + "A [[select,1-3,y,los ciudadanos|los apátridas|los extranjeros|los Derechos Fundamentales|las Libertades Públicas]].", + "A [[select,1-3,y,los ciudadanos|los apátridas|los extranjeros|los Derechos Fundamentales|las Libertades Públicas]] reconocidos en [[select,1-3,y,el artículo 14|la Sección Primera del Capítulo Segundo]] de la Constitución Española." + ] + }, { + "question" : "Cuando se efectúa una revisión total o parcial de la Constitución, que afecte al [[select,1-3,y,Título Preliminar|Sección Primera del Capítulo Segundo del Título I|Título II]] de la Constitución. ¿Qué requiere?", + "rights" : ["Requiere el voto favorable de [[rand,los dos tercios|dos tercios|2/3]] de cada una de las Cámaras y la disolución inmediata de las Cortes."], + "wrongs" : [ + "Requiere el voto favorable de [[rand,la mayoría simple|la mayoría cualificada|la mayoría representativa|los tres quintos|tres quintos|3/5|los cuatro quintos|cuatro quintos|4/5]] [[select,1-3,y,de las Cámaras|del Congreso de los Diputados|del Senado|del Consejo de Ministros|del Parlamento|del Tribunal Constitucional|de las Cortes|del Gobierno]] y la disolución inmediata [[select,1-2,y,de las Cortes|del Gobierno|de la Cámara de Representantes|del Congreso de los Diputados|del Senado|del Tribunal Constitucional]].", + "Requiere el voto favorable de [[rand,la mayoría simple|la mayoría cualificada|la mayoría representativa|los tres quintos|tres quintos|3/5|los cuatro quintos|cuatro quintos|4/5]] [[select,1-3,y,del Congreso de los Diputados|del Senado|del Consejo de Ministros|del Parlamento|del Tribunal Constitucional|de las Cortes|del Gobierno]] y la disolución inmediata [[select,1-2,y,de las Cortes|del Gobierno|de la Cámara de Representantes|del Congreso de los Diputados|del Senado|del Tribunal Constitucional|de las Cortes]]." + ] + }, { + "question" : "Una vez aprobado el principio de una revisión total o parcial de la Constitución, que afecte al [[select,1-3,y,Título Preliminar|Sección Primera del Capítulo Segundo del Título I|Título II]] de la Constitución. ¿Qué requiere?", + "rights" : ["Las Cámaras elegidas deberán ratificar la decisión y proceder al estudio del nuevo texto constitucional, el cual deberá ser aprobado por [[rand,dos tercios|los dos tercios|2/3]] de cada una de las Cámaras."], + "wrongs" : [ + "Un referendum directamente para su ratificación.", + "[[Select,1-3,y,el Congreso de los Diputados|el Senado|el Consejo de Ministros|el Parlamento|el Tribunal Constitucional|las Cortes|el Gobierno]] deberán ratificar la decisión y proceder al estudio del nuevo texto constitucional, el cual deberá ser aprobado por [[rand,la mayoría simple|la mayoría cualificada|la mayoría representativa|los tres quintos|tres quintos|3/5|los cuatro quintos|cuatro quintos|4/5]] de cada una de las Cámaras.", + "[[Select,2-3,y,las Cámaras elegidas|el Congreso de los Diputados|el Senado|el Consejo de Ministros|el Parlamento|el Tribunal Constitucional|las Cortes|el Gobierno]] deberán ratificar la decisión y proceder al estudio del nuevo texto constitucional, el cual deberá ser aprobado por [[rand,la mayoría simple|la mayoría cualificada|la mayoría representativa|los tres quintos|tres quintos|3/5|los cuatro quintos|cuatro quintos|4/5]] de cada una de las Cámaras." + ] + }, { + "question" : "Una vez aprobada la revisión total o parcial de la Constitución, que afecte al [[select,1-3,y,Título Preliminar|Sección Primera del Capítulo Segundo del Título I|Título II]] de la Constitución por cada una de las Cámaras. ¿Qué requiere?", + "rights" : ["Requiere la ratificación por Referendum."], + "wrongs" : [ + "Requiere la ratificación por [[select,1-3,y,las Cámaras elegidas|el Congreso de los Diputados|el Senado|el Consejo de Ministros|el Parlamento|el Tribunal Constitucional|las Cortes|el Gobierno]].", + "Requiere la ratificación por Referendum y por [[select,1-3,y,las Cámaras elegidas|el Congreso de los Diputados|el Senado|el Consejo de Ministros|el Parlamento|el Tribunal Constitucional|las Cortes|el Gobierno]]." + ] + }, { + "question" : "¿Cuál es el primer Derecho de los Derechos Fundamentales según la Constitución?", + "rights" : [ + "El derecho a la vida.", + "El derecho a la vida y a la integridad física y moral." + ], + "wrongs" : ["El derecho [[select,1-5,y,al honor|a la libertad de expresión|a la integridad física y moral|a la libertad ideológica|a la libertad religiosa y de culto|al respeto de los demás|a la paz social|al orden político]]."] + }, { + "question" : "¿Se puede ejercer tortura o penas y tratos degradantes en España?", + "rights" : ["No, en ningún caso."], + "wrongs" : [ + "Depende de la condición o circunstancia personal o social del individuo.", + "Sí, en casos excepcionales regulados por ley.", + "Sí, si hay consentimiento.", + "Sí, pero sólo en tiempos de guerra." + ] + }, { + "question" : "¿Puede suceder un caso de pena de muerte en España?", + "rights" : ["[[rand,No|Fue abolida]], salvo que lo pueda disponer las leyes penales militares para tiempos de guerra."], + "wrongs" : [ + "Sí, en casos excepcionales regulados por ley.", + "Sí, en casos de terrorismo o delitos graves contra la humanidad.", + "No, en ningún caso.", + "Depende del delito y la condición o circunstancia personal o social del individuo." + ] + }, { + "question" : "¿Qué libertades ideológicas y religiosas se garantizan en el artículo 16 la Constitución?", + "rights" : ["La libertad [[mix,y,ideológica|religiosa|de culto de los individuos y las comunidades]]."], + "wrongs" : [ + "La libertad [[select,1-5,y,ideológica|religiosa|de expresión|de opinión|de prensa|de manifestación|de reunión|de asociación]].", + "La libertad [[select,1-5,y,ideológica|de culto|de expresión|de opinión|de prensa|de manifestación|de reunión|de asociación]]." + ] + }, { + "question" : "¿Hay alguna limitación en las manifestaciones [[mix,o,ideológicas|religiosas|de creencia]] en España?", + "rights" : ["No, salvo para el mantenimiento del orden público."], + "wrongs" : [ + "Sí, en casos excepcionales regulados por ley.", + "Sí, en casos de terrorismo o delitos graves contra la humanidad.", + "No, en ningún caso.", + "Depende de si hay delito y la condición o circunstancia personal o social de los individuos que lo conforman." + ] + }, { + "question" : "¿Se puede obligar a una persona a declarar sobre su ideología, religión o creencias?", + "rights" : ["No.", "No, nadie podrá ser obligado a declarar sobre su ideología, religión o creencias."], + "wrongs" : [ + "Sí, en casos excepcionales regulados por ley.", + "Sí, en casos de terrorismo o delitos graves contra la humanidad.", + "Sí, si hay consentimiento.", + "Depende de la condición o circunstancia personal o social del individuo." + ] + }, { + "question" : "¿Hay alguna confesión que sea de caracter estatal?", + "rights" : ["No, ninguna."], + "wrongs" : [ + "Dependerá del credo mayoritario en cada momento.", + "Sí, la confesión [[rand,católica|islámica|protestante]] es la religión del estado.", + "Sí, la confesión [[select,1-5,y,católica|islámica|protestante|ortodoxa|budista]]." + ] + }, { + "question" : "¿Qué parte del estado tendrá en cuenta las creencias religiosas de los Españoles?", + "rights" : ["Los Poderes Públicos."], + "wrongs" : ["[[select,1-3,y,el Gobierno|el Congreso de los Diputados|el Senado|el Tribunal Constitucional|el Tribunal Supremo|el Parlamento|las Cortes]]."] + }, { + "question" : "¿Existe alguna cooperación entre el Estado y las confesiones religiosas?", + "rights" : [ + "Sí, los Poderes Públicos mantendrán una cooperación con las distintas confesiones.", + "Sí, los Poderes Públicos mantendrán una cooperación con Iglesia Católica y las demás confesiones." + ], + "wrongs" : [ + "Depende de la confesión religiosa.", + "No, no existe ninguna cooperación entre el Estado y las confesiones religiosas.", + "[[Select,1-3,y,el Gobierno|el Congreso de los Diputados|el Senado|el Tribunal Constitucional|el Tribunal Supremo|el Parlamento|las Cortes]] y las confesiones religiosas." + ] + }, { + "question" : "¿Quiénes tiene Derecho a la libertad personal?", + "rights" : [ + "Todas las personas.", + "Todas las personas no sólo tienen derecho a la libertad personal sino también a la seguridad.", + "Nadie puede ser privado de su libertad, salvo en los casos y en la forma previstos por la ley." + ], + "wrongs" : ["Sólo los [[select,1-3,y,españoles|extranjeros|apátridas|ciudadanos de la Unión Europea|ciudadanos pertenecientes a países de la OTAN|ciudadanos pertenecientes a países de la ONU]]."] + }, { + "question" : "¿Cuánto tiempo deberá durar la detención preventiva de una persona?", + "rights" : ["El tiempo estrictamente necesario para poner al detenido a disposición judicial."], + "wrongs" : [ + "El tiempo necesario para cualquier investigación.", + "El tiempo que garante la seguridad pública.", + "El plazo máximo es de 72 horas.", + "Un plazo máximo de [[rand,8|12|16|24|36|48|96]] horas.", + "Un plazo máximo de [[range,5-10]] días." + ] + }, { + "question" : "¿Cuál es el plazo máximo cara la puesta a disposición judicial de una persona detenida de forma preventiva?", + "rights" : ["El plazo máximo es de 72 horas."], + "wrongs" : [ + "Un plazo máximo de [[rand,8|12|16|24|36|48|96]] horas.", + "Un plazo máximo de [[range,5-10]] días." + ] + }, { + "question" : "Una vez se excede el plazo máximo de detención preventiva. ¿Qué debe suceder?", + "rights" : ["El detenido deberá ser puesto [[mix,o,en libertad|a disposición de la autoridad judicial]]."], + "wrongs" : [ + "El detenido deberá ser puesto [[rand,en libertad|a disposición de la autoridad judicial|a disposición del Gobierno|a disposición del Tribunal Judicial]].", + "Al detenido se le abrirá un [[rand,expediente administrativo|proceso penal|juicio rápido]]." + ] + }, { + "question" : "¿Puede ser un persona obligada a declarar sin la asistencia de un abogado?", + "rights" : ["No.", "No, es más, se le deberá de garantizar asistencia de un abogado en las dilligencias policiales o judiciales."], + "wrongs" : [ + "Sólo si el individuo no coopera con su detención.", + "Sí, cuando el detenido pone en riesgo [[rand,la seguridad pública|la paz social|el orden público|la investigación en curso]].", + "Sí, en casos excepcionales regulados por ley.", + "Sí, en casos de terrorismo o delitos graves contra la humanidad.", + "Sí, en caso de flagrante delito.", + "Depende de la condición o circunstancia personal o social del individuo." + ] + }, { + "question" : "¿Qué garantías tiene una persona cuando es detenida?", + "rights" : ["Tiene derecho [[mix,y,a ser informado de forma inmediata y comprensible de sus derechos y las razones de su dentención|a no declarar|a un abogado garantizado por las diligencias policiales y judiciales]]."], + "wrongs" : ["Tiene derecho [[select,2-5,y,a ser informado de forma inmediata y comprensible de sus derechos y las razones de su dentención|a declarar en contra de sí mismo|aconfesarse culpable|a permanecer en silencio|a aceptar los cargos que se le imputan|a ser alojado en dependencias judiciales directamente|a entrar en prisión|una acción rápida por parte de los cuerpos de seguridad del estado]]."] + }, { + "question" : "¿Qué sucede en caso de una detención ilegal?", + "rights" : ["La persona detenida podrá al procedimiento [[rand,de Habeas Corpus|regulado en la Ley Orgánica 6/1984]]."], + "wrongs" : [ + "Se le concederá un juicio rápido para exclarecer la situación del individuo en el menor plazo de tiempo.", + "La persona detenida podrá recurrir ante [[select,1-3,y,el Tribunal Constitucional|el Tribunal Supremo|el Tribunal de Justicia de la Unión Europea|el Gobierno|el Congreso de los Diputados|el Senado|el Parlamento|las Cortes]].", + "La persona detenida podrá recurrir ante la autoridad judicial competente para que se declare la ilegalidad de la detención y se disponga la inmediata [[select,1-3,y,puesta en libertad del detenido|entrada en prisión|acción rápida por parte de los cuerpos de seguridad del estado]]." + ] + }, { + "question" : "¿Qué es el Habeas Corpus?", + "rights" : ["Es un procedimiento [[mix,y,rápido|sumarísimo]] para que una persona detenida ilegalmente sea puesta en libertad."], + "wrongs" : [ + "Es un procedimiento [[rand,ordinario|lento|complejo]] para que una persona detenida ilegalmente sea puesta en libertad.", + "Es un procedimiento [[rand,ordinario|lento|complejo|rápido|sumarísimo]] para que una persona detenida legalmente sea puesta en libertad." + ] + }, { + "question" : "¿Cómo se establece el plazo máximo de detención preventiva?", + "rights" : ["Por Ley Orgánica."], + "wrongs" : [ + "Por [[rand,Decreto|Real Decreto|Orden Ministerial|Orden Judicial|necesidades del procedimiento|necesidades de la investigación]]." + ] + }, { + "question" : "Según la Constitución Española. ¿Cómo se define el domicilio?", + "rights" : [ + "Como inviolable", + "Ninguna entrada o registro podrá hacerse en él sin [[mix,o,consentimiento del titular|resolución judicial]], salvo en caso de flagrante delito." + ], + "wrongs" : [ + "Como [[select,1-3,y,invulnerable|protegido|seguro|anónimo|familiar]].", + "Ninguna entrada o registro podrá hacerse en él sin [[mix,o,consentimiento del titular|resolución judicial]], salvo en casos excepcionales regulados por ley.", + "Ninguna entrada o registro podrá hacerse en él sin [[mix,o,consentimiento del titular|resolución judicial]], salvo en caso de [[select,1-3,y,delito común|delito grave|delito económico|delito social|que las autoridades tengan sospechas]]." + ] + }, { + "question" : "¿Existe la garantía de secreto de las comunicaciones en la Constitución Española?", + "rights" : [ + "Sí, en especial de las [[mix,y,telefónicas|telemáticas|postales]], salvo resolución judicial.", + "Sí, salvo resolución judicial." + ], + "wrongs" : [ + "Sí.", + "No, en ningún caso.", + "Sí, en especial de las [[select,1-3,y,telefónicas|telemáticas|postales]], salvo en casos excepcionales regulados por ley.", + "Sí, en especial de las [[select,1-3,y,telefónicas|telemáticas|postales]], salvo en caso de [[select,1-3,y,delito común|delito grave|delito económico|delito social|que las autoridades tengan sospechas]]." + ] + }, { + "question" : "Ante las nuevas tecnologías. ¿Cómo actuará la ley para garantizar el secreto de las comunicaciones?", + "rights" : ["Limitará el uso de la informática para [[rand,otorgar la dicha garantía|garantizar el honor y la intimidad personal y familiar de los ciudadanos y el pleno ejercicio de sus derechos]]."], + "wrongs" : [ + "Limitará el acceso a [[select,1-3,y,la informática|la tecnología|los dispositivos electrónicos]][[rand,| a los los ciudadanos]] para [[rand,otorgar la dicha garantía|garantizar el honor y la intimidad personal y familiar de los ciudadanos y el pleno ejercicio de sus derechos]].", + "Prohibirá el uso de ciertas tecnologías para [[rand,otorgar la dicha garantía|garantizar el honor y la intimidad personal y familiar de los ciudadanos y el pleno ejercicio de sus derechos]]." + ] + }, { + "question" : "Según la Constitución. ¿Podemos desplazarnos libremente por el país y situar nuestra residencia de manera fija o temporal en cualquier parte del territorio nacional?", + "rights" : ["Sí, siempre respetando [[mix,y,las normas|la Ley]]."], + "wrongs" : [ + "Sí, siempre respetando [[select,1-3,y,las normas|la Ley|el orden público|la paz social]].", + "No, sólo en casos excepcionales regulados por ley.", + "No, sólo si se tiene la nacionalidad Española.", + "No, sólo si se tiene la nacionalidad de un país miembro de la Unión Europea.", + "No, ha de pedirse permiso expreso a las autoridades competentes.", + "Depende de la situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] del individuo." + ] + }, { + "question" : "¿Un Español puede salir y entrar libremente del país?", + "rights" : [ + "Sí, en los términos que la ley establezca.", + "Salvo en caso de estar en un estado de excepción o sitio, o por resolución judicial." + ], + "wrongs" : [ + "No, sólo en casos excepcionales regulados por ley.", + "No, sólo si se tiene la nacionalidad Española.", + "No, sólo puede darse éste caso en países miembros de la [[select,1-2,o,Unión Europea|OTAN]].", + "No, ha de pedirse permiso expreso a las autoridades competentes.", + "Depende de la situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] del individuo." + ] + }, { + "question" : "¿El derecho a entrar y salir libremente del país puede ser limitado por motivos [[select,1-2,o,ideológicos|políticos]]?", + "rights" : ["No, en ningún caso."], + "wrongs" : [ + "Sí, en casos excepcionales regulados por ley.", + "Sí, si se considera necesario para [[select,1-3,o,la seguridad nacional|orden público|la salud pública|el bienestar general]]." + ] + }, { + "question" : "Con respecto a la Libertad de Expresión. ¿Qué se [[select,1-2,y,garantiza|protege]] en la Constitución Española?", + "rights" : [ + "El derecho a expresar libremente los pensamientos, ideas y opiniones.", + "El derecho a la libertad de cátedra.", + "El derecho a la producción y creación [[mix,y,artística|científica|técnica]].", + "El derecho a [[mix,y,recibir|comunicar]] información veraz." + ], + "wrongs" : [ + "La libertad de expresión no está protegida en la Constitución Española.", + "Sólo se protege la libertad de expresión en el ámbito político." + ] + }, { + "question" : "¿Cómo se protege el derecho a [[mix,y,recibir|comunicar]] información veraz?", + "rights" : ["A través de la Ley Orgánica que regulará el derecho [[mix,y,a la cláusula de conciencia|el secreto profesional]] en el ejercicio de estas libertades."], + "wrongs" : [ + "A través de [[rand,la Ley Ordinaria|la Ley Orgánica|el Real Decreto|el Real Decreto Legislativo|la normativa vigente]] que regulará el derecho [[select,1-3,y,a la cláusula de conciencia|a no declarar en contra de sí mismo]] en el ejercicio de estas libertades.", + "A través de [[rand,la Ley Ordinaria|la Ley Orgánica|el Real Decreto|el Real Decreto Legislativo|la normativa vigente]] que regulará el derecho [[select,1-3,y,el secreto profesional|a no declarar en contra de sí mismo]] en el ejercicio de estas libertades.", + "A través de [[rand,la Ley Ordinaria|el Real Decreto|el Real Decreto Legislativo|la normativa vigente]] que regulará el derecho [[select,1-3,y,a la cláusula de conciencia|el secreto profesional|a no declarar en contra de sí mismo]] en el ejercicio de estas libertades." + ] + }, { + "question" : "¿Podemos restringir los derechos recogidos en [[rand,el artículo 20 de la Constitución|la Libertad de Expresión]] mediante algún tipo de censura?", + "rights" : [ + "No, está prohibida la censura previa.", + "Sólo podrá acordarse el secuestro de publicaciones, grabaciones y otros medios de información en virtud de resolución judicial." + ], + "wrongs" : [ + "Sí, en casos excepcionales regulados por ley.", + "Sí, si se considera necesario para [[select,1-3,o,la seguridad nacional|orden público|la salud pública|el bienestar general]].", + "Sí, si se considera que la información no es veraz.", + "Depende de la situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] de aquellos que difunden dicha información." + ] + }, { + "question" : "¿Existe algún límite cara a la libertad de expresión?", + "rights" : [ + "Sí, respecto a los derechos reconocidos en el Título [[rand,I|de los Derechos y Deberes Fundamentales]] de la Constitución.", + "Sí, el respeto a los derechos [[mix,y,al honor|a la intimidad personal y familiar|a la propia imagen]] y a la protección de [[mix,y,la juventud|la infancia]]." + ], + "wrongs" : [ + "No, en ningún caso.", + "Sí, en casos excepcionales regulados por ley.", + "Sí, si se considera necesario para [[select,1-3,o,la seguridad nacional|orden público|la salud pública|el bienestar general]].", + "Depende de la situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] de aquellos que difunden dicha información." + ] + }, { + "question" : "¿Cómo es el derecho de reunión en España?", + "rights" : ["Es un derecho pacífico y sin armas."], + "wrongs" : [ + "Es un derecho pacífico, independientemente de la situación individual de las personas.", + "Es un derecho que se puede ejercer sin armas, pese a que pueda no ser pacífico.", + "No es un derecho reconocido en la Constitución Española.", + "Es un derecho que puede ser limitado en casos excepcionales regulados por ley.", + "Es un derecho que puede ser limitado si se considera necesario para [[select,1-3,o,la seguridad nacional|orden público|la salud pública|el bienestar general]]." + ] + }, { + "question" : "¿Hay algún requisito para poder ejercer el derecho de reunión?", + "rights" : [ + "No, salvo en los casos de reuniones en lugares de tránsito público y manifestaciones, que requerirán de comunicación previa a la autoridad." + ], + "wrongs" : [ + "No se podrá exceder del número de personas establecido por ley.", + "No se podrá exponer [[select,1-3,y,banderas|símbolos|mensajes|ideologías|gritos]] que puedan ser considerados ofensivos por la autoridad competente.", + "No podrán participar [[select,1-3,y,menores de edad|personas extranjeras|personas apátridas|personas sin nacionalidad española]].", + "No podrán participar personas cuya situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] no sean compatibles con los permitidos por [[rand,la Ley|el Gobierno|las autoridades]].", + "Sí, se deberá [[rand,notificar|solicitar permiso|rogar|informar|dar comunicación|comunicar]] a las autoridades competentes con una antelación mínima de [[rand,12|24|48|72|96]] horas.", + "Sí, se deberá [[rand,notificar|solicitar permiso|rogar|informar|dar comunicación|comunicar]] a las autoridades competentes con una antelación mínima de [[rand,1|un]] [[rand,día|semana|mes]].", + "Sí, se deberá [[rand,notificar|solicitar permiso|rogar|informar|dar comunicación|comunicar]] a las autoridades competentes con una antelación mínima de [[range,2-7]] [[rand,días|semanas|meses]]." + ] + }, { + "question" : "¿Se puede prohibir una reunión o manifestación?", + "rights" : ["No, salvo casos en lso que pueda existir razones fundadas de alteración del orden público, con peligro para personas o bienes."], + "wrongs" : [ + "Sí, en casos excepcionales regulados por ley.", + "Sí, si se considera necesario para [[select,1-3,o,la seguridad nacional|orden público|la salud pública|el bienestar general]].", + "Sí, si se considera que la reunión o manifestación no es pacífica.", + "Sí, si se considera que la reunión o manifestación no es sin armas.", + "Depende de la situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] de aquellos que participan en la reunión o manifestación." + ] + }, { + "question" : "¿Qué deberán realizar las asociaciones para su constitución?", + "rights" : ["Deberán inscribirse en un registro a los solos efectos de publicidad."], + "wrongs" : [ + "Deberán inscribirse en un registro a los solos efectos de [[rand,control|supervisión|gestión]].", + "Deberán inscribirse en un registro a los solos efectos de [[rand,control|supervisión|gestión]], y obtener permiso expreso [[select,1-3,y,de las autoridades competentes|del Gobierno|del Congreso de los Diputados|del Senado]].", + "Deberán obtener permiso expreso [[select,1-3,y,de las autoridades competentes|del Gobierno|del Congreso de los Diputados|del Senado]]." + ] + }, { + "question" : "¿Qué asociaciones se considerarían como ilegales?", + "rights" : ["Las que persigan fines o utilicen medios tipificados como delito."], + "wrongs" : [ + "Las que persigan fines o utilicen medios tipificados como [[rand,delito|infracción administrativa|falta leve]].", + "Las que sean secretas, de carácter paramilitar o que no tengan fines lucrativos.", + "Las que sean secretas o de carácter paramilitar, salvo que tengan fines lucrativos." + ] + }, { + "question" : "¿Se pueden prohibir las asociaciones?", + "rights" : ["Sí, si éstas son de carácter [[mix,o,secreto|paramilitar]]."], + "wrongs" : [ + "Sí, si éstas son de carácter [[select,1-3,y,lucrativo|ideológico|divulgativo]].", + "Sí, si éstas persiguen fines o utilizan medios tipificados como [[rand,de caracter ideológico|religioso|infracción administrativa|falta leve]].", + "No, en ningún caso.", + "Sí, en casos excepcionales regulados por ley.", + "Sí, si se considera necesario para [[select,1-3,o,la seguridad nacional|orden público|la salud pública|el bienestar general]].", + "Depende de la situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] de aquellos que forman parte de la asociación." + ] + }, { + "question" : "¿Una asociación puede ser disuelta o suspendida?", + "rights" : ["Sólo por resolución judicial motivada."], + "wrongs" : [ + "Sí, en casos excepcionales regulados por ley.", + "Sí, si se considera necesario para [[select,1-3,o,la seguridad nacional|orden público|la salud pública|el bienestar general]].", + "Sí, si se considera que la asociación no es [[rand,pacífica|sin armas]].", + "Depende de la situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] de aquellos que forman parte de la asociación." + ] + }, { + "question" : "¿De dónde emanan los poderes del Estado?", + "rights" : ["De la soberanía nacional."], + "wrongs" : [ + "[[Select,1-5,y,del Gobierno|del Parlamento|del Congreso de los Diputados|del Senado|del Tribunal Constitucional|del Tribunal Supremo|de las Cortes|de la Monarquía|del Rey|de la Reina|del Presidente del Gobierno|De las Cámaras]]." + ] + }, { + "question" : "¿Dónde reside la soberanía nacional?", + "rights" : ["En el pueblo español."], + "wrongs" : [ + "En [[select,1-5,y,el Gobierno|el Parlamento|el Congreso de los Diputados|el Senado|el Tribunal Constitucional|el Tribunal Supremo|las Cortes|la Monarquía|el Rey|la Reina|el Presidente del Gobierno|las Cámaras]]." + ] + }, { + "question" : "¿Cómo es el derecho a la participación en los asuntos públicos?", + "rights" : ["Directamente o por medio de representantes libremente elegidos en elecciones periódicas por sufragio universal."], + "wrongs" : [ + "Indirectamente y por medio de representantes libremente elegidos en elecciones periódicas por [[select,1-3,y,sufragio censitario|sufragio restringido|sufragio universal|sufragio indirecto]].", + "Directamente o por medio de representantes libremente elegidos en elecciones periódicas por [[select,1-3,y,sufragio censitario|sufragio restringido|sufragio indirecto]].", + "Directamente o por medio de representantes establecidos de forma periódica por decisión del área al que pertenecen.", + "Directamente o por medio de representantes libremente elegidos en elecciones periódicas por sufragio universal, salvo en casos excepcionales regulados por ley." + ] + }, { + "question" : "Cuál de los siguientes derechos otorga el artículo 23 de la Constitución Española destinado al derecho de participación?", + "rights" : [ + "El derecho a participar en los asuntos públicos, directamente o por medio de representantes libremente elegidos en elecciones periódicas por sufragio universal.", + "El derecho a acceder en condiciones de igualdad a las funciones y cargos públicos, con los requisitos que señalen las leyes." + ], + "wrongs" : [ + "El derecho a participar en los asuntos públicos, directamente o por medio de representantes libremente elegidos en elecciones periódicas por [[select,1-3,y,sufragio censitario|sufragio restringido|sufragio indirecto]].", + "El derecho a participar en los asuntos públicos, indirectamente y por medio de representantes libremente elegidos en elecciones periódicas por sufragio universal.", + "El derecho a participar en los asuntos públicos, directamente o por medio de representantes establecidos de forma periódica por decisión del área al que pertenecen.", + "El derecho a participar en los asuntos públicos, directamente o por medio de representantes libremente elegidos en elecciones periódicas por sufragio universal, salvo en casos excepcionales regulados por ley.", + "El derecho a participar en los asuntos públicos, directamente o por medio de representantes libremente elegidos en elecciones periódicas por sufragio universal, salvo en casos excepcionales regulados por ley y siempre que no se considere necesario para [[select,1-3,o,la seguridad nacional|orden público|la salud pública|el bienestar general]]." + ] + }, { + "question" : "¿Quiénes [[rand,tienen derecho|pueden optar]] a la tutela efectiva de los [[select,1-3,y,tribunales|jueces|magistrados]] en el ejercicio de sus derechos e intereses legítimos, sin que, en ningún caso, pueda producirse indefensión?", + "rights" : ["Todas las personas."], + "wrongs" : [ + "[[rand,Los|Todos los|Sólo los]] [[select,1-3,y,españoles|extranjeros|apátridas|ciudadanos de la Unión Europea|ciudadanos pertenecientes a países de la OTAN|ciudadanos pertenecientes a países de la ONU]].", + "Cualquier persona que no esté en una situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] que lo impida." + ] + }, { + "question" : "¿Cuáles de las siguientes afirmaciones son derechos nos provee el artículo 24 de la Constitución Española, el cual regula la Protección Judicial de los Derechos?", + "rights" : [ + "Obtener la tutela efectiva de los tribunales en el ejercicio de sus derechos e intereses legítimos, sin que, en ningún caso, pueda producirse indefensión.", + "Juez ordinario predeterminado por la Ley.", + "La asistencia de un [[rand,abogado|letrado]].", + "Ser informados de la acusación formulada contra [[rand,nosotros|ellos]].", + "Un proceso público sin dilaciones indebidas y con todas las garantías.", + "A utilizar los medios de prueba pertinentes para su defensa.", + "No declarar contra sí mismos.", + "No confesarse culpables.", + "La presunción de inocencia." + ], + "wrongs" : [ + "Obtener la tutela efectiva de los tribunales en el ejercicio de sus derechos, pese a los intereses ilegítimos.", + "Juez ordinario [[rand,siempre que lo permita la ley|predeterminado por la Ley, salvo en casos excepcionales regulados por ley]].", + "Buscar un [[rand,abogado|letrado]] en base a la situación [[rand,personal|económica|familiar|social]] [[rand,del individuo|de la persona]].", + "Invertir la carga de la prueba en los casos que un Juez vea conveniente según la legislación actual.", + "Ser informados de los datos [[select,1-2,y,del acusado|de la acusación]].", + "Un proceso judicial que puede dilatarse en el tiempo indefinidamente según sea necesario por Ley.", + "A alargar un proceso judicial por petición [[select,1-3,o,del acusado|de la defensa|de la acusación|del Juez|de las autoridades]].", + "A [[select,1-2,y,obstruir|obstaculizar|interceder]] la acción de la justicia.", + "Obligar a declararse culpable en cumplimiento del derecho al honor.", + "No confesarse culpables, salvo en casos excepcionales regulados por ley." + ] + }, { + "question" : "¿Cuándo no está uno obligado a declarar sobre hechos presuntamente delictivos?", + "rights" : ["Por razón de [[select,1-2,o,parentesco|secreto profesional]], regulado por la Ley."], + "wrongs" : [ + "Por petición [[select,1-3,o,del acusado|de la defensa|de la acusación|del Juez|de las autoridades]], salvo casos excepcionales regulados por Ley.", + "Por razón de [[select,1-2,o,sexo|religión|creencias|origen|nacionalidad]], regulado por la Ley.", + "En casos excepcionales de [[select,1-2,o,parentesco|secreto profesional]]." + ] + }, { + "question" : "¿Quién tiene que demostrar la culpabilidad o inocencia en un proceso judicial?", + "rights" : ["La [[rand,parte acusadora|acusación]][[rand,|, pues el acusado ya cuenta con la inocencia|, pues el acusado ya cuenta con la inocencia, salvo en casos excepcionales donde se revierte la carga de la prueba."], + "wrongs" : [ + "La parte acusada.", + "El Juez.", + "Depende de la situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] de las partes implicadas.", + "Depende del grado del delito." + ] + }, { + "question" : "¿Qué casos pueden no ser obligados a declarar de los que se presentan a continuación?", + "rights" : ["Abogados.", "Médicos.", "Periodistas cuando se basan en el secreto profesional.", "Sacerdotes."], + "wrongs" : ["Políticos.", "Funcionarios públicos.", "Miembros de las fuerzas y cuerpos de seguridad del estado.", "Cualquier persona que no esté en una situación [[select,1-5,o,económica|social|raza|sexo|de libertad|académica]] que lo impida."] + }, { + "question" : [ + "¿Puede ser una persona acusada de algún acto pasado a la tipificación de dicho acto como [[select,1-3,o,delito|falta|infracción administrativa]]?", + "Puede ser condenado o sancionado por acciones u omisiones que en el momento de producirse no constituyan [[select,1-3,o,delito|falta|infracción administrativa]], según la legislación en aquel momento?" + ], + "rights" : ["No, en ningún caso."], + "wrongs" : [ + "Sí, en casos excepcionales regulados por ley.", + "Sí, si se considera necesario para [[select,1-3,o,la seguridad nacional|orden público|la salud pública|el bienestar general]].", + "Depende de la situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] del individuo.", + "Depende de la gravedad de los actos cometidos." + ] + }, { + "question" : "¿A qué van orientadas las penas de privación de libertad y las medidas de seguridad?", + "rights" : ["A la reeducación", "A la reinserción social."], + "wrongs" : [ + "A la retribución.", + "A la venganza.", + "A la disuasión.", + "A la prevención general.", + "A la prevención especial.", + "A la protección de la sociedad." + ] + }, { + "question" : "¿A qué está expuesto un condenado a pena de prisión?", + "rights" : [ + "A los derechos fundamentales del Capítulo [[rand,Segundo|De los Derechos y Libertades]] del Título [[rand,I|De los derechos y deberes fundamentales]] de la Constitución.", + "Derecho a un trabajo remunerado.", + "A los beneficios de la Seguridad Social.", + "Acceso a la cultura y al desarrollo integral de su personalidad." + ], + "wrongs" : [ + "A trabajos forzados[[rand,| para cubrir los costos de su estancia en prisión| para poder pagar las deudas adquiridas tras su condena|, según lo establecido por la Ley]].", + "Se le suprimirán todos sus derechos y pasará a estar condicionado a las leyes penitenciarias correspondientes a las establecidas en las instalaciones.", + "Se le reeducará para facilitar su reinserción social.", + "Para casos excepcionales y de buena conducta, podrá optar a beneficios penitenciarios.", + "Depende de la situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] del individuo." + ] + }, { + "question" : "¿Hasta qué punto podrá sancionar la Administración Civil?", + "rights" : [ + "Sólo en los casos y con las garantías previstas en la Ley.", + "Hasta que en ningún caso, éstas impongan sanciones que supongan privación de libertad." + ], + "wrongs" : [ + "En caso muy graves y excepcionales, se podrá imponer la pena de muerte.", + "Hasta el punto de imponer sanciones que supongan privación de libertad.", + "No hay un límite establecido por ley para dicho fin, quedando la condena en manos de la autoridad competente dentro de los marcos que establece la ley.", + "Depende de la situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] del individuo." + ] + }, { + "question" : "¿En qué casos se hacen Tribunales de Honor?", + "rights" : [ + "Están totalmente prohibidos actualmente.", + "Según la Ley Orgánica 5/2005[[rand,| , de 17 de Noviembre]][[rand,|, de la Defensa Nacional]] quedan prohibidos éstos en el ámbito militar.", + "Están prohibidos [[select,1-2,y,en organizaciones profesionales|en la Administración Civil]]." + ], + "wrongs" : [ + "Sólo en ciertos ámbitos militares.", + "En cualquier ámbito donde se considere necesario.", + "[[Select,1-2,y,en organizaciones profesionales|en la Administración Civil]].", + "Depende de las circunstancias legales en las que se encuentre el caso.", + "En los casos que una Ley Orgánica lo regule." + ] + }, { + "question" : "¿Quiénes tienen derecho a la educación en España según la Constitución?", + "rights" : ["Todos."], + "wrongs" : [ + "[[Select,1-5,y,los españoles|los extranjeros|los apátridas|los ciudadanos de la Unión Europea|los ciudadanos pertenecientes a países de la OTAN|los ciudadanos pertenecientes a países de la ONU]].", + "Cualquier persona que no esté en una situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] que lo impida." + ] + }, { + "question" : "¿Cómo se reconoce la enseñanza según la Constitución Española?", + "rights" : ["Libre."], + "wrongs" : ["[[Select,1-3,y,gratuita|obligatoria|pública|privada|concertada|condicionada]]."] + }, { + "question" : "¿La educación es [[select,1-2,y,obligatoria|gratuita]], según la Constitución Española?", + "rights" : ["Sólo en la etapa de educación básica."], + "wrongs" : [ + "Sí, desde los [[range,2-8]] hasta los [[range,12-18]] años.", + "No, en ningún caso.", + "Sí, en casos excepcionales regulados por ley.", + "Depende de la situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] del individuo." + ] + }, { + "question" : "¿Cuál es el objetivo de la educación según la Constitución Española?", + "rights" : ["El pleno desarrollo de la personalidad humana en el respeto [[select,1-2,y,a los principios democráticos de convivencia|a los derechos y libertades fundamentales]]."], + "wrongs" : [ + "El desarrollo de la persona dentro de la sociedad.", + "[[Select,1-3,y,el individualismo|el ámbito privado de la persona|el fortalecimiento de la familia|el ámbito laboral de la persona|las funciones a desempeñar]].", + "El desarrollo funcional de la persona dentro de la sociedad.", + "El desarrollo de la persona dentro de la sociedad, siempre que no entre en conflicto con los principios religiosos mayoritarios.", + "Instaurar respeto a las normas sociales y culturales predominantes en la sociedad Española." + ] + }, { + "question" : "¿Cómo se garantiza una educación básica para todos?", + "rights" : ["Los Poderes Públicos garantizan el derecho de todos a la educación, mediante una programación general de la enseñanza, con participación efectiva de todos los sectores afectados y la creación de centros docentes."], + "wrongs" : [ + "Mediante la [[select,1-2,y,obligatoriedad|gratuidad]] de la educación básica para todos[[rand,| los españoles]].", + "Mediante la creación de centros [[select,1-2,y,docentes|educativos|de enseñanza]] [[select,1-3,y,públicos|concertados|privados]]." + ] + }, { + "question" : "¿Qué garantizan los Poderes Públicos en materia de educación?", + "rights" : [ + "El derecho de todos a la educación, mediante una programación general de la enseñanza, con participación efectiva de todos los sectores afectados y la creación de centros docentes.", + "El derecho que asiste a los padres para que sus hijos reciban la formación religiosa y moral que esté de acuerdo con sus propias convicciones." + ], + "wrongs" : [ + "A la [[select,1-2,y,obligatoriedad|gratuidad]] de la educación básica para todos[[rand,| los españoles]].", + "A la creación de centros [[select,1-2,y,docentes|educativos|de enseñanza]] [[select,1-3,y,públicos|concertados|privados]].", + "A establecer una educación [[select,1-3,y,religiosa|moral|común]] única para todos los [[rand,españoles|ciudadanos]]." + ] + }, { + "question" : "¿Cuál es una función de los Poderes Públicos en materia de educación?", + "rights" : [ + "Garantizar el derecho de todos a la educación, mediante una programación general de la enseñanza, con participación efectiva de todos los sectores afectados y la creación de centros docentes.", + "Garantizar el derecho que asiste a los padres para que sus hijos reciban la formación religiosa y moral que esté de acuerdo con sus propias convicciones.", + "[[Mix,y,inspeccionar|homologar]] el sistema educativo para garantizar el cumplimiento de las leyes.", + "Ayudarán a los centros docentes que reúnan los requisitos que la Ley establezca." + ], + "wrongs" : [ + "Garantizar la [[select,1-2,y,obligatoriedad|gratuidad]] de la educación básica para todos[[rand,| los españoles]].", + "Garantizar la creación de centros [[select,1-2,y,docentes|educativos|de enseñanza]] [[select,1-3,y,públicos|concertados|privados]].", + "Establecer una educación [[select,1-3,y,religiosa|moral|común]] única para todos los [[rand,españoles|ciudadanos]].", + "Condicionar la educación a la situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] del individuo.", + "Garantizarán [[select,1-2,y,comedor escolar|material escolar]] gratuito para todos los estudiantes." + ] + }, { + "question" : "¿Quiénes intervendrán en la planificación general de la enseñanza?", + "rights" : [ + "[[Mix,y,los profesores|los padres|los alumnos]].", + "[[Mix,y,los profesores|el AMPA|los alumnos]]." + ], + "wrongs" : [ + "[[Select,1-5,y,los padres|los profesores|los sindicatos|las asociaciones de padres|las asociaciones de alumnos|las editoriales|los centros docentes]].", + "Cualquier persona que no esté en una situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] que lo impida.", + "[[Select,1-5,y,el Gobierno|el Senado|el Congreso de los Diputados|las Cortes|la Monarquía|el Rey|la Reina|el Presidente del Gobierno|las Autoridades]]." + ] + }, { + "question" : "¿Quiénes tienen la libertad de crear centros docentes?", + "rights" : ["Las personas [[mix,y,físicas|jurídicas]], dentro del respeto a los principios constitucionales."], + "wrongs" : [ + "Sólo las personas [[select,1-2,y,físicas|jurídicas]] españolas.", + "Sólo las personas [[select,1-2,y,físicas|jurídicas]] que no estén en una situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] que lo impida.", + "Cualquier persona que no esté en una situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] que lo impida.", + "[[Select,1-5,y,el Gobierno|el Senado|el Congreso de los Diputados|las Cortes|la Monarquía|el Rey|la Reina|el Presidente del Gobierno|las Autoridades]]." + ] + }, { + "question" : "¿Se reconoce la autonomía de las Universidades?", + "rights" : ["Sí, en los términos que la Ley establezca."], + "wrongs" : [ + "No, en ningún caso.", + "Sí, en casos excepcionales regulados por ley.", + "Depende de la situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] de la Universidad.", + "Depende de la situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] de los estudiantes.", + "Sí, siempre." + ] + }, { + "question" : "¿Quiénes pueden sindicarse según la Constitución Española?", + "rights" : [ + "Todas las personas, a excepción de los cuerpos militares quienes serán regulados por una Ley Orgánica.", + "[[Mix,o,de los Cuerpos sometidos a disciplica militar|de las Fuerzas o Institutos armados]] podrán estar [[mix,o,limitados|exceptuados]] por Ley, la cual, regularará las peculiaridades." + ], + "wrongs" : [ + "[[Select,1-5,y,los españoles|los extranjeros|los apátridas|los ciudadanos de la Unión Europea|los ciudadanos pertenecientes a países de la OTAN|los ciudadanos pertenecientes a países de la ONU]].", + "Cualquier persona que no esté en una situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] que lo impida.", + "Ninguna persona que esté en una situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] que lo impida.", + "Sólo los trabajadores por cuenta [[select,1-2,y,ajena|propia]].", + "Todas las personas.", + "Todos los Españoles.", + "Los cuerpos y fuerzas de seguridad del estado.", + "Los cuerpos militares." + ] + }, { + "question" : "¿Quién puede ser obligado a sindicarse?", + "rights" : ["Nadie."], + "wrongs" : [ + "Sólo los trabajadores por cuenta [[select,1-2,y,ajena|propia]][[select,0-2,y,|en ciertos sectores regulados por ley|en situaciones excepcionales]][[rand,|, siempre que no se considere necesario para [[select,1-3,o,la seguridad nacional|orden público|la salud pública|el bienestar general]].", + "Cualquier persona que se encuentre en una situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] que lo requiera." + ] + }, { + "question" : "¿Puede ser uno obligado a sindicarse?", + "rights" : ["No, en ningún caso."], + "wrongs" : [ + "Sí, en casos excepcionales regulados por ley.", + "Sí, si se considera necesario para [[select,1-3,o,la seguridad nacional|orden público|la salud pública|el bienestar general]].", + "Depende de la situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] del individuo." + ] + }, { + "question" : "¿Qué comprende la libertad sindical?", + "rights" : [ + "[[Mix,y,el derecho a fundar sindicatos|el derecho a afiliarse al de su elección|el derecho de los sindicatos a formar confederaciones|fundar organizaciones sindicales internacionales|a afiliarse a las organizaciones sindicales internacionales]].", + "[[Mix,y,[1mix,y,el derecho a fundar sindicatos:::a afiliarse al de su elección1]|el derecho de los sindicatos a formar confederaciones|[1mix,y,fundar:::afiliarse1] organizaciones sindicales internacionales]]." + ], + "wrongs" : [ + "[[Select,2-5,y,la posibilidad de fundar sindicatos|el derecho-deber a afiliarse al de su elección|el deber de los sindicatos a formar confederaciones|fundar organizaciones sindicales internacionales|al deber de pertenecer a las organizaciones sindicales internacionales]].", + "Los sindicatos van asociados a las normas y a la Ley, por lo que no hay libertad sindical.", + "Sólo la posibilidad de afiliarse a un sindicato a elección entre los que ya hay." + ] + }, { + "question" : "¿Cómo es la defensa de los intereses de los trabajadores según el artículo 28 de la Constitución Española?", + "rights" : ["Mediante el derecho a la huelga."], + "wrongs" : [ + "Mediante el derecho a la huelga, salvo en casos excepcionales regulados por ley.", + "Mediante el derecho a la huelga, siempre que no se considere necesario para [[select,1-3,o,la seguridad nacional|orden público|la salud pública|el bienestar general]].", + "Mediante el derecho a la huelga, salvo en ciertos sectores regulados por ley.", + "Mediante el derecho a la huelga, salvo en ciertos sectores regulados por ley y siempre que no se considere necesario para [[select,1-3,o,la seguridad nacional|orden público|la salud pública|el bienestar general]]." + ] + }, { + "question" : "Según la Constitución Española. ¿Qué es la huelga?", + "rights" : ["Es un derecho para la defensa de los trabajadores[[rand,| contemplado en su artículo 28]]."], + "wrongs" : [ + "Es un deber para la defensa de los trabajadores por parte de los mismos[[rand,| contemplado en su artículo [1range,1-1691]]].", + "Es un derecho para la defensa de los trabajadores contemplado en su artículo [[range,1-27,29-169]].", + "Es un derecho para la defensa de los trabajadores, salvo en casos excepcionales regulados por ley.", + "Es un derecho para de los trabajadores aplicable según su situación [[select,1-3,o,económica|social|ideológica|académica|laboral|legal]]." + ] + }, { + "question" : "¿El derecho a la huelga tiene alguna condición?", + "rights" : ["Sí, está regulado por la Ley."], + "wrongs" : [ + "No, en ningún caso.", + "Sí, ciertos casos excepcionales regulados por ley.", + "No, salvo casos excepcionales condicionados por la situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] de los participantes.", + "Sí, concretamente viene condicionado por el [[rand,contratante|sindicato|el Gobierno]].", + "Sí, y ha de estudiarse la viabilidad de su ejecución por parte de las autoridades competentes." + ] + }, { + "question" : "¿Quiénes tienen derecho a la huelga?", + "rights" : ["Los trabajadores a excepción de los militares."], + "wrongs" : [ + "[[Select,1-5,y,los españoles|los extranjeros|los apátridas|los ciudadanos de la Unión Europea|los ciudadanos pertenecientes a países de la OTAN|los ciudadanos pertenecientes a países de la ONU]].", + "Cualquier persona que no esté en una situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] que lo impida.", + "Ninguna persona que esté en una situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] que lo impida.", + "Sólo los trabajadores por cuenta [[select,1-2,y,ajena|propia]].", + "Todas las personas.", + "Todos los Españoles.", + "Los cuerpos y fuerzas de seguridad del estado.", + "Los cuerpos militares." + ] + }, { + "question" : "¿Cómo deberán efectuar los Españoles el derecho de petición?", + "rights" : [ + "[[rand,Individual o colectivamente|Colectiva o individualmente]], por escrito, [[mix,y,en la forma|con los efectos]] que la Ley establezca.", + "Los miembros [[mix,o,de los Cuerpos sometidos a disciplica militar|de las Fuerzas o Institutos armados]] sólo podrán ejercer este derecho [[mix,y,[1rand,sólo individualmente:::de forma individual1]|con arreglo a lo dispuesto en su legislación específica]]." + ], + "wrongs" : [ + "[[rand,Individual o colectivamente|Colectiva o individualmente|Únicamente de forma colectivamente|Únicamente de forma individualmente]], por [[mix,o,escrito|verbalmente]], en la forma y con los efectos que la Ley establezca.", + "Sólo en casos excepcionales, y siempre regulados por ley, éstos pueden ser [[rand,individuales|colectivos]].", + "Han de expresarte siempre frente a las autoridades, de forma [[mix,y,[1rand,colectiva:::individual1] y pública]], con el cumplimiento de las mismas.", + "Está [[mix,y,limitado|condicionado]] al uso de representantes.", + "Dicho derecho está condicionado a la situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] del o los participantes.", + "[[select,1-2,y,[[mix,o,los Cuerpos sometidos a disciplica militar|las Fuerzas o Institutos armados]] sólo podrán desarrollar este derecho [[mix,y,[1rand,colectivamente:::de forma colectiva1]|con arreglo a lo dispuesto en su legislación específica]].", + "[[select,1-2,y,[[mix,o,los Cuerpos sometidos a disciplica militar|las Fuerzas o Institutos armados]] [[rand,no tienen dicho derecho|siguen el mismo procedimiento que el resto de los españoles para este derecho]]." + ] + }, { + "question" : "¿Cómo reciben las Cámaras las peticiones que se les dirijan?", + "rights" : ["Únicamente por escrito."], + "wrongs" : [ + "Únicamente de forma verbal.", + "De forma [[mix,o,verbal|por escrito]][[rand,|, salvo en [1rand,casos excepcionales:::ciertos sectores1] regulados por ley.]],", + "De forma verbal o por escrito, siempre que no se considere necesario para [[select,1-3,o,la seguridad nacional|orden público|la salud pública|el bienestar general]].", + "[[Select,2-3,o,de forma verbal|por escrito|mediante la presentación de la misma por manifestaciones ciudadanas]]." + ] + }, { + "question" : "Con respecto al derecho de reunión y a manifestarse. ¿Se pueden presentar peticiones de dicha forma [[rand,directamente|de forma directa]]?", + "rights" : ["No, en ningún caso."], + "wrongs" : [ + "Sí, forma parte de dicho derecho.", + "Sí, en casos excepcionales regulados por ley.", + "Sí, si se considera necesario para [[select,1-3,o,la seguridad nacional|orden público|la salud pública|el bienestar general]].", + "Depende de la situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] de los participantes." + ] + }, { + "question" : "¿Las Cámaras pueden remotir las peticiones a otros órganos o autoridades?", + "rights" : ["Sólo al Gobierno."], + "wrongs" : [ + "No, en ningún caso.", + "No, salvo casos excepcionales y dependiendo de a qué organismo se le deban remitir.", + "Sí, cuando éstas se hacen mediante presentación directa por manifestaciones ciudadanas.", + "Sólo [[rand,al Senado|a la Monarquía|al Congreso de los Diputados|a las Cortes|al Rey|a la Reina|al Presidente del Gobierno|a las Autoridades]].", + "Sí, siempre que éstos vayan dirigidos a [[select,2-5,y,los Poderes Públicos|los organismos públicos|las instituciones públicas|los organismos internacionales|las instituciones internacionales|al Senado|al Congreso de los Diputados|a la Corona|al Gobierno]]." + ] + }, { + "question" : "¿El Gobierno tiene la obligación de explicarse cara las peticiones remitidas por las Cámaras?", + "rights" : ["Sí, siempre que las Cámaras lo exijan."], + "wrongs" : [ + "No, en ningún caso.", + "Sí, siempre que [[select,1-3,o,el Senado|el Congreso de los Diputados|la Corona|las autoridades]] lo exijan.", + "Sí, cuando éstas se hacen mediante presentación directa por manifestaciones ciudadanas.", + "Sí, cuando las propias peticiones hagan alusión a ello.", + "Siempre han de explicarse, sin excepción." + ] + }, { + "question" : "¿Qué es el derecho de petición?", + "rights" : ["La posibilidad de poder dirigirnos a los Poderes Públicos."], + "wrongs" : [ + "La obligación de poder dirigirnos a los Poderes Públicos.", + "La [[rand,posibilidad|obligación]] de poder dirigirnos [[select,1-3,o,a las Autoridades|a los organismo internacionales|a la Corona|al Rey|al Gobierno]]." + ] + }, { + "question" : "¿Para qué es el derecho de petición?", + "rights" : [ + "Para que los ciudadanos puedan expresar sus [[mix,o,opiniones|necesidades|demandas]] a los Poderes Públicos.", + "Para que los ciudadanos puedan poner en conocimiento a los Poderes Públicos de cosas que han ocurrido.", + "Para que los ciudadanos puedan reclamar la intervención de los Poderes Públicos." + ], + "wrongs" : [ + "Para que los ciudadanos puedan expresar sus [[select,1-3,o,opiniones|necesidades|demandas]] [[select,1-3,o,a las Autoridades|a los organismos internacionales|a la Corona|al Gobierno]].", + "Para que los ciudadanos puedan expresar sus [[select,1-3,o,opiniones|necesidades|demandas]] a los Poderes Públicos, siempre que los solicitantes se encuentren en una situación [[select,1-3,y,justificada|de vulnerabilidad|de emergencia|económica|académica|ideológica]] que lo justifique." + ] + }, { + "question" : "¿Qué condiciones expone el artículo 3 de la Ley Orgánica [[rand,|4/2001]][[rand,|, de 12 de Noviembre]] reguladora del Derecho de Petición?", + "rights" : [ + "No son objeto de este derecho aquellas [[mix,o,solicitudes|quejas|sugerencias]] para cuya satisfacción el rodenamiento jurídico estavblezca un procedimiento distinto al regulado en la presente Ley.", + "No son objeto de este derecho aquellas [[mix,o,solicitudes|quejas|sugerencias]] que ya tengan un procedimiento específico regulado." + ], + "wrongs" : [ + "No hay ninguna condición[[rand,| pero sí puede ser de libre objeción por parte de los Poderes Públicos]].", + "Las condiciones se regulan por excepcionalidad con regulación en una Ley Orgánica.", + "Las condiciones que expongan [[select,1-3,o,las Cortes|los Poderes Públicos|la Monarquía|el Gobierno]] en cada caso particular.", + "No son objeto de este derecho aquellas [[select,1-3,o,solicitudes|quejas|sugerencias]] que condicionen su admisión a la presentación de un recurso administrativo previo." + ] + }, { + "question" : "¿Quiénes tienen derecho de petición?", + "rights" : ["Todos los Españoles[[rand,| aunque los [1mix,o,de los Cuerpos sometidos a disciplica militar:::de las Fuerzas o Institutos armados1] sólo podrán ejercer este derecho con arreglo a lo dispuesto en su legislación específica]]."], + "wrongs" : [ + "[[Select,1-5,y,los españoles|los extranjeros|los apátridas|los ciudadanos de la Unión Europea|los ciudadanos pertenecientes a países de la OTAN|los ciudadanos pertenecientes a países de la ONU]].", + "Cualquier persona que no esté en una situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] que lo impida.", + "Ninguna persona que esté en una situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] que lo impida.", + "Sólo los trabajadores por cuenta [[select,1-2,y,ajena|propia]].", + "Todas las personas.", + "Todos los Españoles.", + "Los cuerpos y fuerzas de seguridad del estado.", + "Los cuerpos militares." + ] + }, { + "question" : "¿Cuál es el plazo máximo para [[mix,y,contestar|notificar]], una vez admitida la petición, según el artículo 11 de La Ley Orgánica[[rand,| 4/2001]][[rand,|, de 12 de Noviembre]] reguladora del Derecho de Petición?", + "rights" : ["[[rand,3|Tres]] meses."], + "wrongs" : [ + "[[rand,Dos|2|Cuatro|Cinco|Seis|Ocho|Doce|Catorce|Dieciseis|Veinte|Venticuatro|Treinta y Seis|Cuarenta y Ocho|[1range,4-481]]] [[rand,días|semanas|meses|horas]]." + ] + }, { + "question" : "¿Qué sucede cuando [[rand,no se contesta a|hay silencio administrativo sobre]] una petición según el artículo 11 de La Ley[[rand,| 39/2015]][[rand,|, de 1 de Octubre]] del Procedimiento Administrativo Común de las Administraciones Públicas?", + "rights" : ["Se entenderá desestimada."], + "wrongs" : [ + "Se entenderá como retraso [[rand,administrativo|en la contestación]].", + "Se entenderá como falta de [[rand,respeto|interés]] por parte de la Administración.", + "Se entenderá [[rand,aceptada|denegada]][[rand,|, salvo que se trate de una petición que requiera un procedimiento específico regulado por ley]].", + "Se entenderá desestimada, salvo que se trate de una petición que requiera un procedimiento específico regulado por ley." + ] + }, + + "###############################################################################################################", + "###############################################################################################################", + "###############################################################################################################", + "###############################################################################################################", + "###############################################################################################################", + "###############################################################################################################", + "###############################################################################################################", + "###############################################################################################################", + "###############################################################################################################", + + { + "question" : "Según el artículo 30 de la Constitución Española. ¿Quién tienen los Españoles?", + "rights" : ["[[Mix,y,el derecho|el deber]] de defender a España."], + "wrongs" : [ + "[[select,3,y,el derecho|el deber|la opción|el privilegio|la obligación[1select,0-2,y,moral:::jurídica:::legal1]]] de defender a España.", + "[[select,1-3,y,el deber|la opción|el privilegio|la obligación[1select,0-2,y,moral:::jurídica:::legal1]]] de defender a España.", + "[[select,1-3,y,el derecho|la opción|el privilegio|la obligación[1select,0-2,y,moral:::jurídica:::legal1]]] de defender a España." + ] + }, { + "question" : "¿De que forma se regulará el derecho y el deber de defender a España?", + "rights" : ["Por Ley Orgánica."], + "wrongs" : [ + "Por [[rand,Ley[1rand,::: Militar1]|Real Decreto[1rand,::: Ley| Legislativo1]]].", + "Por lo establecido en las [[rand,Normativas|Leyes|Reglamentos]] militares.", + "Por Ley Orgánica, aunque en casos excepcionales podrá ser regulado por [[rand,Decreto|Real Decreto|Ley Orgánica]].", + "Por la Corona[[rand, ya que el rey es [1,select,1-2,y,el Jefe de los [2rand,3:::tres2] ejércitos:::Jefe del Estado1]]]." + ] + }, { + "question" : "¿Qué establece la Ley Orgánica que regule el derecho y el deber de defender a España?", + "rights" : [ + "Fijará las obligaciones militares de los Españoles.", + "Regulará, con las debidas garantías, la objeción de conciencia.", + "Las causas fuera de la objeción de conciencia de exención del servicio militar obligatorio.", + "La prestación social sustitutoria a la prestación del servicio militar obligatorio." + ], + "wrongs" : [ + "[[rand,La obligación|El deber]] de participar [[rand,activamente en las Fuerzas Armadas|en la Mili]].", + "[[rand,Garantizará|Regulará|Fijará]] [[rand,la obligación|el deber]] de cada Español en la participación activa en las Fuerzas Armadas.", + "Regulará la limitación al uso de la Objeción de Conciencia.", + "Regulará las sanciones por no cumplir con el servicio militar obligatorio.", + "Determina las condiciones que impiden a un Español cumplir con el servicio militar obligatorio." + ] + }, { + "question" : "¿En caso de no poder entregar el servicio militar obligatorio por motivos de conciencia, qué obligaciones se le pueden asignar al ciudadano?", + "rights" : ["Un servicio civil para el cumplimiento de fines de interés general."], + "wrongs" : [ + "La persona podrá ser sancionada.", + "no se puede eludir el servicio miliar obligatorio.", + "Podría darse el caso de un Consejo de Guerra que pueda implantar sanciones, y en caso extremos, penas de prisión.", + "En casos excepcionales podría darse el caso de darle la opción a cumplir con trabajos comunitarios.", + "El servicio militar no es obligatorio, y por tanto, no hay un deber por parte del ciudadano." + ] + }, { + "question" : "¿En qué casos se podría regular el deber de los españoles para defender a España?", + "rights" : ["En los casos de [[mix,o,grave riesgo|catástrofe|calamidad pública]]."], + "wrongs" : [ + "En situaciones de [[mix,o,alarma|excepción|sitio]].", + "Cuando se declare el estado de [[mix,o,alarma|excepción|sitio]].", + "Por decisión de [[select,1-3,o, el gobierno|el Ejecutivo|el Parlamento|el Senado|las Cámaras|la Corona]]." + ] + }, { + "question" : "¿Quiénes participarán en el sostenimiento de los gastos públicos?", + "rights" : ["Todos los Españoles, de acuerdo con su capacidad económica."], + "wrongs" : [ + "[[Select,1-5,y,los españoles|los extranjeros|los apátridas|los ciudadanos de la Unión Europea|los ciudadanos pertenecientes a países de la OTAN|los ciudadanos pertenecientes a países de la ONU]].", + "Cualquier persona que no esté en una situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] que lo impida.", + "Ninguna persona que esté en una situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] que lo impida.", + "Sólo los trabajadores por cuenta [[select,1-2,y,ajena|propia]].", + "Todas las personas.", + "Todos los Españoles." + ] + }, { + "question" : "¿Cómo se plantea, según la Constitución Española, el sostenimiento de los gastos públicos?", + "rights" : ["Mediante un sistema tributario justo, inspirado en los principios de [[mix,y,igualdad|progresividad]] donde ningún caso tendrá alcance confiscatorio."], + "wrongs" : [ + "Mediante un sistema tributario justo, inspirado en los principios de [[mix,y,igualdad|progresividad]] donde todos han de aportar, pudiendo llegar, en ciertos casos, a un nivel confiscatorio de sus bienes.", + "Mediante un sistema tributario justo, inspirado en un sistema de impuestos fijos para todos los ciudadanos[[rand,|, aunque en ningún caso tendrá alcance confiscatorio|. Sólo en ciertos casos tendría alcance confiscatorio]].", + "Mediante un sistema tributario justo, inspirado en los principios de [[mix,y,igualdad|progresividad]] que garantice un aporte porcentualmente mayor a las rentas más altas." + ] + }, { + "question" : "¿Cómo se realizará el gasto público?", + "rights" : [ + "Mediante una asignación equitativa de los recursos públicos.", + "Mediante la programación y ejecución de la asignación basados en la [[mix,y,eficacia|economía]]." + ], + "wrongs" : [ + "Analizando las necesidades y proporcionando los recursos económicos necesarios para su satisfacción.", + "Mediante una asignación fija según las necesidades de cada [[mix,y,área|sector]], dividido por cada región de España.", + "Mediante el ahorro y el mantenimiento de las arcas del estado para poder proveer de los derechos que las leyes ofrecen a los ciudadanos.", + "Dependiendo de la región, cada lugar de España tendrá determinados recursos asignados para su gasto público.", + "Mediante el cálculo de participación ejercido por cada región de España para garantizar un reparto equitativo de los recursos públicos." + ] + }, { + "question" : "¿Se pueden establecer prestaciones personales o patrimoniales?", + "rights" : ["Sí, en los términos que establezca la Ley."], + "wrongs" : [ + "No, en ningún caso.", + "Sí, y además es exigible por el ciudadano.", + "Sí, en casos excepcionales regulados por ley.", + "Depende de la situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] que lo requiera.", + "Depende de los recursos restantes ante las necesidades generales para el mantenimiento del Estado." + ] + }, { + "question" : "¿Quiénes tienen derecho a contraer matrimonio?", + "rights" : ["[[Mix,y,el hombre|la mujer]][[rand,| con plena igualdad jurídica]]."], + "wrongs" : ["[[rand,Cualquier|Toda]] [[rand,persona|español|individuo|hombre|mujer]][[rand,| con plena igualdad jurídica]]."] + }, { + "question" : "¿Por qué vía se regula el Derecho al Matrimonio?", + "rights" : ["Por Ley."], + "wrongs" : ["Por [[rand,Ley[1rand,::: Militar1]|Real Decreto[1rand,::: Ley::: Legislativo1]]]."] + }, { + "question" : "¿Qué nos garantiza la Ley que regula el Derecho al Matrimonio según la Constitución Española?", + "rights" : ["[[Mix,y,[1,mix,y,las formas:::la edad:::la capacidad1] para contraerlo|los [1mix,y,derechos:::deberes1] de los cónyuges|las causas de [1mix,y,separación:::disolución1] y sus efectos]]."], + "wrongs" : [ + "[[Mix,y,las condiciones para contraerlo|las obligaciones de los cónyuges|cuando poder ejercer [1mix,y,separación:::disolución1] y sus efectos]]", + "[[select,2-3,y,la posibilidad de contraer matrimonio independientemente de [1select,1-3,o,sexo:::número de individuos:::condición económica:::condición social:::ubicación física:::riesgos1]|la gestión del contrato legal que adquieren los cónyuges|el cumplimiento del tiempo mínimo de matrimonio y su mantenibilidad]].", + "La regulación de los matrimonios en el ámbito [[select,1-2,y,religioso|judicial]]." + ] + }, { + "question" : "¿Se reconoce el derecho a la [[rand,propiedad privada|herencia]]?", + "rights" : ["Sí, en los términos que establezca la Ley."], + "wrongs" : [ + "Sí, en cualquier caso.", + "Sí, en casos excepcionales regulados por ley.", + "No, en ningún caso.", + "Depende de la situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] que lo requiera.", + "Depende de los recursos restantes ante las necesidades generales para el mantenimiento del Estado." + ] + }, { + "question" : "¿Cómo es la función social del derecho a la [[mix,y,propiedad privada|herencia]]?", + "rights" : ["Está delimitado el contenido del derecho de acuerdo con las leyes."], + "wrongs" : [ + "[[rand,Completa|Es absoluto e ilimitado]].", + "Está limitado en casos excepcionales regulados por ley.", + "Depende de la situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] que lo requiera.", + "Depende de los recursos restantes ante las necesidades generales para el mantenimiento del Estado." + ] + }, { + "question" : "¿En qué casos alguien puede ser privado de sus bienes y derechos?", + "rights" : ["Sólo en casos de [[mix,o,utilidad pública|interés social]], mediante la correspondiente indemnización y de acuerdo con la Ley."], + "wrongs" : [ + "En casos excepcionales regulados por ley.", + "En casos de [[select,1-2,o,utilidad pública|interés social|necesidades del Estado]], mediante la correspondiente [[rand,recompensa|indemnización]] establecida por la Ley.", + "En casos de [[select,1-2,o,utilidad pública|interés social|necesidades del Estado]], mediante el pago establecido [[rand,por el propietario|según la situación [1select,1-3,o,económica:::social:::ideológica:::de vulnerabilidad:::religiosa:::laboral1] de la persona afectada]] y de acuerdo con la Ley." + ] + }, { + "question" : "¿Cómo se reconoce el derecho de fundación en la Constitución Española?", + "rights" : ["PAra fines de interés general, con arreglo de la Ley."], + "wrongs" : [ + "Para fines [[select,1-3,y,personales|de interés particular|ámbitos específicos]], con arreglo de la Ley.", + "Para fines de interés general, con arreglo de una Ley [[rand,Orgánica|Ordinaria]].", + "Para fines de interés general, con arreglo de una Ley, aunque en casos excepcionales podrá ser regulado por [[rand,Decreto|Real Decreto|Ley Orgánica]]." + ] + }, { + "question" : "¿Qué tipo de fundaciones son ilegales?", + "rights" : ["Las que persigan fines o utilicen medios tipificados como delito."], + "wrongs" : [ + "Las que persigan fines o utilicen medios tipificados como [[select,2-3,o,delito|falta|infracción administrativa]].", + "Las que persigan fines o utilicen medios tipificados como [[select,1-3,o,falta|infracción administrativa]].", + "No hay términos específicos para determinar cuando una fundación es ilegal, y se procederá según el caso particular." + ] + }, { + "question" : "¿Cuándo podrán ser [[select,1-2,o,disueltas|suspendidas]] las fundaciones según la Constitución Española?", + "rights" : ["Sólo por resolución judicial motivada."], + "wrongs" : ["Sólo por decisión [[select,1-3,o,del Gobierno|de las Cortes|de la Corona|del Senado|del Congreso de los Diputados|de las Autoridades|de las Cámaras]]."] + }, { + "question" : "¿Qué es el trabajo según la Constitución Española?", + "rights" : ["[[Mix,y,un derecho|un deber]]."], + "wrongs" : [ + "[[Select,1-3,y,un deber[1rand,| moral1]|una obligación|un privilegio|un consentimiento]].", + "[[Select,1-3,y,un derecho|un deber moral|una obligación|un privilegio|un consentimiento]].", + "La forma individual que tienen los [[rand,ciudadanos|españoles]] para contribuir[[rand,para con| al sostenimiento de]] [[rand,el Estado|los gastos públicos]].", + "Es la forma de poder remunerarse y obtener ingresos para el sostenimiento personal y familiar.", + "Es la forma de poder participar activamente en la sociedad." + ] + }, { + "question" : "El [[mix,y,derecho|deber]] al trabajo. ¿Cómo se considera según la Constitución Española?", + "rights" : [ + "De libre elección de [[mix,y,profesión|oficio]].", + "Promoción a través del trabajo.", + "A una remuneración suficiente para satisfacer sus necesidades y las de su familia.", + "En ningún caso puede hacerse discriminación por razón de sexo." + ], + "wrongs" : [ + "Se permite la libre profesión, pero el oficio será establecido según necesidades.", + "[[rand,La promoción se basará|Los puestos laborales se basarán]] en la situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]] del individuo.", + "[[rand,Excepcionalmente, se|Se]] puede condicionar un puesto de trabajo al sexo del demandante[[rand,|, siempre, de acuerdo con la Ley que lo regula]].", + "[[rand,Excepcionalmente, se|Se]] puede discriminar la selección de un demandante según su situación [[select,1-5,o,económica|social|familiar|religiosa|raza|sexo|de libertad|académica]][[rand,|, siempre, de acuerdo con la Ley que lo regula]].", + "El trabajo está orientado a poder cubrir las necesidades básicas del individuo.", + "Garantiza el pluriempleo para que un individuo pueda hacerse cargo de las necesidades individuales y las de su familia." + ] + }, { + "question" : "¿Por qué tipo de Ley se regula el derecho al trabajo?", + "rights" : ["Por Real Decreto Legislativo."], + "wrongs" : ["Por [[rand,Ley[1rand,Orgánica::: Militar1]|Real Decreto[1rand,::: Ley:::Administrativo1]|Normativa[1rand,::: Regulatoria1]]]."] + }, { + "question" : "¿Qué regula la Ley que de por sí, regula los Colegios Profesionales, según la Constitución Española?", + "rights" : ["[[mix,el régimen jurídico de los Colegios Profesionales|el ejercicio de las profesiones tituladas]]."], + "wrongs" : [ + "Los [[select,1-2,y,derechos|deberes]] de los [[rand,profesionales colegiados|Colegios Profesionales]].", + "[[Select,1-3,y,la forma|la estructura[1rand,::: interna::: externa1]|el funcionamiento|las [1rand,ideas:::ideologías1]]] de los Colegios Profesionales.", + "A los miembros de los Colegios Profesionales.", + "[[mix,el régimen [1rand,estatutario:::político:::ideológico1] de los Colegios Profesionales|[1rand,el desempeño:::el desarrollo:::los niveles:::la estructura:::la formación:::la forma:::la funcionalidad:::el funcionamiento1] de las profesiones tituladas]]" + ] + }, { + "question" : "¿Cómo ha de ser la estructura interna y el funcionamiento de los Colegios Profesionales según la Constitución Española?", + "rights" : ["Democráticos."], + "wrongs" : ["[[rand,Autoritarios|Jerárquicos|Militares|Disciplinarios|Totalitarios|Meritorios|Meritocráticos]]."] + }, { + "question" : "¿Qué tipo de Ley regula los Colegios Profesionales?", + "rights" : ["Por Ley."], + "wrongs" : ["Por [[rand,Ley [1rand,Orgánica:::Militar:::Estatutaria1]|Real Decreto[1rand,::: Ley::: Legislativo1]|Normativa[1rand,::: Regulatoria1]]]."] + }, { + "question" : "¿Cómo se reconoce la libertad de empresa?", + "rights" : ["En el marco de la economía de mercado."], + "wrongs" : ["En el marco de la economía [[select,1-3,o,planificada|dirigida|centralizada|preestablecida|condicionada|de valores|mundial|[1rand,:::supra:::inter1]nacional]]."] + }, { + "question" : "¿Cuáles son los objetivos de los Poderes Públicos cara la libertad de empresa?", + "rights" : ["[[Mix,y,[1mix,y,garantizar|proteger1] su ejercicio|defender la productividad de acuerdo con las exigencias de la economía general y, en su caso, de la planificación]]."], + "wrongs" : [ + "[[Mix,y,[1select,1-3,y,exigir:::promover:::obligar:::gestionar:::fomentar:::planificar:::defender1] su ejercicio|[1select,1-3,y,garantizar:::exigir:::promover:::exponer:::regular:::condicionar:::planificar:::obligar1] la productividad de acuerdo con las exigencias de la economía [1rand,general|local|[2rand,:::inter:::supra2]nacional1] y, en su caso, de [1,rand,sentenciar|castigar|operar|producir1]]]." + ] + }, + + "###############################################################################################################", + "###############################################################################################################", + "###############################################################################################################", + "###############################################################################################################", + "###############################################################################################################", + "###############################################################################################################", + "###############################################################################################################", + "###############################################################################################################", + "###############################################################################################################", + + { + "question" : "¿A quiénes vinculan los derechos y libertades reconocidos en el Capítulo [[rand,II|2[1rand,:::º1]|Segundo|de los Derechos y Libertades]] del Título [[rand,I|de los Derechos y Deberes Fundamentales]] de la Constitución Española?", + "rights" : ["A los poderes públicos."], + "wrongs" : ["A [[select,1-4,y,los ciudadanos|los extranjeros|los apátridas|los ciudadanos de la Unión Europea|los ciudadanos pertenecientes a países de la OTAN|los ciudadanos pertenecientes a países de la ONU|el Senado|el Congreso de los Diputados|la Corona|las Cortes|las Cámaras]]."] + }, { + "question" : "De acuerdo a qué se tutelan los derechos y libertades reconocidos en el Capítulo [[rand,II|2[1rand,:::º1]|Segundo|de los Derechos y Libertades]] del Título [[rand,I|de los Derechos y Deberes Fundamentales]] de la Constitución Española?", + "rights" : [ + "A lo previsto en el artículo 161, apartado 1, subapartado a).", + "Al recurso de Inconstitucionalidad." + ], + "wrongs" : [ + "A lo previsto en el artículo [[range,155-165]], apartado [[range,1-4]], subapartado [[rand,a|b|c|d|e|f|g|h]]).", + "Al recurso de [[rand,Constitucional|Amparo|Habeas Corpus|Objeción de Conciencia]]." + ] + }, { + "question" : "¿Cómo se regulan los derechos y libertades reconocidos en el Capítulo [[rand,II|2[1rand,:::º1]|Segundo|de los Derechos y Libertades]] del Título [[rand,I|de los Derechos y Deberes Fundamentales]] de la Constitución Española?", + "rights" : ["Por Ley Orgánica."], + "wrongs" : ["Por [[rand,Ley[1rand,::: Militar:::Estatutaria|Real Decreto[1rand,::: Ley::: Legislativo1]|Normativa[1rand,::: Regulatoria1]]]."] + }, { + "question" : "¿Cómo condicionan los principios reconocidos en el Título [[rand,III|de los Principios Rectores de la Política Social y Económica]] de la Constitución Española el ejercicio de los derechos y libertades reconocidos en el Capítulo [[rand,II|2[1rand,:::º1]|Segundo|de los Derechos y Libertades]] del Título [[rand,I|de los Derechos y Deberes Fundamentales]] de la Constitución Española?", + "rights" : ["[[Mix,y,el reconocimiento|el respeto|la protección]] de dichos principios informarán [[mix,y,la legislación positiva|la práctica judicial|la actuación de los Poderes Públicos]]."], + "wrongs" : [ + "[[Select,1-3,y,el reconocimiento|el respeto|la protección]] de dichos principios [[select,1-3,y,condicionarán|limitarán|anularán|restringirán|regularán|modificarán]] [[select,1-3,y,la legislación positiva|la práctica judicial|la actuación de los Poderes Públicos]].", + "[[Select,1-3,y,el conocimiento|la consideración|la defensa|la regulación|la obligatoriedad|la inclusión|la igualdad]] de dichos principios informarán [[mix,y,la jurisprudencia [1,rand,positiva:::negativa1]|la práctica [1rand,ejecutiva:::legal:::judicial1]|la actuación de [1rand,las Cortes:::las Cámaras:::el Gobierno:::las autoridades:::los Poderes Públicos1]]]." + ] + }, { + "question" : "¿Ante donde podrán ser alegados los principios reconocidos en el Título [[rand,III|de los Principios Rectores de la Política Social y Económica]] de la Constitución Española?", + "rights" : ["Ante la Jurisdicción Ordinaria, de acuerdo con lo que dispongan las leyes que los desarrollen."], + "wrongs" : ["Ante [[select,1-3,y,la Jurisdicción [1rand,Militar:::Especial:::Administrativa:::Extraordinaria:::Plenaria]|las Cortes|la Corona|las Cámaras|el Gobierno|las Autoridades]][[rand,|, de acuerdo con lo que dispongan las leyes que los desarrollen]]."] + }] +}] \ No newline at end of file diff --git a/Public/json/paco/paco.ce.04.constitucion.i-articulado.json b/Public/json/paco/paco.ce.04.constitucion.i-articulado.json new file mode 100644 index 0000000..3f2f182 --- /dev/null +++ b/Public/json/paco/paco.ce.04.constitucion.i-articulado.json @@ -0,0 +1,244 @@ +[{ + "origin" : "Paco Barbié", + "title" : "Constitución - Articulado del Título I - Derechos y Deberes Fundamentales", + "group" : "paco_constitucion_i_articulado", + "sources" : ["https://www.youtube.com/watch?v=saHVlJohBTU"], + "queries" : [{ + "question" : "¿En qué artículo de la Constitución Española se regula que los tratados y acuerdos internacionales formarán parte del ordenamiento jurídico interno si éstos están publicados oficialmente en España?", + "rights" : ["En el artículo 96."], + "wrongs" : ["En el artículo [[range,1-95|97-169]]."] + }, { + "question" : "¿Qué artículo de la Constitución Española nos habla de la igualdad ante la ley?", + "rights" : ["El artículo 14."], + "wrongs" : ["El artículo [[range,1-13|15-169]]."] + }, { + "question" : "¿Qué artículo de la Constitución Española nos dice que los Derechos y Libertades reconocidos en el Título [[rand,I|de los Derechos y Deberes Fundamentales]] de la Constitución son vinculantes a todos los poderes públicos?", + "rights" : ["El artículo 53."], + "wrongs" : ["El artículo [[range,1-52|54-169]]."] + }, { + "question" : "¿En qué artículo de la Constitución Española se regulan las Leyes Orgánicas en la Constitución Española?", + "rights" : ["En el artículo 81."], + "wrongs" : ["En el artículo [[range,1-80|82-169]]."] + }, { + "question" : "¿Qué artículo de la Constitución Española de la constitución regula las reformas esenciales de la Constitución?", + "rights" : ["El artículo 168."], + "wrongs" : ["El artículo [[range,1-167|169]]."] + }, { + "question" : [ + "¿Qué artículo de la Constitución se determina el derecho [[mix,y,a la intimidad personal y familiar|al honor|a la propia imagen]]?", + "¿En qué artículo de la Constitución Española se reconoce al domicilio como inviolable?" + ], + "rights" : ["El artículo 18."], + "wrongs" : ["El artículo [[range,1-17|19-169]]."] + }, { + "question" : "¿Qué artículo de la Constitución Española de la Constitución regular el derecho de reunión?", + "rights" : ["El artículo 21."], + "wrongs" : ["El artículo [[range,1-20|22-169]]."] + }, { + "question" : "¿Qué artículo de la Constitución Española de la Constutución regula el derecho de asociación?", + "rights" : ["El artículo 22."], + "wrongs" : ["El artículo [[range,1-21|23-169]]."] + }, { + "question" : "¿En qué artículos de la Constitución Española se habla sobre el las asociaciones?", + "rights" : ["En los artículos 7 y 22."], + "wrongs" : [ + "En el artículo [[range,1-6|8-21|23-169]].", + "En los artículos [[serie,1-6|8-21|23-100]] y [[serie,8-21|23-169]].", + "En los artículos [[serie,1-6|8-21|23-100]], [[serie,8-21|23-160]] y [[serie,23-169]].", + "En los artículos [[serie,1-6|8-21|23-100]], [[serie,8-21|23-160]], [[serie,8-21|23-165]] y [[serie,23-169]]." + ] + }, { + "question" : "¿En qué artículo de la Constitución Española se habla del derecho de participación?", + "rights" : ["En el artículo 23."], + "wrongs" : ["En el artículo [[range,1-22|24-169]]."] + }, { + "question" : "¿Qué artículo de la Constitución Española [[rand,genera más recursos de amparo|regula la Protección Judicial de los Derechos]]?", + "rights" : ["El artículo 24."], + "wrongs" : ["El artículo [[range,1-23|25-169]]."] + }, { + "question" : "¿Qué artículos de la Constitución Española hablan de la retroactividad de la Ley?", + "__COMMENTS__" : "Los artículos 9.3 y 25.1.", + "rights" : ["Los artículos 9 y 25."], + "wrongs" : [ + "El artículo [[range,1-9|10-24|26-169]].", + "Los artículos [[serie,1-9|10-24|26-100]] y [[serie,26-169]].", + "Los artículos [[serie,1-9|10-24|26-100]], [[serie,10-24|26-160]] y [[serie,26-169]].", + "Los artículos [[serie,1-9|10-24|26-100]], [[serie,10-24|26-160]], [[serie,10-24|26-165]] y [[serie,26-169]]." + ] + }, { + "question" : "¿Qué artículo habla sobre [[select,1-2,y,la educación|la libertad en la enseñanza]]?", + "rights" : ["El artículo 27."], + "wrongs" : ["El artículo [[range,1-26|28-169]]."] + }, { + "question" : "¿Qué artículos de la Constitución Española habla de los sindicatos?", + "rights" : ["Los artículos 7 y 28."], + "wrongs" : [ + "El artículo [[range,1-6|8-27|29-169]].", + "Los artículos [[serie,1-6|8-27|29-100]] y [[serie,29-169]].", + "Los artículos [[serie,1-6|8-27|29-100]], [[serie,8-27|29-160]] y [[serie,29-169]].", + "Los artículos [[serie,1-6|8-27|29-100]], [[serie,8-27|29-160]], [[serie,8-27|29-165]] y [[serie,29-169]]." + ] + }, { + "question" : "¿Qué artículo de la Constitución Española habla del derecho [[rand,a sindicarse|a la huelga]]?", + "rights" : ["El artículo 28."], + "wrongs" : [ + "El artículo [[range,1-27|29-169]]." + ] + }, { + "question" : "¿Qué artículo de la Constitución Española regula el derecho de Petición?", + "rights" : ["El artículo 29."], + "wrongs" : ["El artículo [[range,1-28|30-169]]."] + }, { + "question" : "¿Qué artículo de la Constitución Española regula las peticiones a las Cámaras?", + "rights" : ["El artículo 77."], + "wrongs" : ["El artículo [[range,1-76|78-169]]."] + }, { + "question" : "¿Qué artículo de la Constitución Española regula [[mix,y,el servicio militar|la objeción de conciencia]]?", + "rights" : ["El artículo 30."], + "wrongs" : ["El artículo [[range,1-29|31-169]]."] + }, { + "question" : "¿Qué artículo de la Constitución Española nos habla sobre el sistema tributario?", + "rights" : ["El artículo 31."], + "wrongs" : ["El artículo [[range,1-30|32-169]]."] + }, { + "question" : "¿Qué artículo de la Constitución Española regula el derecho al matrimonio?", + "rights" : ["El artículo 32."], + "wrongs" : ["El artículo [[range,1-31|33-169]]."] + }, { + "question" : "¿Qué artículo de la Constitución Española regula el derecho a [[mix,y,la propiedad privada|a la herencia]]?", + "rights" : ["El artículo 33."], + "wrongs" : ["El artículo [[range,1-32|34-169]]."] + }, { + "question" : "¿Qué artículo de la Constitución Española regula el derecho de fundación?", + "rights" : ["El artículo 34."], + "wrongs" : ["El artículo [[range,1-33|35-169]]."] + }, { + "question" : "¿Qué artículo de la Constitución Española regula el derecho y deber de trabajar?", + "rights" : ["El artículo 35."], + "wrongs" : ["El artículo [[range,1-34|36-169]]."] + }, { + "question" : "¿Qué artículo de la Constitución Española regula el régimen jurídico de los Colegios Profesionales?", + "rights" : ["El artículo 36."], + "wrongs" : ["El artículo [[range,1-35|37-169]]."] + }, { + "question" : "¿Qué artículo de la Constitución Española regula los [[mix,y,convenios|conflictos]] laborales?", + "rights" : ["El artículo 37."], + "wrongs" : ["El artículo [[range,1-36|38-169]]."] + }, { + "question" : "¿Qué artículo de la Constitución Española regula la [[mix,y,libertad de empresa|economía del mercado]]?", + "rights" : ["El artículo 38."], + "wrongs" : ["El artículo [[range,1-37|39-169]]."] + }] +}, { + "origin" : "Paco Barbié", + "title" : "Constitución - Articulado del Título I - Derechos y Deberes Fundamentales II", + "group" : "paco_constitucion_i_articulado", + "sources" : ["https://www.youtube.com/watch?v=saHVlJohBTU"], + "queries" : [{ + "question" : "¿Qué nos dice el artículo 96 de la Constitución Española?", + "rights" : ["Los tratados y acuerdos internacionales formarán parte del ordenamiento jurídico interno si éstos están publicados oficialmente en España."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué nos dice el artículo 14 de la Constitución Española?", + "rights" : [ + "Los Españoles somos iguales ante la ley.", + "Los Españoles no tenemos discriminación por razón de [[mix,ni,nacimiento|sexo|raza|religión|opinión]] ni ninguna otra condición o circunstancia [[mix,o,personal|social]].", + "Los Españoles no tenemos discriminación por ninguna condición o circunstancia [[mix,o,personal|social]]." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué nos dice el artículo 53 de la Constitución Española?", + "rights" : [ + "Los Derechos y Libertades reconocidos en el Título [[rand,I|de los Derechos y Deberes Fundamentales]] de la Constitución son vinculantes a todos los poderes públicos.", + "Sólo por ley podrá regularse el ejercicio de los Derechos y Libertades reconocidos en el Título [[rand,I|de los Derechos y Deberes Fundamentales]] de la Constitución, respetando su contenido esencial[[rand,|, de acuerdo con lo previsto en el artículo 161.1a|, de acuerdo con lo previsto por el Recursos de Inconstitucionalidad]]." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿De qué trata el artículo 81 de la Constitución Española?", + "rights" : ["Determinan que son las Leyes Orgánicas"], + "brothers_are_wrongs" : true + }, { + "question" : "¿De qué trata el artículo 168 de la Constitución Española?", + "rights" : ["Regula las reformas esenciales de la Constitución."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué derechos salen recogidos en el artículo 18 de la Constitución Española?", + "rights" : ["Derecho [[mix,y,a la intimidad personal y familiar|al honor|a la propia imagen]]."], + "wrongs" : [ + "Derecho [[mix,y,a la intimidad personal y familiar|a la propia imagen|a la libertad de expresión|a la libertad religiosa|a la libertad de prensa]].", + "Derecho [[mix,y,a la intimidad personal y familiar|al honor|a la libertad de expresión|a la libertad religiosa|a la libertad de prensa]]." + ] + }, { + "question" : "¿Qué regula el artículo 21 de la Constitución Española?", + "rights" : ["El derecho de reunión."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué regula el artículo 22 de la Constitución Española?", + "rights" : ["El derecho de asociación."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué regula el artículo 23 de la Constitución Española?", + "rights" : ["El derecho de participación."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué es propio del artículo 24 de la Constitución Española?", + "rights" : [ + "Es el artículo que genera más recursos de amparo.", + "Genera muchos recursos de amparo.", + "La regulación de la Protección Judicial de los Derechos." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿De qué trata el artículo 27 de la Constitución Española?", + "rights" : ["Habla sobre [[select,1-2,y,la educación|la libertad en la enseñanza]]."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué regula el artículo 28 de la Constitución Española?", + "rights" : ["El derecho [[rand,a sindicarse|a la huelga]]."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué regula el artículo 29 de la Constitución Española?", + "rights" : ["El derecho de Petición."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué regula el artículo 77 de la Constitución Española?", + "rights" : ["Las peticiones a las Cámaras."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué regula el artículo 30 de la Constitución Española?", + "rights" : ["El derecho [[mix,y,el servicio militar|la objeción de conciencia]]."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué regula el artículo 31 de la Constitución Española?", + "rights" : ["El sistema tributario."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué regula el artículo 32 de la Constitución Española?", + "rights" : ["El derecho al matrimonio."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué regula el artículo 33 de la Constitución Española?", + "rights" : ["El derecho a [[mix,y,la propiedad privada|a la herencia]]."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué regula el artículo 34 de la Constitución Española?", + "rights" : ["El derecho de fundación."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué regula el artículo 35 de la Constitución Española?", + "rights" : ["El derecho y deber de trabajar."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué regula el artículo 36 de la Constitución Española?", + "rights" : ["El régimen jurídico de los Colegios Profesionales."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué regula el artículo 37 de la Constitución Española?", + "rights" : ["Los [[mix,y,convenios|conflictos]] laborales."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué regula el artículo 38 de la Constitución Española?", + "rights" : ["La [[mix,y,libertad de empresa|economía del mercado]]."], + "brothers_are_wrongs" : true + }] +}] \ No newline at end of file diff --git a/Public/json/paco/paco.ce.05.constitucion.i-leyes.json b/Public/json/paco/paco.ce.05.constitucion.i-leyes.json new file mode 100644 index 0000000..9c6408a --- /dev/null +++ b/Public/json/paco/paco.ce.05.constitucion.i-leyes.json @@ -0,0 +1,148 @@ +[{ + "origin" : "Paco Barbié", + "title" : "Constitución - Título I - Derechos y Deberes Fundamentales - Leyes", + "group" : "paco_constitucion_i_leyes", + "source" : "https://www.youtube.com/watch?v=saHVlJohBTU", + "queries" : [{ + "question" : "Por generalización sobre la igualdad de todos los Españoles, según el artículo 14 de la Constitución Española. ¿Qué [[rand,normativa|ley]] ayuda a [[rand,determinar|darle valor a]] esta igualdad?", + "rights" : [ + "La Ley Orgánica 3/2007[[rand,|, de 22 de Marzo]][[rand,|, para la igualdad efectiva de mujeres y hombres]].", + "La Ley 15/2022[[rand,|, de 12 de Julio]][[rand,|, integral para la igualdad de trato y la no discriminación]].", + "La Ley Zorolo[[rand,|, de 12 de Julio]][[rand,| del 2022]][[rand,|, integral para la igualdad de trato y la no discriminación]].", + "La Ley Orgánica 6/1985[[rand,|, de 1 de Julio]][[rand,|, del Poder Judicial]].", + "La Ley 50/1981[[rand,|, de 30 de Diciembre]][[rand,|, de medidas fiscales, administrativas y del orden social]].", + "La Ley 29/1998[[rand,|, de 13 de Julio]][[rand,|, reguladora de la Jurisdicción Social]].", + "El Real Decreto Legislativo 2/2015,[[rand,|, de 23 de Octubre]][[rand,|, por el que se aprueba el texto refundido de la Ley del Estatuto de los Trabajadores]].", + "La Ley 7/2007[[rand,|, de 12 de Abril]][[rand,|, del Estatuto Básico del Empleado Público]].", + "La Ley 2/2015[[rand,|, de 29 de Abril]][[rand,|, del Empleo Público de Galicia]]." + ], + "wrongs" : [ + "[[rand,La Ley|La Ley Orgánica|El Real Decreto|El Real Decreto Legislativo]] [[range,1-90]]/[[range,1960-2025]].", + "[[rand,La Ley|La Ley Orgánica|El Real Decreto|El Real Decreto Legislativo]] [[range,1-90]]/[[range,1960-2025]], de [[range,1-30]] de [[rand,Enero|Febrero|Marzo|Abril|Mayo|Junio|Julio|Agosto|Septiembre|Octubre|Diciembre]].", + "[[rand,La Ley|La Ley Orgánica|El Real Decreto|El Real Decreto Legislativo]] [[range,1-90]]/[[range,1960-2025]], [[rand,para la igualdad de género|contra la violencia de género|contra el machismo en las instituciones públicas|para la igualdad real y efectiva con los extranjeros|que regula la discriminación positiva entre los Españoles|para regular la igualdad y derechos de los trabajadores]].", + "[[rand,La Ley|La Ley Orgánica|El Real Decreto|El Real Decreto Legislativo]] [[range,1-90]]/[[range,1960-2025]], de [[range,1-30]] de [[rand,Enero|Febrera entre los Españoles|para regular la igualdad y derechos de los trabajadores]]." + ] + }, { + "question" : "¿Qué Ley regula el procedimiento del Habeas Corpus en España?", + "rights" : ["La Ley Orgánica 6/1984[[rand,|, de 24 de Mayo]]."], + "wrongs" : [ + "[[rand,La Ley|La Ley Orgánica|El Real Decreto|El Real Decreto Legislativo]] [[range,1-5|7-90]]/[[range,1960-2025]], de [[range,1-30]] de [[rand,Enero|Febrero|Marzo|Abril|Mayo|Junio|Julio|Agosto|Septiembre|Octubre|Diciembre]].", + "[[rand,La Ley|La Ley Orgánica|El Real Decreto|El Real Decreto Legislativo]] [[range,1-90]]/[[range,1960-1983|1985-2025]], de [[range,1-30]] de [[rand,Enero|Febrero|Marzo|Abril|Mayo|Junio|Julio|Agosto|Septiembre|Octubre|Diciembre]]." + ] + }, { + "question" : "¿Qué Ley regula el tiempo máximo de duración de la prisión provisional?", + "rights" : ["La Ley Orgánica 13/2003[[rand,|, de 24 de Octubre]]."], + "wrongs" : [ + "[[rand,La Ley|La Ley Orgánica|El Real Decreto|El Real Decreto Legislativo]] [[range,1-12|15-90]]/[[range,1960-2025]], de [[range,1-30]] de [[rand,Enero|Febrero|Marzo|Abril|Mayo|Junio|Julio|Agosto|Septiembre|Octubre|Diciembre]].", + "[[rand,La Ley|La Ley Orgánica|El Real Decreto|El Real Decreto Legislativo]] [[range,1-90]]/[[range,1960-2002|2004-2025]], de [[range,1-30]] de [[rand,Enero|Febrero|Marzo|Abril|Mayo|Junio|Julio|Agosto|Septiembre|Octubre|Diciembre]]." + ] + }, { + "question" : "¿Qué Ley regula la Libertad de Expresión en España?", + "rights" : ["La Ley Orgánica 2/1997[[rand,|, de 19 de junio]]."], + "wrongs" : [ + "[[rand,La Ley|La Ley Orgánica|El Real Decreto|El Real Decreto Legislativo]] [[range,1-90]]/[[range,1960-1997|1999-2025]], de [[range,1-30]] de [[rand,Enero|Febrero|Marzo|Abril|Mayo|Junio|Julio|Agosto|Septiembre|Octubre|Diciembre]].", + "[[rand,La Ley|La Ley Orgánica|El Real Decreto|El Real Decreto Legislativo]] [[range,1|3-90]]/[[range,1960-2025]], de [[range,1-30]] de [[rand,Enero|Febrero|Marzo|Abril|Mayo|Junio|Julio|Agosto|Septiembre|Octubre|Diciembre]]." + ] + }, { + "question" : "¿Qué ley establece que quedan prohibidos los Tribunales de Honor?", + "rights" : ["La Ley Orgánica 5/2005[[rand,|, de 17 de Noviembre]][[rand,|, de la Defensa Nacional]]."], + "wrongs" : [ + "[[rand,La Ley[1rand,::: Orgánica1]|El Real Decreto[1rand,::: Legislativo1]]] [[range,1-90]]/[[range,1960-2004|2006-2025]], de [[range,1-30]] de [[rand,Enero|Febrero|Marzo|Abril|Mayo|Junio|Julio|Agosto|Septiembre|Octubre|Diciembre]][[rand,|, de la Defensa Nacional]].", + "[[rand,La Ley[1rand,::: Orgánica1]|El Real Decreto[1rand,::: Legislativo1]]] [[range,1-5|7-90]]/[[range,1960-2025]], de [[range,1-30]] de [[rand,Enero|Febrero|Marzo|Abril|Mayo|Junio|Julio|Agosto|Septiembre|Octubre|Diciembre]][[rand,|, de la Defensa Nacional]]." + ] + }, { + "question" : "¿En qué artículos se les reconoce a los funcionarios públicos el derecho a sindicarse?", + "rights" : ["Entre los artículos 31 al 46 del [[rand,TREBEP|EBEP|[1rand,:::Texto Refundido 1]Estatuto Básico del Empleado Público|Real Decreto Legislativo 5/2015]]."], + "wrongs" : [ + "Sólo en el artículo [[range,1-90]] del [[rand,TREBEP|EBEP|[1rand,:::Texto Refundido 1]Estatuto Básico del Empleado Público|Real Decreto Legislativo 5/2015]].", + "En o|Marzo|Abril|Mayo|Junio|Julio|Agosto|Septiembre|Octubre|Diciembre]], [[rand,para la igualdad de género|contra la violencia de género|contra el machismo en las instituciones públicas|para la igualdad real y efectiva con los extranjeros|que regula la discriminación positivel artículo 28 de la Constitución Española.", + "Entre los artículos [[serie,1-30|32-90]] y [[serie,1-30|32-90]] del [[rand,TREBEP|EBEP|[1rand,:::Texto Refundido 1]Estatuto Básico del Empleado Público|Real Decreto Legislativo 5/2015]].", + "Entre los artículos [[serie,1-45|47-90]] y [[serie,1-45|47-90]] del [[rand,TREBEP|EBEP|[1rand,:::Texto Refundido 1]Estatuto Básico del Empleado Público|Real Decreto Legislativo 5/2015]].", + "Los funcionarios entran dentro del grupo de los militares y por tanto, no tienen derecho a sindicarse.", + "Los funcionarios no tienen derecho a sindicarse." + ] + }, { + "question" : "¿En qué artículos se les reconoce a los funcionarios públicos el derecho a la huelga?", + "rights" : ["Entre los artículos 15 al 30 del [[rand,TREBEP|EBEP|[1rand,:::Texto Refundido 1]Estatuto Básico del Empleado Público|Real Decreto Legislativo 5/2015]]."], + "wrongs" : [ + "Sólo en el artículo [[range,1-90]] del [[rand,TREBEP|EBEP|[1rand,:::Texto Refundido 1]Estatuto Básico del Empleado Público|Real Decreto Legislativo 5/2015]].", + "En el artículo 28 de la Constitución Española.", + "Entre los artículos [[serie,1-14|16-90]] y [[serie,1-14|16-90]] del [[rand,TREBEP|EBEP|[1rand,:::Texto Refundido 1]Estatuto Básico del Empleado Público|Real Decreto Legislativo 5/2015]].", + "Entre los artículos [[serie,1-29|31-90]] y [[serie,1-29|31-90]] del [[rand,TREBEP|EBEP|[1rand,:::Texto Refundido 1]Estatuto Básico del Empleado Público|Real Decreto Legislativo 5/2015]].", + "Los funcionarios entran dentro del grupo de los militares y por tanto, no tienen derecho a sindicarse.", + "Los funcionarios no tienen derecho a sindicarse." + ] + }, { + "question" : "¿Qué Ley regula los derechos y deberes de las Fuerzas Armadas?", + "rights" : ["La Ley Orgánica 9/2011[[rand,|, de 27 de Julio]][[rand,|, de Derechos y Deberes de los miembros de las Fuerzas Armadas]]."], + "wrongs" : [ + "[[rand,La Ley|La Ley Orgánica|El Real Decreto|El Real Decreto Legislativo]] [[range,1-90]]/[[range,1960-2010|2012-2025]], de [[range,1-30]] de [[rand,Enero|Febrero|Marzo|Abril|Mayo|Junio|Julio|Agosto|Septiembre|Octubre|Diciembre]][[rand,|, de Derechos y Deberes de los miembros de las Fuerzas Armadas]].", + "[[rand,La Ley|La Ley Orgánica|El Real Decreto|El Real Decreto Legislativo]] [[range,1-6|8-90]]/[[range,1960-2025]], de [[range,1-30]] de [[rand,Enero|Febrero|Marzo|Abril|Mayo|Junio|Julio|Agosto|Septiembre|Octubre|Diciembre]][[rand,|, de Derechos y Deberes de los miembros de las Fuerzas Armadas]]." + ] + }, { + "question" : "¿Qué Ley regula el derecho de Petición en España?", + "rights" : ["La Ley Orgánica 4/2001[[rand,|, de 12 de Noviembre]][[rand,|, reguladora del Derecho de Petición]]."], + "wrongs" : [ + "[[rand,La Ley|La Ley Orgánica|El Real Decreto|El Real Decreto Legislativo]] [[range,1-90]]/[[range,1960-2000|2002-2025]], de [[range,1-30]] de [[rand,Enero|Febrero|Marzo|Abril|Mayo|Junio|Julio|Agosto|Septiembre|Octubre|Diciembre]][[rand,|, reguladora del Derecho de Petición]].", + "[[rand,La Ley|La Ley Orgánica|El Real Decreto|El Real Decreto Legislativo]] [[range,1-5|7-90]]/[[range,1960-2025]], de [[range,1-30]] de [[rand,Enero|Febrero|Marzo|Abril|Mayo|Junio|Julio|Agosto|Septiembre|Octubre|Diciembre]][[rand,|, reguladora del Derecho de Petición]]." + ] + }, { + "question" : "¿Cuál es la Ley que regula el Procedimiento Administrativo Común de las Administraciones Públicas?", + "rights" : ["La Ley 39/2015[[rand,|, de 1 de Octubre]][[rand,|, del Procedimiento Administrativo Común de las Administraciones Públicas]]."], + "wrongs" : [ + "[[rand,La Ley|La Ley Orgánica|El Real Decreto|El Real Decreto Legislativo]] [[range,1-90]]/[[range,1960-2014|2016-2025]], de [[range,1-30]] de [[rand,Enero|Febrero|Marzo|Abril|Mayo|Junio|Julio|Agosto|Septiembre|Octubre|Diciembre]][[rand,|, del Procedimiento Administrativo Común de las Administraciones Públicas]].", + "[[rand,La Ley|La Ley Orgánica|El Real Decreto|El Real Decreto Legislativo]] [[range,1-38|40-90]]/[[range,1960-2025]], de [[range,1-30]] de [[rand,Enero|Febrero|Marzo|Abril|Mayo|Junio|Julio|Agosto|Septiembre|Octubre|Diciembre]][[rand,|, del Procedimiento Administrativo Común de las Administraciones Públicas]]." + ] + }, { + "question" : "¿Qué Ley regula los Colegios Profesionales en España?", + "rights" : ["La Ley 2/1974[[rand,|, de 13 de Febrero]][[rand,|, sobre Colegios Profesionales]]."], + "wrongs" : [ + "[[rand,La Ley|La Ley Orgánica|El Real Decreto|El Real Decreto Legislativo]] [[range,1-90]]/[[range,1960-1973|1975-2025]], de [[range,1-30]] de [[rand,Enero|Febrero|Marzo|Abril|Mayo|Junio|Julio|Agosto|Septiembre|Octubre|Diciembre]][[rand,|, sobre Colegios Profesionales]].", + "[[rand,La Ley|La Ley Orgánica|El Real Decreto|El Real Decreto Legislativo]] [[range,1|3-90]]/[[range,1960-2025]], de [[range,1-30]] de [[rand,Enero|Febrero|Marzo|Abril|Mayo|Junio|Julio|Agosto|Septiembre|Octubre|Diciembre]][[rand,|, sobre Colegios Profesionales]]." + ] + }] +}, { + "origin" : "Paco Barbié", + "title" : "Constitución - Título I - Derechos y Deberes Fundamentales - Leyes II", + "group" : "paco_constitucion_i_leyes", + "source" : "https://www.youtube.com/watch?v=saHVlJohBTU", + "queries" : [{ + "question" : "¿Qué regula la Ley Orgánica 6/1984[[rand,|, de 24 de Mayo]]?", + "rights" : ["El procedimiento del Habeas Corpus."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué regula la Ley Orgánica 13/2003[[rand,|, de 24 de Octubre]]?", + "rights" : ["La reforma de la Ley de Enjuiciamiento Criminal en materia de prisión provisional."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué regula la Ley Orgánica 2/1997[[rand,|, de 19 de junio]]?", + "rights" : [ + "La Libertad de Expresión en España.", + "La cláusula de conciencia de los profesionales de la información." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué regula la Ley Orgánica 5/2005[[rand,|, de 17 de Noviembre]]?", + "rights" : [ + "Establece que quedan prohibidos los Tribunales de Honor.", + "La Defensa Nacional." + ], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué regula la Ley Orgánica 9/2011[[rand,|, de 27 de Julio]]?", + "rights" : ["Los Derechos y Deberes de los miembros de las Fuerzas Armadas."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué regula la Ley Orgánica 4/2001[[rand,|, de 12 de Noviembre]]?", + "rights" : ["El Derecho de Petición."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué regula la Ley 39/2015[[rand,|, de 1 de Octubre]]?", + "rights" : ["El Procedimiento Administrativo Común de las Administraciones Públicas."], + "brothers_are_wrongs" : true + }, { + "question" : "¿Qué regula la Ley 2/1974[[rand,|, de 13 de Febrero]]?", + "rights" : ["Los Colegios Profesionales en España."], + "brothers_are_wrongs" : true + }] +}] \ No newline at end of file diff --git a/Public/json/random/random.ce.00.constitucion.json b/Public/json/random/random.ce.00.constitucion.json new file mode 100644 index 0000000..469c147 --- /dev/null +++ b/Public/json/random/random.ce.00.constitucion.json @@ -0,0 +1,28 @@ +[{ + "title" : "Random - Constitución", + "queries" : [{ + "question" : "¿En qué año fue aprobada la Constitución Española?", + "rights" : ["1978"], + "wrongs" : ["1975", "1980", "1982", "1976", "1977", "1979", "1981", "1983", "1984", "1985", "1986", "1987", "1988", "1989", "1990", "1991", "1992", "1993", "1994", "1995", "1996", "1997", "1998", "1999", "2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007", "2008", "2009", "2010", "2011", "2012", "2013", "2014", "2015", "2016", "2017", "2018", "2019", "2020"] + }, { + "question" : "¿Cuál es el título del primer capítulo de la Constitución Española?", + "rights" : ["De los derechos y deberes fundamentales"], + "wrongs" : ["De la Corona y la sucesión al trono", "De las Cortes Generales y su funcionamiento", "De la organización territorial del Estado"] + }, { + "question" : "¿Qué artículo establece la soberanía nacional en España?", + "rights" : ["Artículo 1"], + "wrongs" : ["Artículo 2", "Artículo 3", "Artículo 4"] + }, { + "question" : "¿Qué principio fundamental se menciona en el artículo 1 de la Constitución?", + "rights" : ["La soberanía nacional reside en el pueblo español"], + "wrongs" : ["La soberanía reside en el rey o reina de España", "La soberanía reside en las comunidades autónomas de España"] + }, { + "question" : "¿Qué forma política adopta el Estado español según la Constitución?", + "rights" : ["Monarquía parlamentaria"], + "wrongs" : ["República presidencialista"] + }, { + "question" : "¿Qué artículo establece la igualdad de todos los españoles ante la ley?", + "rights" : ["Artículo 14"], + "wrongs" : ["Artículo 13"] + }] +}] \ No newline at end of file diff --git a/Public/scss/OpoTests.css b/Public/scss/OpoTests.css new file mode 100644 index 0000000..4714b53 --- /dev/null +++ b/Public/scss/OpoTests.css @@ -0,0 +1,380 @@ +@charset "UTF-8"; +.opo-tests { + position: relative; + top: 0em; + left: 0em; + width: 100%; + height: 100%; + overflow: hidden; } + .opo-tests, .opo-tests input, .opo-tests button { + font-family: Arial, Helvetica, sans-serif; + font-size: 1em; } + .opo-tests a[href] { + text-decoration: none; } + .opo-tests a[href], .opo-tests button { + cursor: pointer; + transition-duration: 1s; + transition-property: color; } + .opo-tests a[href]:hover, .opo-tests button:hover { + transition-duration: 0.15s; } + .opo-tests button, .opo-tests input { + border-width: 0.1em; + border-style: solid; + border-radius: 0.3em; } + .opo-tests a[href], .opo-tests button, .opo-tests input { + outline: none; } + .opo-tests button { + transition-property: color,background-color,border-color,box-shadow; } + .opo-tests input { + transition-property: border-color,box-shadow; + transition-duration: 1s; } + .opo-tests input:focus { + transition-duration: 0.15s; } + .opo-tests [data-icon]::before { + margin-right: .4em; + font-family: "FA6FS"; } + .opo-tests [data-visible=false] { + display: none; } + .opo-tests fieldset { + margin: 1em 0em; + border: none; } + .opo-tests legend { + font-weight: 900; + font-size: 1.2em; } + .opo-tests .form fieldset { + width: 100%; + box-sizing: border-box; } + .opo-tests .form .structure { + display: table; + width: 92%; + max-width: 92%; + margin-left: 3%; + table-layout: fixed; + box-sizing: border-box; } + .opo-tests .form .structure > div { + display: table-row; } + .opo-tests .form .structure > div > * { + display: table-cell; + padding: .2em .5em; + vertical-align: top; } + .opo-tests .form .structure > div > span { + max-width: 80%; } + .opo-tests .form .structure > div > label { + width: 20em; } + .opo-tests .form .structure > div > ul { + width: 0em; } + .opo-tests .form [data-i] > label { + text-align: right; } + .opo-tests .form [data-i] > label > span { + display: block; } + .opo-tests .form [data-i] > label > span:first-child { + font-weight: 900; + white-space: nowrap; } + .opo-tests .form [data-i] > label > span:first-child::after { + content: ":"; } + .opo-tests .form [data-i] > label > span + span { + font-size: .85em; } + .opo-tests .form [type=number], .opo-tests .form [type=text] { + width: 100%; } + .opo-tests .buttons, .opo-tests .group { + display: block; + text-align: center; } + .opo-tests .buttons > *, .opo-tests .group > * { + border-radius: 0em; } + .opo-tests .buttons > :first-child, .opo-tests .group > :first-child { + border-top-left-radius: 0.3em; + border-bottom-left-radius: 0.3em; } + .opo-tests .buttons > :last-child, .opo-tests .group > :last-child { + border-top-right-radius: 0.3em; + border-bottom-right-radius: 0.3em; } + .opo-tests[data-gui-mode=light] { + background-color: #EFEFEF; } + .opo-tests[data-gui-mode=light], .opo-tests[data-gui-mode=light] input { + color: #222; } + .opo-tests[data-gui-mode=light] header, .opo-tests[data-gui-mode=light] footer { + box-shadow: 0em 0em 1em #EFEFEF; } + .opo-tests[data-gui-mode=light], .opo-tests[data-gui-mode=light] input, .opo-tests[data-gui-mode=light] button { + color: #222; } + .opo-tests[data-gui-mode=light] a, .opo-tests[data-gui-mode=light] button { + color: #2272D4; } + .opo-tests[data-gui-mode=light] a:hover, .opo-tests[data-gui-mode=light] button:hover { + color: #D47222; } + .opo-tests[data-gui-mode=light] button { + border-color: #2272D4; + background-color: #e5e9ee; + box-shadow: 0em 0em 0.2em inset #2272D4; } + .opo-tests[data-gui-mode=light] button:hover { + border-color: #D47222; + background-color: #eee9e5; + box-shadow: 0em 0em 0.2em inset #D47222; } + .opo-tests[data-gui-mode=light] input { + color: #222; + border-color: #222; + background-color: #dbdbdb; + box-shadow: 0em 0em 0.2em inset #222; } + .opo-tests[data-gui-mode=light] input:focus { + border-color: #2272D4; + box-shadow: 0em 0em 0.2em inset #2272D4; } + .opo-tests[data-gui-mode=light] .graphic [data-status=unanswered] { + background-color: #dadada; } + .opo-tests[data-gui-mode=light] .graphic [data-status=answered] { + background-color: #bcbcbc; } + .opo-tests[data-gui-mode=light] .graphic [data-status=right] { + background-color: #119111; } + .opo-tests[data-gui-mode=light] .graphic [data-status=wrong] { + background-color: #911111; } + .opo-tests[data-gui-mode=light] .graphic [data-status=partially] { + background-color: #919111; } + .opo-tests[data-gui-mode=dark] { + background-color: #222; } + .opo-tests[data-gui-mode=dark], .opo-tests[data-gui-mode=dark] input { + color: #EFEFEF; } + .opo-tests[data-gui-mode=dark] header, .opo-tests[data-gui-mode=dark] footer { + box-shadow: 0em 0em 1em #222; } + .opo-tests[data-gui-mode=dark], .opo-tests[data-gui-mode=dark] input, .opo-tests[data-gui-mode=dark] button { + color: #EFEFEF; } + .opo-tests[data-gui-mode=dark] a, .opo-tests[data-gui-mode=dark] button { + color: #649ce1; } + .opo-tests[data-gui-mode=dark] a:hover, .opo-tests[data-gui-mode=dark] button:hover { + color: #e19c64; } + .opo-tests[data-gui-mode=dark] button { + border-color: #649ce1; + background-color: #25282c; + box-shadow: 0em 0em 0.2em inset #649ce1; } + .opo-tests[data-gui-mode=dark] button:hover { + border-color: #e19c64; + background-color: #2c2825; + box-shadow: 0em 0em 0.2em inset #e19c64; } + .opo-tests[data-gui-mode=dark] input { + color: #EFEFEF; + border-color: #EFEFEF; + background-color: #373737; + box-shadow: 0em 0em 0.2em inset #EFEFEF; } + .opo-tests[data-gui-mode=dark] input:focus { + border-color: #649ce1; + box-shadow: 0em 0em 0.2em inset #649ce1; } + .opo-tests[data-gui-mode=dark] .graphic [data-status=unanswered] { + background-color: #363636; } + .opo-tests[data-gui-mode=dark] .graphic [data-status=answered] { + background-color: #555555; } + .opo-tests[data-gui-mode=dark] .graphic [data-status=right] { + background-color: #78f778; } + .opo-tests[data-gui-mode=dark] .graphic [data-status=wrong] { + background-color: #f77878; } + .opo-tests[data-gui-mode=dark] .graphic [data-status=partially] { + background-color: #f7f778; } + .opo-tests header, .opo-tests main, .opo-tests footer { + position: absolute; + left: 0em; + width: 100%; } + .opo-tests header { + display: flex; + flex-wrap: nowrap; + align-items: flex-end; + top: 0em; + height: 4em; } + .opo-tests header > * { + flex: 0 0 auto; } + .opo-tests main { + top: 4em; + bottom: 2em; + overflow: auto; } + .opo-tests footer { + display: flex; + flex-wrap: nowrap; + align-items: center; + bottom: 0em; + height: 2em; } + .opo-tests footer > * { + flex: 1 1 auto; } + .opo-tests h1 { + font-size: 1em; } + .opo-tests h1 span, .opo-tests h1 img { + vertical-align: middle; } + .opo-tests h1 .image { + display: inline-block; + margin: .2em 1em; } + .opo-tests h1 img { + width: auto; + height: 3.6em; } + .opo-tests h1 [data-status=loading], .opo-tests h1 [data-status=error] { + display: none; } + .opo-tests h1 span + span { + margin-left: .2em; + font-size: 2.4em; + font-weight: 900; } + .opo-tests .header-menu { + flex: 1 1 0; + margin-bottom: .3em; } + .opo-tests .header-menu ul { + list-style-type: none; + margin: 0em; + padding: 0em; + text-align: center; } + .opo-tests .header-menu li { + display: inline-block; + margin: 0em 1em; } + .opo-tests .licenses { + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + margin: 0em; + text-align: center; } + .opo-tests .licenses > * { + flex: 0 0 auto; + margin: 0em 1em; } + .opo-tests .cc-by-nc-sa-4 { + display: flex; + align-items: center; } + .opo-tests .cc-by-nc-sa-4 > [data-i18n] { + flex: 1 1 auto; } + .opo-tests .cc-by-nc-sa-4 > .image { + margin-left: .3em; + flex: 0 0 auto; } + .opo-tests .cc-by-nc-sa-4 img { + width: auto; + height: 1.6em; } + .opo-tests .group[data-i18n=search] { + display: flex; + flex-direction: row; + flex-wrap: nowrap; } + .opo-tests .group[data-i18n=search] > :first-child::after { + content: ": "; } + .opo-tests .group[data-i18n=search] > * { + flex: 0 0 auto; } + .opo-tests .group[data-i18n=search] > .input-text { + flex: 1 1 auto; } + .opo-tests .group[data-i18n=search] [for=show_selected] [data-icon=checkbox]::before { + content: "\f070"; + font-family: "FA6FS"; } + .opo-tests .group[data-i18n=search] [for=show_selected] [type=checkbox]:checked + [data-icon=checkbox]::before { + content: "\f06e"; + font-family: "FA6FS"; } + .opo-tests .group[data-i18n=search] [for=show_selected] span + span { + display: none; } + .opo-tests label > [data-i18n='blocks[]'] > :first-child { + margin-right: .4em; } + .opo-tests label > [data-i18n='blocks[]'] > :first-child::before { + content: "[ "; } + .opo-tests label > [data-i18n='blocks[]'] > :first-child::after { + content: " ] - "; } + .opo-tests label > [data-i18n='blocks[]'] > span { + display: inline-block; } + .opo-tests label > [data-i18n='blocks[]'] > span[title=undefined] { + display: none; } + .opo-tests label > [data-i18n='blocks[]'] > span + :not([title=undefined]) + span::before { + content: "-"; + margin: 0em .5em; } + .opo-tests [data-i][data-i18n=blocks] [data-show-selected] { + width: 100%; } + .opo-tests [data-i][data-i18n=blocks] nav { + width: 100%; + max-height: 20em; + overflow: auto; } + .opo-tests [data-i][data-i18n=blocks] ul { + list-style-type: none; } + .opo-tests [data-i][data-i18n=blocks] ul li { + white-space: nowrap; + text-overflow: ellipsis; } + .opo-tests [data-i18n=test] { + font-size: 1.5em; } + .opo-tests [data-i18n=test_text] { + display: none; } + .opo-tests section, .opo-tests .graphic { + position: absolute; + top: 4em; + bottom: 2em; } + .opo-tests section { + left: 0em; + right: 1em; + overflow: auto; } + .opo-tests .graphic { + display: flex; + flex-direction: column; + right: 0em; + width: 1em; + margin: 0em; + padding: 0em; + list-style-type: none; + overflow: hidden; } + .opo-tests .graphic li { + flex: 1 1 auto; } + .opo-tests .block-info { + margin: 0em; + padding: 0em; + list-style-type: none; + font-size: .85em; } + .opo-tests .block-info li { + display: inline; } + .opo-tests .block-info li + li::before { + content: " - "; } + .opo-tests .block-info strong { + display: none; } + .opo-tests .block-info strong::after { + content: ": "; } + .opo-tests .answers { + list-style-type: none; } + .opo-tests [data-show-selected=true] [data-selected=true] { + display: list-item; } + .opo-tests [data-show-rights=false] [data-is-ok] { + display: none; } + .opo-tests [data-show-results=false] [data-right] { + display: none; } + .opo-tests [data-is-ok=true]::before { + content: " ✔"; + color: green; } + .opo-tests [data-is-ok=false]::before { + content: " ✖"; + color: red; } + .opo-tests [data-is-ok=null]::before { + content: " ❓"; + color: orange; } + .opo-tests [data-right=true]::before { + content: " ✔"; + color: green; } + .opo-tests [data-right=false]::before { + content: " ✖"; + color: red; } + .opo-tests [data-right=null]::before { + content: " ❓"; + color: orange; } + .opo-tests [type=checkbox] { + display: none; } + .opo-tests [type=checkbox] + [data-icon=checkbox]::before { + content: "\f0c8"; + font-family: "FA6FR"; } + .opo-tests [type=checkbox]:checked + [data-icon=checkbox]::before { + content: "\f14a"; + font-family: "FA6FR"; } + .opo-tests [type=radio] { + display: none; } + .opo-tests [type=radio] + [data-icon=radio]::before { + content: "\f111"; + font-family: "FA6FR"; } + .opo-tests [type=radio]:checked + [data-icon=radio]::before { + content: "\f192"; + font-family: "FA6FR"; } + .opo-tests [data-icon=select_all_visible]::before { + content: "\f0ae"; + font-family: "FA6FS"; } + .opo-tests [data-icon=unselect_all_visible]::before { + content: "\f03a"; + font-family: "FA6FS"; } + .opo-tests [data-icon=home]::before { + content: "\f015"; + font-family: "FA6FS"; } + .opo-tests [data-icon=git]::before { + content: "\f841"; + font-family: "FA6FB"; } + .opo-tests [data-icon=clean]::before { + content: "\f51a"; + font-family: "FA6FS"; } + .opo-tests [data-icon=submit]::before { + content: "\f1d8"; + font-family: "FA6FS"; } + .opo-tests [data-icon=search]::before { + content: "\f002"; + font-family: "FA6FS"; } + +/*# sourceMappingURL=OpoTests.css.map */ diff --git a/Public/scss/OpoTests.css.map b/Public/scss/OpoTests.css.map new file mode 100644 index 0000000..887a460 --- /dev/null +++ b/Public/scss/OpoTests.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "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", +"sources": ["OpoTests.scss"], +"names": [], +"file": "OpoTests.css" +} diff --git a/Public/scss/OpoTests.scss b/Public/scss/OpoTests.scss new file mode 100644 index 0000000..b2f24a7 --- /dev/null +++ b/Public/scss/OpoTests.scss @@ -0,0 +1,421 @@ +// Settings +$color-light-fore : #222; +$color-light-back : #EFEFEF; +$color-light-primary : #2272D4; +$color-light-secondary : #D47222; +$color-dark-fore : #EFEFEF; +$color-dark-back : #222; +$color-dark-primary : mix(#FFF, #2272D4, 30%); +$color-dark-secondary : mix(#FFF, #D47222, 30%); +$color-grey : mix($color-light-fore, $color-light-back ,50%); +$header-height : 4em; +$footer-height : 2em; +$radius-item : .3em; +$border-size : .1em; +$box-shadow-item-inset : .2em; +$transition-in : .15s; +$transition-out : 1s; +$transition : .5s; + +// Common +@function unicode($code){ + @return unquote("\"") + unquote(str-insert($code, "\\", 1)) + unquote("\""); +} + +// Styles +.opo-tests{ + + position : relative; + top : 0em; + left : 0em; + width : 100%; + height : 100%; + overflow : hidden; + &,input,button{ + font-family : Arial, Helvetica, sans-serif; + font-size : 1em; + } + + a[href]{text-decoration : none;} + a[href],button{ + cursor : pointer; + transition-duration : $transition-out; + transition-property : color; + &:hover{transition-duration : $transition-in;} + } + button,input{ + border-width : $border-size; + border-style : solid; + border-radius : $radius-item; + } + a[href],button,input{outline : none;} + button{transition-property : color,background-color,border-color,box-shadow;} + input{ + transition-property : border-color,box-shadow; + transition-duration : $transition-out; + &:focus{transition-duration : $transition-in;} + } + + [data-icon]::before{ + margin-right : .4em; + font-family : "FA6FS"; + } + + [data-visible=false]{display : none;} + + fieldset{ + margin : 1em 0em; + border : none; + } + legend{ + font-weight : 900; + font-size : 1.2em; + } + + .form{ + fieldset{ + width : 100%; + box-sizing : border-box; + } + .structure{ + display : table; + width : 92%; + max-width : 92%; + margin-left : 3%; + table-layout : fixed; + box-sizing : border-box; + &>div{ + display : table-row; + &>*{ + display : table-cell; + padding : .2em .5em; + vertical-align : top; + } + &>span{max-width : 80%;} + &>label{width : 20em;} + &>ul{width : 0em;} + } + } + [data-i]>label{ + text-align : right; + &>span{ + display : block; + &:first-child{ + font-weight : 900; + white-space : nowrap; + &::after{content : ":";} + } + &+span{font-size : .85em;} + } + } + [type=number],[type=text]{width : 100%;} + } + + .buttons,.group{ + display : block; + text-align : center; + &>*{border-radius : 0em;} + &>:first-child{border-top-left-radius : $radius-item; border-bottom-left-radius : $radius-item;} + &>:last-child{border-top-right-radius : $radius-item; border-bottom-right-radius : $radius-item;} + } + + &[data-gui-mode=light]{ + &,input{color : $color-light-fore;} + background-color : $color-light-back; + header,footer{box-shadow : 0em 0em 1em $color-light-back;} + &,input,button{color : $color-light-fore;} + a,button{ + color : $color-light-primary; + &:hover{ + color : $color-light-secondary; + } + } + button{ + border-color : $color-light-primary; + background-color : mix($color-light-back, $color-light-primary, 95%); + box-shadow : 0em 0em $box-shadow-item-inset inset $color-light-primary; + &:hover{ + border-color : $color-light-secondary; + background-color : mix($color-light-back, $color-light-secondary, 95%); + box-shadow : 0em 0em $box-shadow-item-inset inset $color-light-secondary; + } + } + input{ + color : $color-light-fore; + border-color : $color-light-fore; + background-color : mix($color-light-back, $color-light-fore, 90%); + box-shadow : 0em 0em $box-shadow-item-inset inset $color-light-fore; + &:focus{ + border-color : $color-light-primary; + box-shadow : 0em 0em $box-shadow-item-inset inset $color-light-primary; + } + } + .graphic{ + [data-status=unanswered]{background-color : mix($color-light-back, #888, 80%);} + [data-status=answered]{background-color : mix($color-light-back, #888, 50%);} + [data-status=right]{background-color : mix($color-light-fore, #0F0, 50%);} + [data-status=wrong]{background-color : mix($color-light-fore, #F00, 50%);} + [data-status=partially]{background-color : mix($color-light-fore, #FF0, 50%);} + } + } + &[data-gui-mode=dark]{ + &,input{color : $color-dark-fore;} + background-color : $color-dark-back; + header,footer{box-shadow : 0em 0em 1em $color-dark-back;} + &,input,button{color : $color-dark-fore;} + a,button{ + color : $color-dark-primary; + &:hover{ + color : $color-dark-secondary; + } + } + button{ + border-color : $color-dark-primary; + background-color : mix($color-dark-back, $color-dark-primary, 95%); + box-shadow : 0em 0em $box-shadow-item-inset inset $color-dark-primary; + &:hover{ + border-color : $color-dark-secondary; + background-color : mix($color-dark-back, $color-dark-secondary, 95%); + box-shadow : 0em 0em $box-shadow-item-inset inset $color-dark-secondary; + } + } + input{ + color : $color-dark-fore; + border-color : $color-dark-fore; + background-color : mix($color-dark-back, $color-dark-fore, 90%); + box-shadow : 0em 0em $box-shadow-item-inset inset $color-dark-fore; + &:focus{ + border-color : $color-dark-primary; + box-shadow : 0em 0em $box-shadow-item-inset inset $color-dark-primary; + } + } + .graphic{ + [data-status=unanswered]{background-color : mix($color-dark-back, #888, 80%);} + [data-status=answered]{background-color : mix($color-dark-back, #888, 50%);} + [data-status=right]{background-color : mix($color-dark-fore, #0F0, 50%);} + [data-status=wrong]{background-color : mix($color-dark-fore, #F00, 50%);} + [data-status=partially]{background-color : mix($color-dark-fore, #FF0, 50%);} + } + } + + header,main,footer{ + position : absolute; + left : 0em; + width : 100%; + } + header{ + display : flex; + flex-wrap : nowrap; + align-items : flex-end; + top : 0em; + height : $header-height; + &>*{flex: 0 0 auto;} + } + main{ + top : $header-height; + bottom : $footer-height; + overflow : auto; + } + footer{ + display : flex; + flex-wrap : nowrap; + align-items : center; + bottom : 0em; + height : $footer-height; + &>*{flex: 1 1 auto;} + } + + h1{ + font-size : 1em; + span,img{vertical-align : middle;} + .image{ + display : inline-block; + margin : .2em 1em; + } + img{ + width : auto; + height : $header-height - .4em; + } + [data-status=loading],[data-status=error]{display : none;} + span+span{ + margin-left : .2em; + font-size : $header-height * .6; + font-weight : 900; + } + } + + .header-menu{ + flex : 1 1 0; + margin-bottom : .3em; + ul{ + list-style-type : none; + margin : 0em; + padding : 0em; + text-align : center; + } + li{ + display : inline-block; + margin : 0em 1em; + } + } + + .licenses{ + display : flex; + flex-direction : row; + justify-content : center; + align-items : center; + margin : 0em; + text-align : center; + &>*{ + flex : 0 0 auto; + margin : 0em 1em; + } + } + .cc-by-nc-sa-4{ + display : flex; + align-items : center; + &>[data-i18n]{flex : 1 1 auto;} + &>.image{ + margin-left : .3em; + flex : 0 0 auto; + } + img{ + width : auto; + height : $footer-height * .8; + } + } + + .group[data-i18n=search]{ + display : flex; + flex-direction : row; + flex-wrap : nowrap; + &>:first-child::after{content : ": ";} + &>*{flex : 0 0 auto;} + &>.input-text{flex : 1 1 auto;} + [for=show_selected]{ + [data-icon=checkbox]::before{content : unicode("f070");font-family : "FA6FS";} + [type=checkbox]:checked+[data-icon=checkbox]::before{content : unicode("f06e");font-family : "FA6FS";} + span+span{display : none;} + } + } + + label>[data-i18n='blocks[]']{ + &>:first-child{ + margin-right : .4em; + &::before{content : "[ ";} + &::after{content : " ] - ";} + } + &>span{ + display : inline-block; + &[title=undefined]{display : none;} + &+:not([title=undefined])+span::before{ + content : "-"; + margin : 0em .5em; + } + } + } + [data-i][data-i18n=blocks]{ + [data-show-selected]{width : 100%;} + nav{ + width : 100%; + max-height : 20em; + overflow : auto; + } + ul{ + list-style-type : none; + li{ + white-space : nowrap; + text-overflow : ellipsis; + } + } + } + + [data-i18n=test]{font-size : 1.5em;} + [data-i18n=test_text]{display : none;} + section,.graphic{ + position : absolute; + top : 4em; + bottom : 2em; + } + section{ + left : 0em; + right : 1em; + overflow : auto; + } + .graphic{ + display : flex; + flex-direction : column; + right : 0em; + width : 1em; + margin : 0em; + padding : 0em; + list-style-type : none; + overflow : hidden; + li{flex : 1 1 auto;} + } + .block-info{ + margin : 0em; + padding : 0em; + list-style-type : none; + font-size : .85em; + li{ + display : inline; + &+li::before{content : " - ";} + } + strong{ + display : none; + &::after{content : ": ";} + } + } + .answers{list-style-type : none;} + [data-show-selected=true] [data-selected=true]{display : list-item;} + + [data-show-rights=false] [data-is-ok]{display : none;} + [data-show-results=false] [data-right]{display : none;} + + [data-is-ok=true]::before{ + content : " ✔"; + color : green; + } + [data-is-ok=false]::before{ + content : " ✖"; + color : red; + } + [data-is-ok=null]::before{ + content : " ❓"; + color : orange; + } + + [data-right=true]::before{ + content : " ✔"; + color : green; + } + [data-right=false]::before{ + content : " ✖"; + color : red; + } + [data-right=null]::before{ + content : " ❓"; + color : orange; + } + + [type=checkbox]{ + display : none; + &+[data-icon=checkbox]::before{content : unicode("f0c8");font-family : "FA6FR";} + &:checked+[data-icon=checkbox]::before{content : unicode("f14a");font-family : "FA6FR";} + } + [type=radio]{ + display : none; + &+[data-icon=radio]::before{content : unicode("f111");font-family : "FA6FR";} + &:checked+[data-icon=radio]::before{content : unicode("f192");font-family : "FA6FR";} + } + + [data-icon=select_all_visible]::before{content : unicode("f0ae");font-family : "FA6FS";} + [data-icon=unselect_all_visible]::before{content : unicode("f03a");font-family : "FA6FS";} + [data-icon=home]::before{content : unicode("f015");font-family : "FA6FS";} + [data-icon=git]::before{content : unicode("f841");font-family : "FA6FB";} + [data-icon=clean]::before{content : unicode("f51a");font-family : "FA6FS";} + [data-icon=submit]::before{content : unicode("f1d8");font-family : "FA6FS";} + [data-icon=search]::before{content : unicode("f002");font-family : "FA6FS";} + +} \ No newline at end of file diff --git a/Python/Application/OpoTests.py b/Python/Application/OpoTests.py new file mode 100644 index 0000000..49a4e30 --- /dev/null +++ b/Python/Application/OpoTests.py @@ -0,0 +1,87 @@ +#!/usr/bin/env python3 + +from typing import Self, Any, Optional +from Managers.SettingsManager import SettingsManager +from Managers.I18NManager import I18NManager +from Drivers.HTTPSocketDriver import HTTPSocketDriver +from Drivers.FilesDriver import FilesDriver +from traceback import format_stack as trace_format_stack +from traceback import extract_tb as extract_traceback +from Utils.Patterns import RE +from Utils.Utils import Utils +from datetime import datetime +from re import Match as REMatch + +class OpoTests: + + def __init__(self:Self, inputs:Optional[dict[str, Any|None]|list[Any|None]|tuple[Any|None]] = None) -> None: + + self.__print_format:str = "[{type}] {yyyy}{mm}{dd} {hh}{ii}{ss} [{line}]{file}({method}): {message}" + self.__exception_format:str = " '{file}({method})[{line}]'{lines}\n\n{exception_message}" + + self.settings:SettingsManager = SettingsManager(self, inputs) + + self.__print_format = self.settings.get("print_format", None, self.__print_format) + self.__exception_format = self.settings.get("exception_format", None, self.__exception_format) + + self.i18n:I18NManager = I18NManager(self) + self.files:FilesDriver = FilesDriver(self) + self.http_server:HTTPSocketDriver = HTTPSocketDriver(self) + + self.http_server.start() + + def print(self:Self, _type:str, string:str, inputs:Optional[dict[str, Any|None]|list[Any|None]|tuple[Any|None]] = None, default_message:str = None, i:int = 0) -> None: + + date:datetime = datetime.now() + own:dict[str, Any|None] = { + "raw_type" : _type, + "type" : _type.upper()[:4], + "i18n" : Utils.get_strings(string)[0], + "message" : self.i18n.get(string, inputs, default_message), + **Utils.get_action_data(i + 1), + **Utils.get_dictionary(inputs) + } + + while len(own["type"]) < 4: + own["type"] = " " + own["type"] if len(own["type"]) % 2 else own["type"] + " " + + for key in ("year", "month", "day", "hour", "minute", "second"): + + k:str = key[0] if key != "minute" else "i" + + own[k] = own[key] = getattr(date, key) + own[k + k] = ("00" + str(own[key] % 100))[-2:] + + own["yyyy"] = ("0000" + str(own["year"]))[-4:] + + print(Utils.string_variables(self.__print_format, own)) + + def exception(self, + exception:Exception, + message:Optional[str|list|tuple] = None, + variables:Optional[dict[str, Any]|list|tuple] = None, + i:Optional[int] = 1 + ) -> None: + + lines:list[str]|None = extract_traceback(exception.__traceback__).format() + line_matches:REMatch[str]|None = RE.EXCEPTION.match(lines[-1]) + key:str + value:Any|None + block:str|None + data:dict[str, Any|None] = { + **{key : value for subset in (variables if isinstance(variables, (list, tuple)) else (variables,)) for key, value in (subset if isinstance(subset, dict) else {}).items()}, + **Utils.get_action_data(1), + "lines" : "", + "exception_message" : str(exception), + "method" : line_matches.group(3), + "line" : line_matches.group(2), + "file" : line_matches.group(1) + } + + for block in trace_format_stack()[:-2] + lines: + if block: + data["lines"] += "\n " + RE.BREAK_LINES.split(block.strip())[0] + + data["end"] = Utils.string_variables(self.__exception_format, data) + + message and self.print("exception", message, data, i + 1) \ No newline at end of file diff --git a/Python/Drivers/FilesDriver.py b/Python/Drivers/FilesDriver.py new file mode 100644 index 0000000..15a23b5 --- /dev/null +++ b/Python/Drivers/FilesDriver.py @@ -0,0 +1,61 @@ +#!/usr/bin/env python3 + +from typing import Self +from Interfaces.OpoTestsInterface import OpoTestsInterface +from os.path import dirname as directory_name +from os.path import abspath as path_absolute +from os.path import exists as path_exists +from os.path import isfile as is_file +from Utils.Patterns import RE +import mimetypes + +class FilesDriver: + + def __init__(self:Self, ot:OpoTestsInterface) -> None: + self.ot:OpoTestsInterface = ot + self.__root_paths:tuple[str] = ("", directory_name(path_absolute(__file__))) + self.__slash:str = "/" if "/" in self.__root_paths[1] else "\\" + + for _ in range(3): + self.__root_paths += (self.__root_paths[-1] + self.__slash + "..",) + + mimetypes.init() + + def fix_path(self:Self, path:str) -> str: + return RE.SLASHES.sub(self.__slash, path) + + def get_absolute_path(self:Self, path:str) -> str|None: + + root:str + + path = self.fix_path(path) + + for root in self.__root_paths: + absolute_path:str = self.fix_path(root + self.__slash + path) + if path_exists(absolute_path): + return absolute_path + return None + + def load(self:Self, path:str) -> bytes|None: + + absolute:str = self.get_absolute_path(path) + + if absolute and is_file(absolute): + try: + with open(absolute, "rb") as file: + return file.read() + except Exception as exception: + print(["files_load", exception]) + return None + + def get_mime(self:Self, path:str) -> str|None: + + absolute:str|None = self.get_absolute_path(path) or path + mime:str|None = None + + if absolute and is_file(absolute): + mime = mimetypes.guess_type(absolute)[0] + if mime is None: + mime = "application/octet-stream" + + return mime \ No newline at end of file diff --git a/Python/Drivers/HTTPSocketDriver.py b/Python/Drivers/HTTPSocketDriver.py new file mode 100644 index 0000000..1112664 --- /dev/null +++ b/Python/Drivers/HTTPSocketDriver.py @@ -0,0 +1,94 @@ +#!/usr/bin/env python3 + +from threading import Thread +from typing import Any, Self, Optional +from Interfaces.OpoTestsInterface import OpoTestsInterface +from socket import socket as Socket +from socket import AF_INET as ADDRESS_FAMILY_IPV4 +from socket import SOCK_STREAM as SOCKET_STREAM +from socket import SOL_SOCKET as SOCKET_LAYER +from socket import SO_REUSEADDR as SOCKET_REUSE_ADDRESS +from Utils.Patterns import RE + + +class HTTPSocketDriver: + + def __init__(self:Self, ot:OpoTestsInterface, inputs:Optional[dict[str, Any|None]|tuple[Any|None]|list] = None) -> None: + self.ot:OpoTestsInterface = ot + self.__socket:Socket|None = None + self.__address:str = self.ot.settings.get(("address", "http_address"), inputs, "localhost") + self.__port:int = self.ot.settings.get(("port", "http_port"), inputs, 8080) + self.__maximum_connections:int = self.ot.settings.get(("maximum_connections", "http_maximum_connections"), inputs, 5) + self.__cache_size:int = self.ot.settings.get(("cache_size", "http_cache_size"), inputs, 1024) + self.__public_path:str = self.ot.settings.get(("public_path", "http_public_path"), inputs, "/Public") + self.__working:bool = False + + def __listen(self:Self) -> None: + while self.__working: + try: + + client:Socket + address:str + port:int + data:bytes = b"" + + client, (address, port) = self.__socket.accept() + + while True: + + buffer:bytes = client.recv(self.__cache_size) + + data += buffer + if len(buffer) < self.__cache_size: + break + + file_data:bytes|None + + for index in ("", "/index.html", "/index.htm"): + + path:str = self.__public_path + RE.LINE.match(data.decode("utf-8")).group(1).split(" ")[1] + index + + file_data = self.ot.files.load(path) + + if file_data is not None: + break + + if not file_data: + client.sendall(b"HTTP/1.1 404 Not Found\r\nContent-Type: text/plain\r\n\r\n404 Not Found") + else: + client.sendall(b"HTTP/1.1 200 OK\r\nContent-Type: " + self.ot.files.get_mime(path).encode("utf-8") + b"\r\n\r\n" + file_data) + client.close() + + except Exception as exception: + self.ot.exception(exception, "opo_tests_http_error_listen", { + "address" : self.__address, + "port" : self.__port + }) + + def start(self:Self) -> None: + + self.__working = True + self.__socket = Socket(ADDRESS_FAMILY_IPV4, SOCKET_STREAM) + + try: + + self.__socket.setsockopt(SOCKET_LAYER, SOCKET_REUSE_ADDRESS, 1) + self.__socket.bind((self.__address, self.__port)) + self.__socket.listen(self.__maximum_connections) + + Thread(target=self.__listen).start() + + self.ot.print("info", "opo_tests_http_started", { + "address" : self.__address, + "port" : self.__port, + }, "HTTP server started on '{address}:{port}'.") + + except Exception as exception: + self.close() + self.ot.exception(exception, "opo_tests_http_error_start", { + "address" : self.__address, + "port" : self.__port + }) + + def close(self:Self) -> None: + self.__working = False \ No newline at end of file diff --git a/Python/Interfaces/FilesDriverInterface.py b/Python/Interfaces/FilesDriverInterface.py new file mode 100644 index 0000000..7cf9299 --- /dev/null +++ b/Python/Interfaces/FilesDriverInterface.py @@ -0,0 +1,13 @@ +#!/usr/bin/env python3 + +from typing import Self + +class FilesDriverInterface: + + def fix_path(self:Self, path:str) -> str:pass + + def get_absolute_path(self:Self, path:str) -> str|None:pass + + def load(self:Self, path:str) -> bytes|None:pass + + def get_mime(self:Self, path:str) -> str|None:pass \ No newline at end of file diff --git a/Python/Interfaces/HTTPSocketDriverInterface.py b/Python/Interfaces/HTTPSocketDriverInterface.py new file mode 100644 index 0000000..cbe490a --- /dev/null +++ b/Python/Interfaces/HTTPSocketDriverInterface.py @@ -0,0 +1,4 @@ +#!/usr/bin/env python3 + +class HTTPSocketDriverInterface: + pass \ No newline at end of file diff --git a/Python/Interfaces/I18NManagerInterface.py b/Python/Interfaces/I18NManagerInterface.py new file mode 100644 index 0000000..7953db6 --- /dev/null +++ b/Python/Interfaces/I18NManagerInterface.py @@ -0,0 +1,7 @@ +#!/usr/bin/env python3 + +from typing import Any, Optional + +class I18NManagerInterface: + + def get(self, texts:str|list|tuple, inputs:Optional[dict[str, Any|None]|list[Any|None]|tuple[Any|None]] = None, _default:Optional[Any] = None) -> str|None:pass \ No newline at end of file diff --git a/Python/Interfaces/OpoTestsInterface.py b/Python/Interfaces/OpoTestsInterface.py new file mode 100644 index 0000000..5ef8a8d --- /dev/null +++ b/Python/Interfaces/OpoTestsInterface.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python3 + +from typing import Self, Any, Optional +from Interfaces.SettingsManagerInterface import SettingsManagerInterface +from Interfaces.I18NManagerInterface import I18NManagerInterface +from Interfaces.HTTPSocketDriverInterface import HTTPSocketDriverInterface +from Interfaces.FilesDriverInterface import FilesDriverInterface + +class OpoTestsInterface: + + def __init__(self:Self, inputs:Optional[dict[str, Any|None]|list[Any|None]|tuple[Any|None]] = None) -> None: + self.settings:SettingsManagerInterface = None + self.i18n:I18NManagerInterface = None + self.http_server:HTTPSocketDriverInterface = None + self.files:FilesDriverInterface = None + + def print(self:Self, _type:str, string:str, inputs:Optional[dict[str, Any|None]|list[Any|None]|tuple[Any|None]] = None, i:int = 0) -> None:pass + + def exception(self, + exception:Exception, + message:Optional[str|list|tuple] = None, + variables:Optional[dict[str, Any]|list|tuple] = None, + i:Optional[int] = 1 + ) -> None:pass \ No newline at end of file diff --git a/Python/Interfaces/SettingsManagerInterface.py b/Python/Interfaces/SettingsManagerInterface.py new file mode 100644 index 0000000..85ba963 --- /dev/null +++ b/Python/Interfaces/SettingsManagerInterface.py @@ -0,0 +1,7 @@ +#!/usr/bin/env python3 + +from typing import Any, Optional + +class SettingsManagerInterface: + + def get(self, keys:str|list|tuple, inputs:Optional[dict[str, Any|None]|list[Any|None]|tuple[Any|None]] = None, _default:Optional[Any] = None) -> Any|None:pass \ No newline at end of file diff --git a/Python/Managers/I18NManager.py b/Python/Managers/I18NManager.py new file mode 100644 index 0000000..b054c71 --- /dev/null +++ b/Python/Managers/I18NManager.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python3 + +from Interfaces.OpoTestsInterface import OpoTestsInterface +from typing import Any, Optional, Self +from Utils.Check import Check +from Utils.Utils import Utils + +class I18NManager: + + DEFAULT_SETTINGS:dict[str, Any|None] = {} + + def __init__(self:Self, ot:OpoTestsInterface) -> None: + self.ot:OpoTestsInterface = ot + self.__sentences:dict[str, dict[str, str|list[str]|tuple[str]]] = {} + self.__default_language:str = "espanol" + self.__language_selected:str = "espanol" + + def get(self:Self, texts:str|list|tuple, inputs:Optional[dict[str, Any|None]|list[Any|None]|tuple[Any|None]] = None, _default:Optional[Any] = None) -> str|None: + + keys:list[str] = Utils.get_keys(texts) + text:str|tuple[str]|list[str]|None = None + + if len(keys): + + used:tuple[str] = tuple() + language:str + + for language in [self.__language_selected, self.__default_language] + list(self.__sentences.keys()): + if language not in used: + used += (language,) + if language in self.__sentences: + for key in keys: + if key in self.__sentences[language] and self.__sentences[language][key] is not None: + text = self.__sentences[language][key] + break + if text is not None: + break + + if text is None: + + strings:list[str] = Utils.get_strings(texts) + + text = strings[0] if _default == None and len(strings) else _default + + return Utils.string_variables(( + "".join(text) if Check.is_array(text) else + text), inputs, _default) if text else text \ No newline at end of file diff --git a/Python/Managers/SettingsManager.py b/Python/Managers/SettingsManager.py new file mode 100644 index 0000000..ff1c60f --- /dev/null +++ b/Python/Managers/SettingsManager.py @@ -0,0 +1,18 @@ +#!/usr/bin/env python3 + +from Interfaces.OpoTestsInterface import OpoTestsInterface +from typing import Any, Optional, Self +from Utils.Utils import Utils + +class SettingsManager: + + DEFAULT_SETTINGS:dict[str, Any|None] = {} + + def __init__(self:Self, ot:OpoTestsInterface, inputs:Optional[dict[str, Any|None]|list[Any|None]|tuple[Any|None]] = None) -> None: + self.ot:OpoTestsInterface = ot + self.__customs:dict[str, Any|None] = Utils.get_dictionary(inputs) + self.__settings:dict[str, Any|None] = {} + self.__secrets:dict[str, Any|None] = {} + + def get(self:Self, keys:str|list|tuple, inputs:Optional[dict[str, Any|None]|list[Any|None]|tuple[Any|None]] = None, _default:Optional[Any] = None) -> Any|None: + return Utils.get_values(keys, (inputs, self.__customs, self.__secrets, self.__settings, self.DEFAULT_SETTINGS), _default) \ No newline at end of file diff --git a/Python/Utils/Check.py b/Python/Utils/Check.py new file mode 100644 index 0000000..16f5ea8 --- /dev/null +++ b/Python/Utils/Check.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python3 + +from Utils.Patterns import RE +from typing import Any, Optional, Self + +class Check: + + @staticmethod + def is_string(item:Optional[Any]) -> bool: + return isinstance(item, str) and not isinstance(item, bytes) + + @classmethod + def is_key(cls:type[Self], item:Optional[Any]) -> bool: + return cls.is_string(item) and RE.KEY.match(item) is not None + + @staticmethod + def is_dictionary(item:Optional[Any]) -> bool: + return isinstance(item, dict) + + @staticmethod + def is_array(item:Optional[Any]) -> bool: + return isinstance(item, (list, tuple)) \ No newline at end of file diff --git a/Python/Utils/Patterns.py b/Python/Utils/Patterns.py new file mode 100644 index 0000000..836b2db --- /dev/null +++ b/Python/Utils/Patterns.py @@ -0,0 +1,13 @@ +#!/usr/bin/env python3 + +from re import Pattern as REPattern +from re import compile as re_compile +from re import IGNORECASE as RE_IGNORE_CASE + +class RE: + KEY:REPattern = re_compile(r'^[a-z_][a-z0-9_]*$', RE_IGNORE_CASE) + STRING_VARIABLES:REPattern = re_compile(r'\{([a-z_][a-z0-9_]*)\}', RE_IGNORE_CASE) + LINE:REPattern = re_compile(r'^([^\r\n]*)') + SLASHES:REPattern = re_compile(r'[\\/]+') + EXCEPTION:REPattern = re_compile(r'^\s*File "([^"]+)", line ([0-9]+), in ([^\n]+)(.*|[\r\n]*)*$') + BREAK_LINES:REPattern = re_compile(r'\r\n|[\r\n]') \ No newline at end of file diff --git a/Python/Utils/Utils.py b/Python/Utils/Utils.py new file mode 100644 index 0000000..1bc87c6 --- /dev/null +++ b/Python/Utils/Utils.py @@ -0,0 +1,83 @@ +#!/usr/bin/env python3 + +from Utils.Check import Check +from typing import Any, Self, Optional +from Utils.Patterns import RE +from re import Match as REMatch +from inspect import stack as get_stack +from inspect import FrameInfo + +class Utils: + + @classmethod + def get_keys(cls:type[Self], *items:list[Any|None]) -> list[str]: + return [key for item in items for key in ( + (item,) if Check.is_key(item) else + cls.get_keys(*item) if Check.is_array(item) else + tuple())] + + @classmethod + def get_dictionaries(cls:type[Self], *items:list[Any|None]) -> list[dict[str, Any|None]]: + return [dictionary for item in items for dictionary in ( + (item,) if Check.is_dictionary(item) else + cls.get_dictionaries(*item) if Check.is_array(item) else + tuple())] + + @classmethod + def get_dictionary(cls:type[Self], *items:list[Any|None]) -> dict[str, Any|None]: + return {key : value for item in items for key, value in ( + item if Check.is_dictionary(item) else + cls.get_dictionary(*item) if Check.is_array(item) else + {}).items()} + + @classmethod + def get_values(cls:type[Self], keys:str|list|tuple, inputs:dict[str, Any|None]|list[Any|None]|tuple[Any|None], _default:Optional[Any] = None) -> Any|None: + + keys = cls.get_keys(keys) + + if len(keys): + + subinputs:dict[str, Any|None] + + for subinputs in cls.get_dictionaries(inputs): + + key:str + + for key in keys: + if key in subinputs: + return subinputs[key] + return _default + + @classmethod + def string_variables(cls:type[Self], string:str, variables:dict[str, Any|None], _default:Optional[str] = None) -> str|None: + + variables = cls.get_dictionary(variables) + + def callback(matches:REMatch) -> str: + + key:str = matches.group(1) + + return ( + str(variables[key]) if key in variables else + str(_default) if _default is not None else + matches.group(0)) + + return RE.STRING_VARIABLES.sub(callback, str(string)) + + @staticmethod + def get_action_data(i:int = 0) -> dict[str, str|int]: + + stack:FrameInfo = get_stack()[1 + i] + + return { + "file" : stack.filename, + "method" : stack.function, + "line" : stack.lineno + } + + @classmethod + def get_strings(cls:type[Self], *items:list[Any|None]) -> list[str]: + return [string for item in items for string in ( + cls.get_strings(*item) if Check.is_array(item) else (item,) + ) if Check.is_string(string)] + \ No newline at end of file diff --git a/Python/server.py b/Python/server.py new file mode 100644 index 0000000..6d43f0b --- /dev/null +++ b/Python/server.py @@ -0,0 +1,5 @@ +#!/usr/bin/env python3 + +from Application.OpoTests import OpoTests + +opo_test:OpoTests = OpoTests() \ No newline at end of file diff --git a/README.md b/README.md index 81373ae..fd17739 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,12 @@ -# OpoTests +# OpoTest -Tests para la Opo. \ No newline at end of file +Tests para la Opo. + +## Objetivos + +- [ ] **Anidamientos unificados**: Permitir el anidamiento unificado sin expresión de nivel de anidamiento en base al método *TestsView.reformat_string*. +- [ ] **Variables en los Tests**: Hacer uso de un sistema unificado y global de variables y claves para integrar en los Tests y facilitar la implementación de los mismos. +- [ ] **Análisis de Mix y Select**: Hacer un análisis Wrong de que éstos no pertenezcan al Right y así flexibilizar las opciones. +- [ ] **Montar vista de Log In**. +- [ ] **Montar patrón funcional con Sharing de memoria**: Montar un patrón que permita operar sobre una función interna y persistir la memoria sobre todo el procedimiento. +- [ ] **Montar patrón de persistencia sobre la pregunta**: Montar un patrón de persistencia funcional sobre la pregunta para poder hacer Sharing sobre las respuestas. \ No newline at end of file diff --git a/Tools/.sass-cache/831643d086e43d2bc72e628b249bc0635093b776/OpoTests.scssc b/Tools/.sass-cache/831643d086e43d2bc72e628b249bc0635093b776/OpoTests.scssc new file mode 100644 index 0000000000000000000000000000000000000000..6895a2c5940784c435da446f5373f1134b9d90dc GIT binary patch literal 140449 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
  • t_+MC|B3mta0 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