terminado generador de pngs desde issues de redmine
This commit is contained in:
24
.gitignore
vendored
Normal file
24
.gitignore
vendored
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
# Logs
|
||||||
|
logs
|
||||||
|
*.log
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
pnpm-debug.log*
|
||||||
|
lerna-debug.log*
|
||||||
|
|
||||||
|
node_modules
|
||||||
|
dist
|
||||||
|
dist-ssr
|
||||||
|
*.local
|
||||||
|
|
||||||
|
# Editor directories and files
|
||||||
|
.vscode/*
|
||||||
|
!.vscode/extensions.json
|
||||||
|
.idea
|
||||||
|
.DS_Store
|
||||||
|
*.suo
|
||||||
|
*.ntvs*
|
||||||
|
*.njsproj
|
||||||
|
*.sln
|
||||||
|
*.sw?
|
||||||
3
.vscode/extensions.json
vendored
Normal file
3
.vscode/extensions.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"recommendations": ["svelte.svelte-vscode"]
|
||||||
|
}
|
||||||
47
README.md
Normal file
47
README.md
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
# Svelte + TS + Vite
|
||||||
|
|
||||||
|
This template should help get you started developing with Svelte and TypeScript in Vite.
|
||||||
|
|
||||||
|
## Recommended IDE Setup
|
||||||
|
|
||||||
|
[VS Code](https://code.visualstudio.com/) + [Svelte](https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode).
|
||||||
|
|
||||||
|
## Need an official Svelte framework?
|
||||||
|
|
||||||
|
Check out [SvelteKit](https://github.com/sveltejs/kit#readme), which is also powered by Vite. Deploy anywhere with its serverless-first approach and adapt to various platforms, with out of the box support for TypeScript, SCSS, and Less, and easily-added support for mdsvex, GraphQL, PostCSS, Tailwind CSS, and more.
|
||||||
|
|
||||||
|
## Technical considerations
|
||||||
|
|
||||||
|
**Why use this over SvelteKit?**
|
||||||
|
|
||||||
|
- It brings its own routing solution which might not be preferable for some users.
|
||||||
|
- It is first and foremost a framework that just happens to use Vite under the hood, not a Vite app.
|
||||||
|
|
||||||
|
This template contains as little as possible to get started with Vite + TypeScript + Svelte, while taking into account the developer experience with regards to HMR and intellisense. It demonstrates capabilities on par with the other `create-vite` templates and is a good starting point for beginners dipping their toes into a Vite + Svelte project.
|
||||||
|
|
||||||
|
Should you later need the extended capabilities and extensibility provided by SvelteKit, the template has been structured similarly to SvelteKit so that it is easy to migrate.
|
||||||
|
|
||||||
|
**Why `global.d.ts` instead of `compilerOptions.types` inside `jsconfig.json` or `tsconfig.json`?**
|
||||||
|
|
||||||
|
Setting `compilerOptions.types` shuts out all other types not explicitly listed in the configuration. Using triple-slash references keeps the default TypeScript setting of accepting type information from the entire workspace, while also adding `svelte` and `vite/client` type information.
|
||||||
|
|
||||||
|
**Why include `.vscode/extensions.json`?**
|
||||||
|
|
||||||
|
Other templates indirectly recommend extensions via the README, but this file allows VS Code to prompt the user to install the recommended extension upon opening the project.
|
||||||
|
|
||||||
|
**Why enable `allowJs` in the TS template?**
|
||||||
|
|
||||||
|
While `allowJs: false` would indeed prevent the use of `.js` files in the project, it does not prevent the use of JavaScript syntax in `.svelte` files. In addition, it would force `checkJs: false`, bringing the worst of both worlds: not being able to guarantee the entire codebase is TypeScript, and also having worse typechecking for the existing JavaScript. In addition, there are valid use cases in which a mixed codebase may be relevant.
|
||||||
|
|
||||||
|
**Why is HMR not preserving my local component state?**
|
||||||
|
|
||||||
|
HMR state preservation comes with a number of gotchas! It has been disabled by default in both `svelte-hmr` and `@sveltejs/vite-plugin-svelte` due to its often surprising behavior. You can read the details [here](https://github.com/rixo/svelte-hmr#svelte-hmr).
|
||||||
|
|
||||||
|
If you have state that's important to retain within a component, consider creating an external store which would not be replaced by HMR.
|
||||||
|
|
||||||
|
```ts
|
||||||
|
// store.ts
|
||||||
|
// An extremely simple external store
|
||||||
|
import { writable } from 'svelte/store'
|
||||||
|
export default writable(0)
|
||||||
|
```
|
||||||
223
bun.lock
Normal file
223
bun.lock
Normal file
@@ -0,0 +1,223 @@
|
|||||||
|
{
|
||||||
|
"lockfileVersion": 1,
|
||||||
|
"workspaces": {
|
||||||
|
"": {
|
||||||
|
"name": "redmine-api-administracion",
|
||||||
|
"dependencies": {
|
||||||
|
"bootstrap": "^5.3.8",
|
||||||
|
"html2canvas": "^1.4.1",
|
||||||
|
"marked": "^16.4.1",
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@sveltejs/vite-plugin-svelte": "^6.2.1",
|
||||||
|
"@tsconfig/svelte": "^5.0.5",
|
||||||
|
"@types/node": "^24.6.0",
|
||||||
|
"svelte": "^5.39.6",
|
||||||
|
"svelte-check": "^4.3.2",
|
||||||
|
"typescript": "~5.9.3",
|
||||||
|
"vite": "^7.1.7",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"packages": {
|
||||||
|
"@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.11", "", { "os": "aix", "cpu": "ppc64" }, "sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg=="],
|
||||||
|
|
||||||
|
"@esbuild/android-arm": ["@esbuild/android-arm@0.25.11", "", { "os": "android", "cpu": "arm" }, "sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg=="],
|
||||||
|
|
||||||
|
"@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.11", "", { "os": "android", "cpu": "arm64" }, "sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ=="],
|
||||||
|
|
||||||
|
"@esbuild/android-x64": ["@esbuild/android-x64@0.25.11", "", { "os": "android", "cpu": "x64" }, "sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g=="],
|
||||||
|
|
||||||
|
"@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.11", "", { "os": "darwin", "cpu": "arm64" }, "sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w=="],
|
||||||
|
|
||||||
|
"@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.11", "", { "os": "darwin", "cpu": "x64" }, "sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ=="],
|
||||||
|
|
||||||
|
"@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.11", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA=="],
|
||||||
|
|
||||||
|
"@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.11", "", { "os": "freebsd", "cpu": "x64" }, "sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw=="],
|
||||||
|
|
||||||
|
"@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.11", "", { "os": "linux", "cpu": "arm" }, "sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw=="],
|
||||||
|
|
||||||
|
"@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.11", "", { "os": "linux", "cpu": "arm64" }, "sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA=="],
|
||||||
|
|
||||||
|
"@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.11", "", { "os": "linux", "cpu": "ia32" }, "sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw=="],
|
||||||
|
|
||||||
|
"@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.11", "", { "os": "linux", "cpu": "none" }, "sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw=="],
|
||||||
|
|
||||||
|
"@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.11", "", { "os": "linux", "cpu": "none" }, "sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ=="],
|
||||||
|
|
||||||
|
"@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.11", "", { "os": "linux", "cpu": "ppc64" }, "sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw=="],
|
||||||
|
|
||||||
|
"@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.11", "", { "os": "linux", "cpu": "none" }, "sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww=="],
|
||||||
|
|
||||||
|
"@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.11", "", { "os": "linux", "cpu": "s390x" }, "sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw=="],
|
||||||
|
|
||||||
|
"@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.11", "", { "os": "linux", "cpu": "x64" }, "sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ=="],
|
||||||
|
|
||||||
|
"@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.11", "", { "os": "none", "cpu": "arm64" }, "sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg=="],
|
||||||
|
|
||||||
|
"@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.11", "", { "os": "none", "cpu": "x64" }, "sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A=="],
|
||||||
|
|
||||||
|
"@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.11", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg=="],
|
||||||
|
|
||||||
|
"@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.11", "", { "os": "openbsd", "cpu": "x64" }, "sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw=="],
|
||||||
|
|
||||||
|
"@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.25.11", "", { "os": "none", "cpu": "arm64" }, "sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ=="],
|
||||||
|
|
||||||
|
"@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.11", "", { "os": "sunos", "cpu": "x64" }, "sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA=="],
|
||||||
|
|
||||||
|
"@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.11", "", { "os": "win32", "cpu": "arm64" }, "sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q=="],
|
||||||
|
|
||||||
|
"@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.11", "", { "os": "win32", "cpu": "ia32" }, "sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA=="],
|
||||||
|
|
||||||
|
"@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.11", "", { "os": "win32", "cpu": "x64" }, "sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA=="],
|
||||||
|
|
||||||
|
"@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="],
|
||||||
|
|
||||||
|
"@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="],
|
||||||
|
|
||||||
|
"@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="],
|
||||||
|
|
||||||
|
"@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="],
|
||||||
|
|
||||||
|
"@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="],
|
||||||
|
|
||||||
|
"@popperjs/core": ["@popperjs/core@2.11.8", "", {}, "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.52.5", "", { "os": "android", "cpu": "arm" }, "sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.52.5", "", { "os": "android", "cpu": "arm64" }, "sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.52.5", "", { "os": "darwin", "cpu": "arm64" }, "sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.52.5", "", { "os": "darwin", "cpu": "x64" }, "sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.52.5", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.52.5", "", { "os": "freebsd", "cpu": "x64" }, "sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.52.5", "", { "os": "linux", "cpu": "arm" }, "sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.52.5", "", { "os": "linux", "cpu": "arm" }, "sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.52.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.52.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.52.5", "", { "os": "linux", "cpu": "none" }, "sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.52.5", "", { "os": "linux", "cpu": "ppc64" }, "sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.52.5", "", { "os": "linux", "cpu": "none" }, "sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.52.5", "", { "os": "linux", "cpu": "none" }, "sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.52.5", "", { "os": "linux", "cpu": "s390x" }, "sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.52.5", "", { "os": "linux", "cpu": "x64" }, "sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.52.5", "", { "os": "linux", "cpu": "x64" }, "sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.52.5", "", { "os": "none", "cpu": "arm64" }, "sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.52.5", "", { "os": "win32", "cpu": "arm64" }, "sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.52.5", "", { "os": "win32", "cpu": "ia32" }, "sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.52.5", "", { "os": "win32", "cpu": "x64" }, "sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.52.5", "", { "os": "win32", "cpu": "x64" }, "sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg=="],
|
||||||
|
|
||||||
|
"@sveltejs/acorn-typescript": ["@sveltejs/acorn-typescript@1.0.6", "", { "peerDependencies": { "acorn": "^8.9.0" } }, "sha512-4awhxtMh4cx9blePWl10HRHj8Iivtqj+2QdDCSMDzxG+XKa9+VCNupQuCuvzEhYPzZSrX+0gC+0lHA/0fFKKQQ=="],
|
||||||
|
|
||||||
|
"@sveltejs/vite-plugin-svelte": ["@sveltejs/vite-plugin-svelte@6.2.1", "", { "dependencies": { "@sveltejs/vite-plugin-svelte-inspector": "^5.0.0", "debug": "^4.4.1", "deepmerge": "^4.3.1", "magic-string": "^0.30.17", "vitefu": "^1.1.1" }, "peerDependencies": { "svelte": "^5.0.0", "vite": "^6.3.0 || ^7.0.0" } }, "sha512-YZs/OSKOQAQCnJvM/P+F1URotNnYNeU3P2s4oIpzm1uFaqUEqRxUB0g5ejMjEb5Gjb9/PiBI5Ktrq4rUUF8UVQ=="],
|
||||||
|
|
||||||
|
"@sveltejs/vite-plugin-svelte-inspector": ["@sveltejs/vite-plugin-svelte-inspector@5.0.1", "", { "dependencies": { "debug": "^4.4.1" }, "peerDependencies": { "@sveltejs/vite-plugin-svelte": "^6.0.0-next.0", "svelte": "^5.0.0", "vite": "^6.3.0 || ^7.0.0" } }, "sha512-ubWshlMk4bc8mkwWbg6vNvCeT7lGQojE3ijDh3QTR6Zr/R+GXxsGbyH4PExEPpiFmqPhYiVSVmHBjUcVc1JIrA=="],
|
||||||
|
|
||||||
|
"@tsconfig/svelte": ["@tsconfig/svelte@5.0.5", "", {}, "sha512-48fAnUjKye38FvMiNOj0J9I/4XlQQiZlpe9xaNPfe8vy2Y1hFBt8g1yqf2EGjVvHavo4jf2lC+TQyENCr4BJBQ=="],
|
||||||
|
|
||||||
|
"@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="],
|
||||||
|
|
||||||
|
"@types/node": ["@types/node@24.9.2", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-uWN8YqxXxqFMX2RqGOrumsKeti4LlmIMIyV0lgut4jx7KQBcBiW6vkDtIBvHnHIquwNfJhk8v2OtmO8zXWHfPA=="],
|
||||||
|
|
||||||
|
"acorn": ["acorn@8.15.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg=="],
|
||||||
|
|
||||||
|
"aria-query": ["aria-query@5.3.2", "", {}, "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw=="],
|
||||||
|
|
||||||
|
"axobject-query": ["axobject-query@4.1.0", "", {}, "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ=="],
|
||||||
|
|
||||||
|
"base64-arraybuffer": ["base64-arraybuffer@1.0.2", "", {}, "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ=="],
|
||||||
|
|
||||||
|
"bootstrap": ["bootstrap@5.3.8", "", { "peerDependencies": { "@popperjs/core": "^2.11.8" } }, "sha512-HP1SZDqaLDPwsNiqRqi5NcP0SSXciX2s9E+RyqJIIqGo+vJeN5AJVM98CXmW/Wux0nQ5L7jeWUdplCEf0Ee+tg=="],
|
||||||
|
|
||||||
|
"chokidar": ["chokidar@4.0.3", "", { "dependencies": { "readdirp": "^4.0.1" } }, "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA=="],
|
||||||
|
|
||||||
|
"clsx": ["clsx@2.1.1", "", {}, "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA=="],
|
||||||
|
|
||||||
|
"css-line-break": ["css-line-break@2.1.0", "", { "dependencies": { "utrie": "^1.0.2" } }, "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w=="],
|
||||||
|
|
||||||
|
"debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="],
|
||||||
|
|
||||||
|
"deepmerge": ["deepmerge@4.3.1", "", {}, "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="],
|
||||||
|
|
||||||
|
"esbuild": ["esbuild@0.25.11", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.11", "@esbuild/android-arm": "0.25.11", "@esbuild/android-arm64": "0.25.11", "@esbuild/android-x64": "0.25.11", "@esbuild/darwin-arm64": "0.25.11", "@esbuild/darwin-x64": "0.25.11", "@esbuild/freebsd-arm64": "0.25.11", "@esbuild/freebsd-x64": "0.25.11", "@esbuild/linux-arm": "0.25.11", "@esbuild/linux-arm64": "0.25.11", "@esbuild/linux-ia32": "0.25.11", "@esbuild/linux-loong64": "0.25.11", "@esbuild/linux-mips64el": "0.25.11", "@esbuild/linux-ppc64": "0.25.11", "@esbuild/linux-riscv64": "0.25.11", "@esbuild/linux-s390x": "0.25.11", "@esbuild/linux-x64": "0.25.11", "@esbuild/netbsd-arm64": "0.25.11", "@esbuild/netbsd-x64": "0.25.11", "@esbuild/openbsd-arm64": "0.25.11", "@esbuild/openbsd-x64": "0.25.11", "@esbuild/openharmony-arm64": "0.25.11", "@esbuild/sunos-x64": "0.25.11", "@esbuild/win32-arm64": "0.25.11", "@esbuild/win32-ia32": "0.25.11", "@esbuild/win32-x64": "0.25.11" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q=="],
|
||||||
|
|
||||||
|
"esm-env": ["esm-env@1.2.2", "", {}, "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA=="],
|
||||||
|
|
||||||
|
"esrap": ["esrap@2.1.2", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" } }, "sha512-DgvlIQeowRNyvLPWW4PT7Gu13WznY288Du086E751mwwbsgr29ytBiYeLzAGIo0qk3Ujob0SDk8TiSaM5WQzNg=="],
|
||||||
|
|
||||||
|
"fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="],
|
||||||
|
|
||||||
|
"fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="],
|
||||||
|
|
||||||
|
"html2canvas": ["html2canvas@1.4.1", "", { "dependencies": { "css-line-break": "^2.1.0", "text-segmentation": "^1.0.3" } }, "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA=="],
|
||||||
|
|
||||||
|
"is-reference": ["is-reference@3.0.3", "", { "dependencies": { "@types/estree": "^1.0.6" } }, "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw=="],
|
||||||
|
|
||||||
|
"locate-character": ["locate-character@3.0.0", "", {}, "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA=="],
|
||||||
|
|
||||||
|
"magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="],
|
||||||
|
|
||||||
|
"marked": ["marked@16.4.1", "", { "bin": { "marked": "bin/marked.js" } }, "sha512-ntROs7RaN3EvWfy3EZi14H4YxmT6A5YvywfhO+0pm+cH/dnSQRmdAmoFIc3B9aiwTehyk7pESH4ofyBY+V5hZg=="],
|
||||||
|
|
||||||
|
"mri": ["mri@1.2.0", "", {}, "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA=="],
|
||||||
|
|
||||||
|
"ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="],
|
||||||
|
|
||||||
|
"nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="],
|
||||||
|
|
||||||
|
"picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="],
|
||||||
|
|
||||||
|
"picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="],
|
||||||
|
|
||||||
|
"postcss": ["postcss@8.5.6", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg=="],
|
||||||
|
|
||||||
|
"readdirp": ["readdirp@4.1.2", "", {}, "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg=="],
|
||||||
|
|
||||||
|
"rollup": ["rollup@4.52.5", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.52.5", "@rollup/rollup-android-arm64": "4.52.5", "@rollup/rollup-darwin-arm64": "4.52.5", "@rollup/rollup-darwin-x64": "4.52.5", "@rollup/rollup-freebsd-arm64": "4.52.5", "@rollup/rollup-freebsd-x64": "4.52.5", "@rollup/rollup-linux-arm-gnueabihf": "4.52.5", "@rollup/rollup-linux-arm-musleabihf": "4.52.5", "@rollup/rollup-linux-arm64-gnu": "4.52.5", "@rollup/rollup-linux-arm64-musl": "4.52.5", "@rollup/rollup-linux-loong64-gnu": "4.52.5", "@rollup/rollup-linux-ppc64-gnu": "4.52.5", "@rollup/rollup-linux-riscv64-gnu": "4.52.5", "@rollup/rollup-linux-riscv64-musl": "4.52.5", "@rollup/rollup-linux-s390x-gnu": "4.52.5", "@rollup/rollup-linux-x64-gnu": "4.52.5", "@rollup/rollup-linux-x64-musl": "4.52.5", "@rollup/rollup-openharmony-arm64": "4.52.5", "@rollup/rollup-win32-arm64-msvc": "4.52.5", "@rollup/rollup-win32-ia32-msvc": "4.52.5", "@rollup/rollup-win32-x64-gnu": "4.52.5", "@rollup/rollup-win32-x64-msvc": "4.52.5", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw=="],
|
||||||
|
|
||||||
|
"sade": ["sade@1.8.1", "", { "dependencies": { "mri": "^1.1.0" } }, "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A=="],
|
||||||
|
|
||||||
|
"source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="],
|
||||||
|
|
||||||
|
"svelte": ["svelte@5.43.2", "", { "dependencies": { "@jridgewell/remapping": "^2.3.4", "@jridgewell/sourcemap-codec": "^1.5.0", "@sveltejs/acorn-typescript": "^1.0.5", "@types/estree": "^1.0.5", "acorn": "^8.12.1", "aria-query": "^5.3.1", "axobject-query": "^4.1.0", "clsx": "^2.1.1", "esm-env": "^1.2.1", "esrap": "^2.1.0", "is-reference": "^3.0.3", "locate-character": "^3.0.0", "magic-string": "^0.30.11", "zimmerframe": "^1.1.2" } }, "sha512-ro1umEzX8rT5JpCmlf0PPv7ncD8MdVob9e18bhwqTKNoLjS8kDvhVpaoYVPc+qMwDAOfcwJtyY7ZFSDbOaNPgA=="],
|
||||||
|
|
||||||
|
"svelte-check": ["svelte-check@4.3.3", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "chokidar": "^4.0.1", "fdir": "^6.2.0", "picocolors": "^1.0.0", "sade": "^1.7.4" }, "peerDependencies": { "svelte": "^4.0.0 || ^5.0.0-next.0", "typescript": ">=5.0.0" }, "bin": { "svelte-check": "bin/svelte-check" } }, "sha512-RYP0bEwenDXzfv0P1sKAwjZSlaRyqBn0Fz1TVni58lqyEiqgwztTpmodJrGzP6ZT2aHl4MbTvWP6gbmQ3FOnBg=="],
|
||||||
|
|
||||||
|
"text-segmentation": ["text-segmentation@1.0.3", "", { "dependencies": { "utrie": "^1.0.2" } }, "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw=="],
|
||||||
|
|
||||||
|
"tinyglobby": ["tinyglobby@0.2.15", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.3" } }, "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ=="],
|
||||||
|
|
||||||
|
"typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="],
|
||||||
|
|
||||||
|
"undici-types": ["undici-types@7.16.0", "", {}, "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw=="],
|
||||||
|
|
||||||
|
"utrie": ["utrie@1.0.2", "", { "dependencies": { "base64-arraybuffer": "^1.0.2" } }, "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw=="],
|
||||||
|
|
||||||
|
"vite": ["vite@7.1.12", "", { "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", "tinyglobby": "^0.2.15" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "jiti": ">=1.21.0", "less": "^4.0.0", "lightningcss": "^1.21.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-ZWyE8YXEXqJrrSLvYgrRP7p62OziLW7xI5HYGWFzOvupfAlrLvURSzv/FyGyy0eidogEM3ujU+kUG1zuHgb6Ug=="],
|
||||||
|
|
||||||
|
"vitefu": ["vitefu@1.1.1", "", { "peerDependencies": { "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0" }, "optionalPeers": ["vite"] }, "sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ=="],
|
||||||
|
|
||||||
|
"zimmerframe": ["zimmerframe@1.1.4", "", {}, "sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ=="],
|
||||||
|
}
|
||||||
|
}
|
||||||
13
index.html
Normal file
13
index.html
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<title>redmine-api-administracion</title>
|
||||||
|
</head>
|
||||||
|
<body data-bs-theme="dark">
|
||||||
|
<div id="app"></div>
|
||||||
|
<script type="module" src="/src/main.ts"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
26
package.json
Normal file
26
package.json
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"name": "redmine-api-administracion",
|
||||||
|
"private": true,
|
||||||
|
"version": "0.0.0",
|
||||||
|
"type": "module",
|
||||||
|
"scripts": {
|
||||||
|
"dev": "vite",
|
||||||
|
"build": "vite build",
|
||||||
|
"preview": "vite preview",
|
||||||
|
"check": "svelte-check --tsconfig ./tsconfig.app.json && tsc -p tsconfig.node.json"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@sveltejs/vite-plugin-svelte": "^6.2.1",
|
||||||
|
"@tsconfig/svelte": "^5.0.5",
|
||||||
|
"@types/node": "^24.6.0",
|
||||||
|
"svelte": "^5.39.6",
|
||||||
|
"svelte-check": "^4.3.2",
|
||||||
|
"typescript": "~5.9.3",
|
||||||
|
"vite": "^7.1.7"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"bootstrap": "^5.3.8",
|
||||||
|
"html2canvas": "^1.4.1",
|
||||||
|
"marked": "^16.4.1"
|
||||||
|
}
|
||||||
|
}
|
||||||
1
public/vite.svg
Normal file
1
public/vite.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
|
||||||
|
After Width: | Height: | Size: 1.5 KiB |
54
src/App.svelte
Normal file
54
src/App.svelte
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import Tarjeta from "./componentes/tarjeta.svelte";
|
||||||
|
import html2canvas from "html2canvas";
|
||||||
|
|
||||||
|
let issues: any[] = $state([]);
|
||||||
|
$effect(() => {
|
||||||
|
obtener_issues();
|
||||||
|
});
|
||||||
|
|
||||||
|
async function obtener_issues() {
|
||||||
|
/*
|
||||||
|
const req = await fetch(
|
||||||
|
"https://fedesrv.ddns.net/redmine/issues.json?key={key}&proyect_id=1&limit=100&status_id=2&tracker_id=1",
|
||||||
|
);
|
||||||
|
if (req.ok) {
|
||||||
|
issues = await req.json();
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
const data = await import("./assets/issues.json");
|
||||||
|
issues = data.issues;
|
||||||
|
}
|
||||||
|
async function exportToPNG(issue: any) {
|
||||||
|
setTimeout(() => {}, 100);
|
||||||
|
const element = document.getElementById(`card-${issue.id}`);
|
||||||
|
|
||||||
|
if (element) {
|
||||||
|
const canvas = await html2canvas(element);
|
||||||
|
const image = canvas.toDataURL("image/png");
|
||||||
|
const link = document.createElement("a");
|
||||||
|
link.download = `issue-${issue.id}.png`;
|
||||||
|
link.href = image;
|
||||||
|
link.click();
|
||||||
|
}
|
||||||
|
setTimeout(() => {}, 100);
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<main>
|
||||||
|
{#if issues.length == 0}
|
||||||
|
<p>Cargando...</p>
|
||||||
|
{:else}
|
||||||
|
<div class="d-flex justify-center flex-column align-items-center">
|
||||||
|
{#each issues as issue}
|
||||||
|
<div class="m-2 w-75">
|
||||||
|
<Tarjeta {issue} />
|
||||||
|
<button
|
||||||
|
onclick={() => exportToPNG(issue)}
|
||||||
|
class="btn btn-primary mt-3">Exportar a PNG</button
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
{/each}
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
</main>
|
||||||
959
src/assets/issues.json
Normal file
959
src/assets/issues.json
Normal file
@@ -0,0 +1,959 @@
|
|||||||
|
{
|
||||||
|
"issues": [
|
||||||
|
{
|
||||||
|
"id": 67,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 2, "name": "Normal" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"subject": "NOTA: usar patron Stategy para exportar html o csv",
|
||||||
|
"description": "TODO:\r\n\r\n\u003chr\u003e\r\n\r\n- [ ] MisPropiedades: que haya un boton de exportar a html / csv\r\n- [ ] MisContratos: Exportar Informacion de un contrato a html / csv",
|
||||||
|
"start_date": "2024-09-24",
|
||||||
|
"due_date": "2025-02-04",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:57Z",
|
||||||
|
"updated_on": "2025-10-22T21:24:59Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:19Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 66,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 3, "name": "Alta" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"subject": "NOTA: Recrear las entidades de la nueva base de datos",
|
||||||
|
"description": "necesario para poder tener los BO dsps de crear las definiciones de las tablas de la base de datos (db-first)",
|
||||||
|
"start_date": "2024-10-17",
|
||||||
|
"due_date": "2024-10-18",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:57Z",
|
||||||
|
"updated_on": "2025-10-22T21:24:59Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:19Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 65,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 2, "name": "Normal" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"category": {
|
||||||
|
"id": 4,
|
||||||
|
"name": "Kind/Enhancement, Kind/Feature, Priority/Medium"
|
||||||
|
},
|
||||||
|
"subject": "Nota: Implementar el patrón Result para los retornos del modelo a la controladora",
|
||||||
|
"description": "",
|
||||||
|
"start_date": "2024-10-17",
|
||||||
|
"due_date": "2025-01-24",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:57Z",
|
||||||
|
"updated_on": "2025-10-22T21:24:59Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:19Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 64,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 2, "name": "Normal" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"category": { "id": 16, "name": "Compat/Breaking, Priority/Critical" },
|
||||||
|
"subject": "Añadir identificadores de trackeo ",
|
||||||
|
"description": "Consistian en tener numeros de tracking para la base de datos para poder ver todas las operaciones que corresponden a una transaccion",
|
||||||
|
"start_date": "2024-10-18",
|
||||||
|
"due_date": "2024-10-20",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:57Z",
|
||||||
|
"updated_on": "2025-10-22T21:24:59Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:19Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 62,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 3, "name": "Alta" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"category": { "id": 2, "name": "Kind/Enhancement, Priority/Medium" },
|
||||||
|
"subject": "FEATURE: Implementar minio para almacenar los archivos del sistema",
|
||||||
|
"description": "Roadmap\r\n\u003chr\u003e\r\n\r\n- [X] Crear una instancia minio.\r\n- [x] Crear una key para conectarme desde el programa y hacer que lo lea desde un archivo json (me llevo una copia en el pendrive por las dudas)\r\n\r\n- [x] Poner alguna referencia en el Contrato al archivo minio. (uso el PK)\r\n- [x] Hacer algun metodo en la entidad para recuperar el archivo.\r\n\r\n\u003chr\u003e",
|
||||||
|
"start_date": "2024-11-10",
|
||||||
|
"due_date": "2025-01-20",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:57Z",
|
||||||
|
"updated_on": "2025-10-22T21:24:59Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:19Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 61,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 3, "name": "Alta" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"category": { "id": 20, "name": "Kind/Feature, Priority/High" },
|
||||||
|
"subject": "FEATURE: ABM Propiedades",
|
||||||
|
"description": "Las propiedades tienen que cumplir \r\n\u003chr\u003e\r\n\r\n- [x] Que se puedan listar todas. \r\n- [x] Que se puedan listar por Propietario \r\n- [x] Añadir \r\n- [x] Modificar (cant de habitaciones, servicios) \r\n- [x] Eliminacion logica \r\n\r\n\u003chr\u003e",
|
||||||
|
"start_date": "2024-11-11",
|
||||||
|
"due_date": "2024-11-22",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:57Z",
|
||||||
|
"updated_on": "2025-10-22T21:24:59Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:19Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 59,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 3, "name": "Alta" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"category": {
|
||||||
|
"id": 3,
|
||||||
|
"name": "Kind/Enhancement, Kind/Feature, Priority/High"
|
||||||
|
},
|
||||||
|
"subject": "Logica de Contratos",
|
||||||
|
"description": "Aca la cosa iria así. \r\n1. el inquilino elije la propiedad por x motivo. \r\n2. le informa al propietario.\r\n3. propietario elije el monto, moneda y aumentos mensuales.\r\n4. Inquilino acepta o no\r\n\r\n\u003chr\u003e\r\n\r\n## TODO\r\n\r\n\u003chr\u003e\r\n\r\n- [x] Hacer Lista\r\n- [x] Busqueda Propiedades\r\n- [x] Mandando Informe al Propietario de que un inquilino quiere contactarse con el por el precio. \r\n- [X] El Propietario notifica un monto y el aumento entre meses.\r\n- [X] El Inquilino puede o aceptar o declinar.\r\n- [X] En caso de aceptar tiene que dar datos de sus garantes.\r\n- [X] Se sube una version escaneada del contrato",
|
||||||
|
"start_date": "2024-11-23",
|
||||||
|
"due_date": "2025-01-25",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:56Z",
|
||||||
|
"updated_on": "2025-10-22T21:24:59Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:19Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 56,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 2, "name": "Normal" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"category": {
|
||||||
|
"id": 27,
|
||||||
|
"name": "Kind/Feature, Priority/Medium, Reviewed/Confirmed"
|
||||||
|
},
|
||||||
|
"subject": "FEAT: Añadir baja cascada de propietario",
|
||||||
|
"description": "La idea es que cuando se de una baja de una cuenta de propietario todas las propiedades que tenga tambien se deshabiliten recursivamente",
|
||||||
|
"start_date": "2024-11-24",
|
||||||
|
"due_date": "2024-12-31",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:56Z",
|
||||||
|
"updated_on": "2025-10-22T21:24:59Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:19Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 55,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 2, "name": "Normal" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"category": {
|
||||||
|
"id": 26,
|
||||||
|
"name": "Kind/Enhancement, Kind/Feature, Priority/Low"
|
||||||
|
},
|
||||||
|
"subject": "Hacer una landing page para cada grupo",
|
||||||
|
"description": "- [x] hacer la lista\r\n\r\n\u003chr\u003e\r\n\r\n- [x] Inquilino\r\n- [x] propietario\r\n- [x] admin\r\n- [x] Estadistica",
|
||||||
|
"start_date": "2024-11-24",
|
||||||
|
"due_date": "2024-12-06",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:56Z",
|
||||||
|
"updated_on": "2025-10-22T21:24:59Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:19Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 54,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 3, "name": "Alta" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"category": {
|
||||||
|
"id": 25,
|
||||||
|
"name": "Kind/Enhancement, Priority/Medium, Reviewed/Confirmed"
|
||||||
|
},
|
||||||
|
"subject": "Implementar Acciones que puede hacer el propietario",
|
||||||
|
"description": "- [x] Hacer lista \r\n\r\n\u003chr\u003e\r\n\r\n- [x] PublicarPropiedad\r\n- [x] BajaPropiedad\r\n- [x] AltaServicio\r\n- [x] BajaServicio\r\n- [x] ListarMisPropiedades\r\n- [x] Modificar Propiedad\r\n- [x] Ver Propiedades dadas de baja",
|
||||||
|
"start_date": "2024-11-24",
|
||||||
|
"due_date": "2024-12-10",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:56Z",
|
||||||
|
"updated_on": "2025-10-22T21:24:59Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:19Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 52,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 3, "name": "Alta" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"category": { "id": 23, "name": "Kind/Enhancement, Priority/Low" },
|
||||||
|
"subject": "Front: que todos los path usen el $urlG",
|
||||||
|
"description": "necesario para poder crear el modo desarrollo y prod",
|
||||||
|
"start_date": "2024-12-04",
|
||||||
|
"due_date": "2024-12-06",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:56Z",
|
||||||
|
"updated_on": "2025-10-22T21:24:58Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:19Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 51,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 2, "name": "Normal" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"category": { "id": 1, "name": "Priority/Critical" },
|
||||||
|
"subject": "Dar de Baja los permisos de {alta, baja} servicios",
|
||||||
|
"description": "",
|
||||||
|
"start_date": "2024-12-04",
|
||||||
|
"due_date": "2024-12-10",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:56Z",
|
||||||
|
"updated_on": "2025-10-22T21:24:58Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:19Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 50,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 2, "name": "Normal" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"category": { "id": 22, "name": "Kind/Feature, Priority/Low" },
|
||||||
|
"subject": "Propiedades: Mostrar Propiedades Dadas de Baja si sos propietario",
|
||||||
|
"description": "permite a los propietarios ver cuando sus propiedades estan dadas de baja",
|
||||||
|
"start_date": "2024-12-04",
|
||||||
|
"due_date": "2024-12-06",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:56Z",
|
||||||
|
"updated_on": "2025-10-22T21:25:51Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:19Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 49,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 2, "name": "Normal" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"category": { "id": 21, "name": "Priority/Medium" },
|
||||||
|
"subject": "Propiedades: Pagina de la propiedad",
|
||||||
|
"description": "",
|
||||||
|
"start_date": "2024-12-06",
|
||||||
|
"due_date": "2025-01-20",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:56Z",
|
||||||
|
"updated_on": "2025-10-22T21:30:38Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:18Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 48,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 3, "name": "Alta" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"category": { "id": 20, "name": "Kind/Feature, Priority/High" },
|
||||||
|
"subject": "Contratos: Busqueda de contratos por categorias",
|
||||||
|
"description": "La idea principal es tener un buscador que pueda filtrar por los servicios y/o tipo de propiedad que necesites alquilar\r\n\r\nTambien tengo pensado poner algo como un fuzzy finder para la ubicacion de la propiedad\r\n\r\n\u003ch3\u003eAvances\u003c/h3\u003e\r\n\r\nFalta la query sql para obtener los datos y que el front haga la query al endpoint correcto",
|
||||||
|
"start_date": "2024-12-06",
|
||||||
|
"due_date": "2024-12-21",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:56Z",
|
||||||
|
"updated_on": "2025-10-22T21:30:53Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:18Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 45,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 2, "name": "Normal" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"subject": "Busqueda: Añadir Paginacion con 10 propiedades por pagina",
|
||||||
|
"description": "",
|
||||||
|
"start_date": "2024-12-21",
|
||||||
|
"due_date": "2025-02-04",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:56Z",
|
||||||
|
"updated_on": "2025-10-22T21:31:55Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:18Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 44,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 2, "name": "Normal" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"category": { "id": 18, "name": "Status/Abandoned" },
|
||||||
|
"subject": "Mis Propiedades: Poner paginacion de propiedades",
|
||||||
|
"description": "",
|
||||||
|
"start_date": "2024-12-21",
|
||||||
|
"due_date": "2025-01-20",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:56Z",
|
||||||
|
"updated_on": "2025-10-22T21:32:14Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:18Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 43,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 4, "name": "Crítica" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"category": { "id": 17, "name": "Kind/Documentation, Priority/Critical" },
|
||||||
|
"subject": "LOGICA: Cambiar logica de aumento de los contratos",
|
||||||
|
"description": "TO-DO\r\n-------\r\n\r\n- [x] Tiene que haber un modificador de cada cuantos meses se debe de actualizar el monto del alquiler.\r\n\r\n- [x] Se tiene que poder definir el monto antes de pagar el primer alquiler una vez que se vensa el numero de meses (trimestral o cuatrimestral).\r\n\r\n- [x] Cuando el ultimo mes es pago tiene que setear la propiedad como de baja\r\n\r\nA Aclarar\r\n---------\r\n\r\n- [ ] Boton de defaultear a actualizar por ipc",
|
||||||
|
"start_date": "2024-12-23",
|
||||||
|
"due_date": "2025-02-06",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:56Z",
|
||||||
|
"updated_on": "2025-10-22T21:32:55Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:18Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 42,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 4, "name": "Crítica" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"subject": "Administracion de clientes",
|
||||||
|
"description": "- [x] Hacer Lista\r\n- [x] Mostrar los clientes y que grupos tienen\r\n- [x] Dar Opcion de añadir Grupos\r\n- [x] Dar Opcion de baja de grupo\r\n- [x] Baja Cliente",
|
||||||
|
"start_date": "2024-12-30",
|
||||||
|
"due_date": "2024-12-31",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:56Z",
|
||||||
|
"updated_on": "2025-10-22T21:34:24Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:41Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 41,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 4, "name": "Crítica" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"category": { "id": 1, "name": "Priority/Critical" },
|
||||||
|
"subject": "Notificaciones Web: Contratos",
|
||||||
|
"description": "TODO:\r\n- [x] hacer Lista\r\n- [x] hacer el back de notificaciones\r\n\t- [x] GET notificaciones\r\n\t- [x] POST Crear Notificacion inq -\u003e prop\r\n - [x] POST crear precontrato + pedido garantes prop -\u003e inq\r\n\t- [x] POST Alta datos Garantes + inq -\u003e prop \r\n\t- [x] POST Verifica que los datos de garantes estan bien y sube pdf contrato prop -\u003e inq\r\n - [x] POST Cancelar Precontrato prop -\u003e inq\r\n - [x] GET Recuperar el contrato.pdf\r\n\t- [x] POST inquilino Acepta el contrato inq -\u003e prop\r\n - [x] INTERNO pasar el precontrato a Contrato y crear los primeros canons de los primeros meses hasta el aumento\r\n - [x] PUT Marcarla Como leida\r\n- [x] hacer el front notificaciones\r\n\t- [x] Modal1: cantmeses hasta aumento, cantidad garantes opcion venta\r\n\t- [x] Modal2: inquilino carga garantes\r\n - [x] Modal3: Propieetario Acepta garantes y carga contrato\r\n - [x] Modal4: Inquilino acepta haber firmado\r\n - [x] Arreglar el tema para que todos los cancelar tengan para marcar como leido\r\n\t- [x] Hacer que salga un circulo cuando tenes notificaciones sin leer\r\n\u003chr\u003e\r\n\r\n\r\nla idea es implementar un menu donde el propietario y el inquilino puedan ver notificaciones que se envien ellos entre si\r\n\r\nej:\r\n\r\n\r\n\r\n\u003cfooter\u003e\r\nhttps://editor.plantuml.com/uml/VLFBRjim4BphAnQvjia764KH7ueYXnO5UjLbBMtiJIYIviE0-_MTfMHBwQ4tYfoTdPbTFUV2gTJ9TKMB4tfuyJfeeBqxLtMI7ZeUIaYathxL1-9CsXr2zIEdA_tMN6HYkyqBDAOGLK2h3HoNw_qX77biLznrIezVAU_enOywC9sha40A-XH9aWqedhYfuDHbWyST_Gn5Nws0tOS-eymKZdg_IlqFurCN5mNVdBu9XNUwulsYR2GZbyOvLFObP90UEU4eS2daPP2iXVqJPQMYub4VaPgtcejuTEtzbHpJW28TURI7IJBgJsoYAfJK2SZGMHPV7at9hoJ7QiKHSOtXW74C9ndUhHYDBd1zr_-vTJ3FkHwO74IQwDomDTDDxpre6FoqGkxFSxAye_r5SukLbpcP24Gn15-InG4_y52HQJ9xsuuRb2cQ4x7JYGT97MybGAviUHS5kgCV2_UT2sBMMLvjcbPfqq8QO8wOVRSn-8-N5ivMpPk5cupV1ApK4M4qmAkcwQEuctHkZ1XeNlPzsRQLn6h3h03ux-YPvh74f9Ca79ASpQ757_a8Hprqv6YucSyvpB_HObLcLRs_kH2iO4FXRwhiz0-Sz1vOp6cmbKCiO5wtwbdyYF_wBm00\r\n\u003c/footer\u003e",
|
||||||
|
"start_date": "2025-01-03",
|
||||||
|
"due_date": "2025-01-13",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:56Z",
|
||||||
|
"updated_on": "2025-10-22T21:34:50Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:41Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 40,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 4, "name": "Crítica" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"category": { "id": 16, "name": "Compat/Breaking, Priority/Critical" },
|
||||||
|
"subject": "ME OLVIDE: hay que poner una tabla de divisas que permita definir que tipo de divisa se esta especificando",
|
||||||
|
"description": "TODO:\r\n\u003chr\u003e\r\n \r\n\r\n- [x] DB\r\n\t- [x] Crear Tabla Divisas\r\n\t- [x] Poner un FK a propiedad\r\n - [x] Poner un FK a Contrato\r\n - [x] poner un FK a Venta\r\n - [x] poner un FK en Defecto\r\n- [x] DamageControl: Backend\r\n\t- [x] Actualizar AltaPropiedadDto.cs\r\n - [x] Actualizar PatchPropiedadDto.cs\r\n - [x] Actualizar PropiedadesDto.cs\r\n - [x] Actualizar PropiedadesAdmin.cs\r\n - [x] ContratoController.cs\r\n- [x] DamageControl: Frontend\r\n - [x] Actualizar types.d.ts\r\n - [x] Componentes\r\n \t- [x] Componente RowPropiedad.svelte\r\n \t- [x] Componente AdminPropiedad.svelte\r\n \t- [x] Componente ModificarPropiedad.svelte\r\n \t- [x] Componente PublicacionPropiedad.svelte\r\n\t- [x] Paginas\r\n \t- [x] Pagina AdminPropiedades.svelte\r\n \t- [x] Pagina MisPropiedades.svelte\r\n \t- [x] Pagina MisPropiedadesDeBaja.svelte\r\n - [x] Pagina PublicarPropiedades.svelte",
|
||||||
|
"start_date": "2025-01-07",
|
||||||
|
"due_date": "2025-01-14",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:56Z",
|
||||||
|
"updated_on": "2025-10-22T22:15:23Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:41Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 39,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 3, "name": "Alta" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"category": {
|
||||||
|
"id": 15,
|
||||||
|
"name": "Compat/Breaking, Priority/High, Reviewed/Won't Fix"
|
||||||
|
},
|
||||||
|
"subject": "Garantes: Nuevo",
|
||||||
|
"description": "# Contrato\r\n\r\n# Garantes\r\n- Dni Numero\r\n- Nombre\r\n- Apellido\r\n- Domicilio\r\n\r\n## con recibo de haberes\r\n- DomicilioLaboral\r\n- NombreEmpleador\r\n\r\n\r\n## Propietaria\r\n- DomicilioInmuble\r\n- NumeroPartida\r\n- TomoRegistracion\r\n- FolioRegistracion\r\n- NumeroRegistracion\r\n- Escritura\r\n- 1 Recibo del impuesto imnobiliario\r\n\r\n# detalles de implementacion\r\n1 bit de direrenciacion entre garantes\r\n\r\n",
|
||||||
|
"start_date": "2025-01-07",
|
||||||
|
"due_date": "2025-01-14",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:56Z",
|
||||||
|
"updated_on": "2025-10-22T22:15:38Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:41Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 38,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 4, "name": "Crítica" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"category": { "id": 1, "name": "Priority/Critical" },
|
||||||
|
"subject": "Colocar cantidad de meses de duracion de un contrato",
|
||||||
|
"description": "- [x] Hacer lista\r\n- [x] Añadir a la base de datos\r\n- [x] hacer migracion\r\n- [x] Frontend\r\n\t- [x] añadir al primer modal el contador de meses que va a durar el contrato\r\n- [x] Backend\r\n\t- [x] ControladoraContratos.cs\r\n\t- [x] repositorio de contratos añadir que cuando se generan los pagos en caso de que los meses hasta aumento sean mayores que la duracion del contrato solo se va a generar la cantidad de pagos como para la duracion del contrato.\r\n",
|
||||||
|
"start_date": "2025-01-14",
|
||||||
|
"due_date": "2025-01-16",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:56Z",
|
||||||
|
"updated_on": "2025-10-22T22:16:12Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:41Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 37,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 3, "name": "Alta" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"category": { "id": 20, "name": "Kind/Feature, Priority/High" },
|
||||||
|
"subject": "GUI: Hay que hacer las paginas para el inquilino y propietario especificas para los alquileres",
|
||||||
|
"description": "- [x] hacer lista\r\n- [x] Definir UI\r\n\t- [x] Propietario\r\n - [x] Inquilino\r\n\t- [x] Hacerla\r\n- [x] Codigo Backend",
|
||||||
|
"start_date": "2025-01-14",
|
||||||
|
"due_date": "2025-01-20",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:56Z",
|
||||||
|
"updated_on": "2025-10-22T22:16:45Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:41Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 36,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 2, "name": "Normal" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"subject": "Defectos: Roadmap",
|
||||||
|
"description": "- [x] Front\r\n - [x] Propietario\r\n - [x] nuevo colapsable\r\n - [x] 1 async getdefectos\r\n - [x] 1 MarcarPago\r\n - [x] Inquilino\r\n - [x] nuevo colapsable\r\n - [x] 1 async getdefectos\r\n - [x] un post del defecto\r\n- [x] back\r\n - [x] DefectoController.cs\r\n - [x] HTTPGET obtener defectos\r\n - [x] HTTPPOST subir defectos\r\n - [x] HTTPPUT marcarPago\r\n",
|
||||||
|
"start_date": "2025-01-20",
|
||||||
|
"due_date": "2025-01-22",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:56Z",
|
||||||
|
"updated_on": "2025-10-22T22:18:19Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:41Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 35,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 2, "name": "Normal" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"subject": "Estadisticas: Roadmap",
|
||||||
|
"description": "- [x] HAcer un dto para la estadistica con el tema de los charts\r\n- [x] Pensar que voy a hacer con los charts\r\n-----\r\n- [x] back\r\n - [x] Cantidad de alquileres iniciados por año\r\n - [x] Duracion de contrato más popular",
|
||||||
|
"start_date": "2025-01-22",
|
||||||
|
"due_date": "2025-01-23",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:56Z",
|
||||||
|
"updated_on": "2025-10-22T22:18:19Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:41Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 34,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 2, "name": "Normal" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"category": { "id": 7, "name": "Kind/Feature, Priority/Medium" },
|
||||||
|
"subject": "Modificar Propietario desde menu admin usuarios",
|
||||||
|
"description": null,
|
||||||
|
"start_date": "2025-01-23",
|
||||||
|
"due_date": "2025-01-30",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:56Z",
|
||||||
|
"updated_on": "2025-10-22T22:18:19Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:41Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 33,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 2, "name": "Normal" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"subject": "Ventas: Roadmap",
|
||||||
|
"description": "- [x] Hacer Lista\r\n- [ ] Preguntarle a mi madre cuando se define el costo de la venta\r\n\r\n-----\r\n# BACK\r\n- [x] VentaController.cs\r\n - [x] POST /api/ventas/ejercerOpcionVenta?idcontrato \r\n inquilino en el ultimo mes del contrato\r\n \r\n - [x] POST /api/ventas/subirReciboPago?idventa\r\n inquilino sube certificado del pago del contrato\r\n - [x] GET /api/ventas/verRecibo?idventa\r\n \r\n - [x] POST /api/ventas/propietarioverifica?idventa\r\n propietario afirma haber recibido el pago y se hace el traspaso\r\n \r\n - [x] GET /api/venta?idventa\r\n api para ver una venta en especifico\r\n \r\n - [x] GET /api/ventas\r\n \r\n - [x] GET /api/opcionventa?idcontrato\r\n\r\n - [x] GET /api/contrato/tieneopcionventa?idcontrato\r\n\r\n-----\r\n# Front\r\n- [x] Pagina ver ventas propietario\r\n- [x] Pagina ver ventas inquilino\r\n- [x] pagina venta prop\r\n- [x] pagina venta inq\r\n- [x] Modal para subir el documento que certifique el pago\r\n\r\n- [x] Añadir a la pagina de contrato inquilino un boton que se active en el pago del ultimo canon para iniciar la opcion de venta si tiene opcion de venta y que muestre los datos de esa venta\r\n\r\n- [x] Añadir una vista para el propietario que muestre la opcion de venta y un link a la pagina si se ejercio\r\n\r\n-----\r\n# Db\r\n- [x] Hacer 2 permisos para ver Ventas inquilino/propietario",
|
||||||
|
"start_date": "2025-01-24",
|
||||||
|
"due_date": "2025-01-27",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:56Z",
|
||||||
|
"updated_on": "2025-10-22T22:18:19Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:40Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 32,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 3, "name": "Alta" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"category": { "id": 14, "name": "Priority/High" },
|
||||||
|
"subject": "Auditoria",
|
||||||
|
"description": "Voy a mirar la viabilidad de usar el dbcontext para checkear los cambios en entidades ",
|
||||||
|
"start_date": "2025-01-27",
|
||||||
|
"due_date": "2025-01-30",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:56Z",
|
||||||
|
"updated_on": "2025-10-22T22:18:38Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:40Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 31,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 3, "name": "Alta" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"subject": "Requerimientos Funcionales",
|
||||||
|
"description": "- [x] Hacer Lista\r\n\r\n- [x] RF1. \tAñadir Propietarios\r\n- [x] RF2. Modificar Propietarios\r\n- [x] RF3 Eliminar Propietarios\r\n- [x] RF4. Añadir Propiedades\r\n- [x] RF5. Modificar Propiedades\r\n- [x] RF6. Eliminar Propiedades\r\n- [x] RF7. Añadir Inquilinos\r\n- [x] RF8. Modificar Inquilinos\t \t \t \t\r\n- [x] RF9. Gestionar Garantías\r\n- [x] RF10. Registro de contratos\r\n- [x] RF11. Almacenamiento de documentos creados con herramientas externas\r\n- [x] RF12. Añadir Información sobre Defectos y Arreglos.\r\n- [x] RF13. Informar Arreglo\r\n- [x] RF14. Control de pagos\r\n Faltaria que haya una opcion de \r\n- [x] RF15. Pago de Alquileres \r\n- [x] RF16. Generación de informes: Pagos y meses atrasados\r\n- [x] RF17. Gestionar Venta de Propiedades\r\n- [x] RF18. Opción de Venta\r\n\t \t ",
|
||||||
|
"start_date": "2025-01-29",
|
||||||
|
"due_date": "2025-02-02",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:56Z",
|
||||||
|
"updated_on": "2025-10-22T22:18:53Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:40Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 30,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 2, "name": "Normal" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"category": { "id": 14, "name": "Priority/High" },
|
||||||
|
"subject": "RF14. Control de pagos",
|
||||||
|
"description": "Se generará una notificación para el inquilino de que tiene un pago pendiente sobre su alquiler. Llamemos al pago pendiente como “Canon” o “Meses sin pagar”. El sistema se va a encargar de generar estos datos y un empleado de administración o propietario podrá ver un listado de los meses que faltan pagar de un contrato y en caso de ser necesario redactar un texto hacia el inquilino.",
|
||||||
|
"start_date": "2025-01-29",
|
||||||
|
"due_date": "2025-01-30",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:56Z",
|
||||||
|
"updated_on": "2025-10-22T22:18:19Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:40Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 29,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 2, "name": "Normal" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"category": { "id": 13, "name": "Priority/Medium, Reviewed/Confirmed" },
|
||||||
|
"subject": "RF16. Generación de informes: Pagos y meses atrasados",
|
||||||
|
"description": "El usuario tendrá la posibilidad de crear informes especificando un rango de fechas, sobre los cánones. Haciendo una diferenciación entre los que fueron pagados, los que no, cuando y si fueron pagos atrasados.\r\nEsto con la finalidad de poder visualizar cual es la tendencia e impacto de la economía sobre los inquilinos.\r\nLos informes podrán ser visualizados en una interfaz gráfica propia del programa, o ser exportados en csv para ser visualizados en aplicaciones externas.",
|
||||||
|
"start_date": "2025-01-29",
|
||||||
|
"due_date": "2025-01-30",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:56Z",
|
||||||
|
"updated_on": "2025-10-22T22:18:19Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:40Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 28,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 2, "name": "Normal" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"category": { "id": 1, "name": "Priority/Critical" },
|
||||||
|
"subject": "RF17. Gestionar Venta de Propiedades",
|
||||||
|
"description": "El sistema permitirá que los propietarios ofrezcan sus propiedades en venta. Para gestionar la venta de una propiedad, se podrán especificar varios estados que representen el progreso de la transacción, como:\r\n • Disponible para Venta: Cuando la propiedad está activa en el sistema para ser vendida.\r\n • Venta Confirmada: Cuando se ha llegado a un acuerdo y se ha aceptado la oferta de compra.\r\n • Vendida: Cuando la transacción ha sido completada y la propiedad ya no está disponible para la venta.\r\n • Retirada de Venta: Cuando el propietario decide no vender la propiedad por el momento.\r\nEl sistema debe permitir al propietario o a la administración cambiar el estado de la propiedad según avance la transacción. Además, se podrán registrar las fechas en que se producen los cambios de estado y los montos de las ofertas recibidas.\r\n\r\n\u003chr\u003e\r\n\r\n- [x] GET /api/propiedad/EstaALaVenta?idprop\r\n tiene id4?\r\n \r\n- [x] PUT /api/propiedad/setPropiedadAVenta\r\n cambiar estado a 4 = venta\r\n\r\n- [x] PUT /api/propiedad/unsetPropiedadAVenta\r\n Bajar a estado 3 para mostrar que se dio de baja\r\n\r\n- [x] GET /api/propiedades/Venta\r\n Obtener Propiedades Para mostrar en venta\r\n\r\n- [x] GET /api/propiedades/Venta/Propietario\r\n\r\n- [x] Ver si puedo hacer que el patch normal de propiedades funciona\r\n\r\n- [x] ModalSetVenta\r\n\r\n- [x] Hacer un permiso para propietario de Mis Propiedades En Venta\r\n\r\n- [x] Hacer la pagina para administrar las propiedades en venta del propietario\r\n\r\n- [x] Hacer la pagina de busqueda de propiedades en venta",
|
||||||
|
"start_date": "2025-01-29",
|
||||||
|
"due_date": "2025-02-02",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:56Z",
|
||||||
|
"updated_on": "2025-10-22T22:18:19Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:40Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 22,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 4, "name": "Crítica" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"category": {
|
||||||
|
"id": 9,
|
||||||
|
"name": "Kind/Enhancement, Kind/Feature, Priority/Critical"
|
||||||
|
},
|
||||||
|
"subject": "Modulo: seguridad",
|
||||||
|
"description": "- [x] lista\r\n-----\r\n- [x] Añadir Cerrar Sesion\r\n- [x] Gestionar Grupos\r\n - [x] Añadir Grupo\r\n - [x] Editar Grupo\r\n - [x] Eliminar Grupo\r\n \t- [x] Hacer que el gestionar tenga la opcion\r\n - [x] Hacer que no se muestre cuando esta desabilitado\r\n \t- [x] hacer que la navbar no lo tenga\r\n - [x] Hacer que el checkpermiso no lo vea tampoco\r\n- [x] Cambiar Contraseña\r\n- [x] Recuperar Clave\r\n- [x] Gestion Permisos\r\n\t- [x] Crear\r\n - [x] Editar\r\n\r\n ",
|
||||||
|
"start_date": "2025-02-25",
|
||||||
|
"due_date": "2025-06-18",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:55Z",
|
||||||
|
"updated_on": "2025-10-22T22:24:13Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:40Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 21,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 3, "name": "Alta" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"category": { "id": 8, "name": "Kind/Security, Priority/High" },
|
||||||
|
"subject": "Hacer un logeo de los logins",
|
||||||
|
"description": "- [x] Hacer Lista\r\n-----\r\n- [x] Hacer un metodo privado en el repositorio de usuarios que cree una entidad de login con la fecha el usuario y la ip de la request del login ",
|
||||||
|
"start_date": "2025-02-25",
|
||||||
|
"due_date": "2025-03-05",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:55Z",
|
||||||
|
"updated_on": "2025-10-22T22:26:56Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:40Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 20,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 2, "name": "Normal" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"category": { "id": 7, "name": "Kind/Feature, Priority/Medium" },
|
||||||
|
"subject": "Pensar otra Estadistica más",
|
||||||
|
"description": "Esta tiene que tener una utilidad obvia\r\n\r\n-----\r\n- [x] hacer lista\r\n-----\r\n\r\n- [x] Modificar el front para que lo muestre\r\n\t- [x] Skeleton\r\n - [x] Cambiar a que en vez de ser ingresos sea pagos.\r\n - [x] Poner path del fetch\r\n\t- [x] Añadir que el fetch se haga cuando apretas el boton y antes haya un suspense con un loading\r\n\r\n- [x] Añadir a RepositorioEstadistica\r\n\t- [x] ObtenerDatosPagos()\r\n- [x] Añadir endpoint a EstadisticaController",
|
||||||
|
"start_date": "2025-02-26",
|
||||||
|
"due_date": "2025-05-31",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:55Z",
|
||||||
|
"updated_on": "2025-10-22T22:27:06Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:40Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 19,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 2, "name": "Normal" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"subject": "Feature implementar tema de que los permisos usen composite",
|
||||||
|
"description": "falta que RepositorioPemrmisos use esto:\r\n\r\n- [x] ListarPermisos\r\n- [x] CheckPermisos",
|
||||||
|
"start_date": "2025-03-04",
|
||||||
|
"due_date": "2025-04-28",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:55Z",
|
||||||
|
"updated_on": "2025-10-22T22:27:24Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:40Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 16,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 1, "name": "Baja" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"category": {
|
||||||
|
"id": 5,
|
||||||
|
"name": "Kind/Feature, Kind/Security, Priority/Low"
|
||||||
|
},
|
||||||
|
"subject": "Añadir Cerrar Sesion",
|
||||||
|
"description": "Basicamente voy a eliminar los datos del lado del cliente y redireccionarlo a la pantalla de menu",
|
||||||
|
"start_date": "2025-04-07",
|
||||||
|
"due_date": "2025-04-07",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:55Z",
|
||||||
|
"updated_on": "2025-10-22T22:27:50Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:48Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 14,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 2, "name": "Normal" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"subject": "Modal Editar grupo",
|
||||||
|
"description": "- [x] Hay que hacer un endpont para tener todos los permisos\r\n- [x] Otro para todos los grupos\r\n",
|
||||||
|
"start_date": "2025-04-17",
|
||||||
|
"due_date": "2025-04-21",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:55Z",
|
||||||
|
"updated_on": "2025-10-22T22:32:10Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:48Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 13,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 2, "name": "Normal" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"subject": "Hacer una pagina para los grupos que añada el cliente sin tener un texto de descripcion",
|
||||||
|
"description": "",
|
||||||
|
"start_date": "2025-04-21",
|
||||||
|
"due_date": "2025-04-21",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:55Z",
|
||||||
|
"updated_on": "2025-10-22T22:32:17Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:48Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 3, "name": "Alta" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"subject": "Crear el cambiar contraseña",
|
||||||
|
"description": "\r\n- [x] lista\r\n-----\r\n\r\n- [x] Hacer pagina de usuario\r\n\r\n- [x] hacer un popup con un form para que envie la req\r\n\r\n- [x] /api/usuario PATCH\r\n\tEsto tiene que dejar que se pueda cambiar la contraseña además de verificaciones como que tenga 8 chars o más\r\n \r\n- [x] /api/usuario?dni GET\r\n\tQue te de el dto de usuario para completar con los datos tuyos\r\n \r\n- [x] Añadir a la navbar completable un boton para abrir el menu de usuario\r\n\r\n\t\r\n",
|
||||||
|
"start_date": "2025-05-05",
|
||||||
|
"due_date": "2025-05-05",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:55Z",
|
||||||
|
"updated_on": "2025-10-22T22:32:25Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:48Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 11,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 4, "name": "Crítica" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"subject": "Recuperar Clave",
|
||||||
|
"description": "- [x] Hacer lista\r\n-----\r\n\r\n- [x] Setear Email de respaldo\r\n - [x] Crear dato de email de respaldo\r\n - [x] hacer el form en la pagina de usuario\r\n - [x] hacer el endpoing PUT\r\n - [x] Que se pueda ver en el panel de usuario\r\n - [x] Enviar un email de aviso que este email se seteo como un email de recuperacion\r\n \r\n- [x] Poner en la pantalla de login\r\n - [x] Link de recuperar cuenta\r\n - [x] Modal para enviar la request si conoces tu usuario + email de recuperacion\r\n - [x] Modal para ingresar los 6 digitos\r\n - [x] 2fa con el email\r\n - [x] hay que hacer un mail para esto\r\n - [x] actualizar que cuando le das al recuperar contraseña setee los 6 numeros del 2fa en el registro del usuario\r\n - [x] Esto te genera un token y te manda un dialog de cambiar contraseña\r\n\r\npd:\r\n\r\n- [x] añadir que por default se seteé el mail de recuperacion como el de usuario.\r\n- [x] hacer que el programa por defecto si solo pones el email de usuario y no recuperacion envie el mail al de usuario osea vamos son 2 lineas.",
|
||||||
|
"start_date": "2025-05-05",
|
||||||
|
"due_date": "2025-05-20",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:55Z",
|
||||||
|
"updated_on": "2025-10-22T22:32:48Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:48Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 2, "name": "Normal" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"category": {
|
||||||
|
"id": 4,
|
||||||
|
"name": "Kind/Enhancement, Kind/Feature, Priority/Medium"
|
||||||
|
},
|
||||||
|
"subject": "update botones de administracion usuarios",
|
||||||
|
"description": "necesito:\r\n\r\n- [x] HAcer lista\r\n------\r\n\r\n- [x] Capacidad restablecer contraseñas de usuarios.\r\n\t- [x] añadir boton con svg de llavero\r\n - [x] POST cambiarcontraseña admin\r\n \r\n- [x] Cambiar el de modificar por un svg de un papel y un lapiz",
|
||||||
|
"start_date": "2025-05-21",
|
||||||
|
"due_date": "2025-05-22",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:55Z",
|
||||||
|
"updated_on": "2025-10-22T23:05:58Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:48Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 7,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 2, "name": "Normal" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"subject": "Falta validacion de longitud campo nombre",
|
||||||
|
"description": "\r\n\r\n\u003cimg width=\"389\" alt=\"image.png\" src=\"attachments/b6ed90ae-e622-4ab6-bbf2-dabd58b94717\"\u003e\r\n\r\n",
|
||||||
|
"start_date": "2025-05-29",
|
||||||
|
"due_date": "2025-05-29",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:54Z",
|
||||||
|
"updated_on": "2025-10-22T23:07:19Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:48Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 6,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 2, "name": "Normal" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"category": {
|
||||||
|
"id": 3,
|
||||||
|
"name": "Kind/Enhancement, Kind/Feature, Priority/High"
|
||||||
|
},
|
||||||
|
"subject": "Crear usuario",
|
||||||
|
"description": "Actualmente tengo un crear usuario que basicamente es:\r\n- Crear inquilino\r\n- Crear Propietario\r\n\r\npero y si el usuario no entra en esas categorias que hago?\r\n\r\n- Hay que hacer un crear usuario generico que sea como el menu de crear grupo pero solo con la lista de grupos\r\n\r\n## TODO\r\n\r\n- [x] Hacer una pagina para esto CrearUsuario.svelte\r\n - [x] Fetch grupos\r\n - [x] Formulario para dar de alta usuario\r\n\r\n- [x] Crear un permiso de generacion de grupo\r\n- [x] Darle el permiso a administracion\r\n\r\n- [x] HTTPPost Usuario Generico\r\n Tiene que poder aceptar los datos base del usuario y una lista de numeros que equivalgan a los grupos ingresados.",
|
||||||
|
"start_date": "2025-06-19",
|
||||||
|
"due_date": "2025-07-23",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:54Z",
|
||||||
|
"updated_on": "2025-10-22T23:08:19Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:48Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 4,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 2, "name": "Normal" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"subject": "LogOut",
|
||||||
|
"description": "- [x] Hacer Lista\r\n------\r\n- [x] Añadir un fetch\r\n- [x] ControladorLogin que genere un nuevo token en tu usuario",
|
||||||
|
"start_date": "2025-07-22",
|
||||||
|
"due_date": "2025-07-23",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:54Z",
|
||||||
|
"updated_on": "2025-10-22T23:08:25Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:48Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2,
|
||||||
|
"project": { "id": 1, "name": "AlquilaFacil" },
|
||||||
|
"tracker": { "id": 1, "name": "Caracteristica" },
|
||||||
|
"status": { "id": 2, "name": "Cerrado", "is_closed": true },
|
||||||
|
"priority": { "id": 2, "name": "Normal" },
|
||||||
|
"author": { "id": 5, "name": "Federico Polidoro" },
|
||||||
|
"category": { "id": 1, "name": "Priority/Critical" },
|
||||||
|
"subject": "admin añadir contrato",
|
||||||
|
"description": "- [x] Hacer Lista\r\n-----\r\n\r\n\u003e \"Como Administrador Quiero Dar de Alta un contrato.\"",
|
||||||
|
"start_date": "2025-07-25",
|
||||||
|
"due_date": "2025-07-28",
|
||||||
|
"done_ratio": 100,
|
||||||
|
"is_private": false,
|
||||||
|
"estimated_hours": null,
|
||||||
|
"total_estimated_hours": null,
|
||||||
|
"created_on": "2025-10-22T20:58:54Z",
|
||||||
|
"updated_on": "2025-10-22T23:12:06Z",
|
||||||
|
"closed_on": "2025-10-22T21:24:48Z"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
1
src/assets/svelte.svg
Normal file
1
src/assets/svelte.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="26.6" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 308"><path fill="#FF3E00" d="M239.682 40.707C211.113-.182 154.69-12.301 113.895 13.69L42.247 59.356a82.198 82.198 0 0 0-37.135 55.056a86.566 86.566 0 0 0 8.536 55.576a82.425 82.425 0 0 0-12.296 30.719a87.596 87.596 0 0 0 14.964 66.244c28.574 40.893 84.997 53.007 125.787 27.016l71.648-45.664a82.182 82.182 0 0 0 37.135-55.057a86.601 86.601 0 0 0-8.53-55.577a82.409 82.409 0 0 0 12.29-30.718a87.573 87.573 0 0 0-14.963-66.244"></path><path fill="#FFF" d="M106.889 270.841c-23.102 6.007-47.497-3.036-61.103-22.648a52.685 52.685 0 0 1-9.003-39.85a49.978 49.978 0 0 1 1.713-6.693l1.35-4.115l3.671 2.697a92.447 92.447 0 0 0 28.036 14.007l2.663.808l-.245 2.659a16.067 16.067 0 0 0 2.89 10.656a17.143 17.143 0 0 0 18.397 6.828a15.786 15.786 0 0 0 4.403-1.935l71.67-45.672a14.922 14.922 0 0 0 6.734-9.977a15.923 15.923 0 0 0-2.713-12.011a17.156 17.156 0 0 0-18.404-6.832a15.78 15.78 0 0 0-4.396 1.933l-27.35 17.434a52.298 52.298 0 0 1-14.553 6.391c-23.101 6.007-47.497-3.036-61.101-22.649a52.681 52.681 0 0 1-9.004-39.849a49.428 49.428 0 0 1 22.34-33.114l71.664-45.677a52.218 52.218 0 0 1 14.563-6.398c23.101-6.007 47.497 3.036 61.101 22.648a52.685 52.685 0 0 1 9.004 39.85a50.559 50.559 0 0 1-1.713 6.692l-1.35 4.116l-3.67-2.693a92.373 92.373 0 0 0-28.037-14.013l-2.664-.809l.246-2.658a16.099 16.099 0 0 0-2.89-10.656a17.143 17.143 0 0 0-18.398-6.828a15.786 15.786 0 0 0-4.402 1.935l-71.67 45.674a14.898 14.898 0 0 0-6.73 9.975a15.9 15.9 0 0 0 2.709 12.012a17.156 17.156 0 0 0 18.404 6.832a15.841 15.841 0 0 0 4.402-1.935l27.345-17.427a52.147 52.147 0 0 1 14.552-6.397c23.101-6.006 47.497 3.037 61.102 22.65a52.681 52.681 0 0 1 9.003 39.848a49.453 49.453 0 0 1-22.34 33.12l-71.664 45.673a52.218 52.218 0 0 1-14.563 6.398"></path></svg>
|
||||||
|
After Width: | Height: | Size: 1.9 KiB |
34
src/componentes/tarjeta.svelte
Normal file
34
src/componentes/tarjeta.svelte
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
<script>
|
||||||
|
let { issue } = $props();
|
||||||
|
import { marked } from "marked";
|
||||||
|
|
||||||
|
let html = $derived(
|
||||||
|
issue?.description
|
||||||
|
? marked.parse(issue.description, { async: false })
|
||||||
|
: "",
|
||||||
|
);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<div class="card" id={`card-${issue.id}`}>
|
||||||
|
<h5 class="card-header p-2">{issue.subject}</h5>
|
||||||
|
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="card-text">
|
||||||
|
<strong>Descripcion</strong><br />
|
||||||
|
{@html html} <br />
|
||||||
|
<strong>Estado:</strong>
|
||||||
|
{issue.status?.name}<br />
|
||||||
|
<strong>Prioridad:</strong>
|
||||||
|
{issue.priority?.name}<br />
|
||||||
|
{#if issue.assigned_to}
|
||||||
|
<strong>Asignado a:</strong> {issue.assigned_to.name}
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="card-footer">
|
||||||
|
<small class="text-muted">
|
||||||
|
ID: {issue.id}<br />
|
||||||
|
Creado: {new Date(issue.created_on).toLocaleDateString()}
|
||||||
|
</small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
10
src/lib/Counter.svelte
Normal file
10
src/lib/Counter.svelte
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
let count: number = $state(0)
|
||||||
|
const increment = () => {
|
||||||
|
count += 1
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<button onclick={increment}>
|
||||||
|
count is {count}
|
||||||
|
</button>
|
||||||
10
src/main.ts
Normal file
10
src/main.ts
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
import { mount } from "svelte";
|
||||||
|
import App from "./App.svelte";
|
||||||
|
//import "./app.css";
|
||||||
|
import "bootstrap/dist/css/bootstrap.min.css";
|
||||||
|
|
||||||
|
const app = mount(App, {
|
||||||
|
target: document.getElementById("app")!,
|
||||||
|
});
|
||||||
|
|
||||||
|
export default app;
|
||||||
8
svelte.config.js
Normal file
8
svelte.config.js
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'
|
||||||
|
|
||||||
|
/** @type {import("@sveltejs/vite-plugin-svelte").SvelteConfig} */
|
||||||
|
export default {
|
||||||
|
// Consult https://svelte.dev/docs#compile-time-svelte-preprocess
|
||||||
|
// for more information about preprocessors
|
||||||
|
preprocess: vitePreprocess(),
|
||||||
|
}
|
||||||
21
tsconfig.app.json
Normal file
21
tsconfig.app.json
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"extends": "@tsconfig/svelte/tsconfig.json",
|
||||||
|
"compilerOptions": {
|
||||||
|
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
|
||||||
|
"target": "ES2022",
|
||||||
|
"useDefineForClassFields": true,
|
||||||
|
"module": "ESNext",
|
||||||
|
"types": ["svelte", "vite/client"],
|
||||||
|
"noEmit": true,
|
||||||
|
/**
|
||||||
|
* Typecheck JS in `.svelte` and `.js` files by default.
|
||||||
|
* Disable checkJs if you'd like to use dynamic types in JS.
|
||||||
|
* Note that setting allowJs false does not prevent the use
|
||||||
|
* of JS in `.svelte` files.
|
||||||
|
*/
|
||||||
|
"allowJs": true,
|
||||||
|
"checkJs": true,
|
||||||
|
"moduleDetection": "force"
|
||||||
|
},
|
||||||
|
"include": ["src/**/*.ts", "src/**/*.js", "src/**/*.svelte"]
|
||||||
|
}
|
||||||
7
tsconfig.json
Normal file
7
tsconfig.json
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"files": [],
|
||||||
|
"references": [
|
||||||
|
{ "path": "./tsconfig.app.json" },
|
||||||
|
{ "path": "./tsconfig.node.json" }
|
||||||
|
]
|
||||||
|
}
|
||||||
26
tsconfig.node.json
Normal file
26
tsconfig.node.json
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
|
||||||
|
"target": "ES2023",
|
||||||
|
"lib": ["ES2023"],
|
||||||
|
"module": "ESNext",
|
||||||
|
"types": ["node"],
|
||||||
|
"skipLibCheck": true,
|
||||||
|
|
||||||
|
/* Bundler mode */
|
||||||
|
"moduleResolution": "bundler",
|
||||||
|
"allowImportingTsExtensions": true,
|
||||||
|
"verbatimModuleSyntax": true,
|
||||||
|
"moduleDetection": "force",
|
||||||
|
"noEmit": true,
|
||||||
|
|
||||||
|
/* Linting */
|
||||||
|
"strict": true,
|
||||||
|
"noUnusedLocals": true,
|
||||||
|
"noUnusedParameters": true,
|
||||||
|
"erasableSyntaxOnly": true,
|
||||||
|
"noFallthroughCasesInSwitch": true,
|
||||||
|
"noUncheckedSideEffectImports": true
|
||||||
|
},
|
||||||
|
"include": ["vite.config.ts"]
|
||||||
|
}
|
||||||
7
vite.config.ts
Normal file
7
vite.config.ts
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
import { defineConfig } from 'vite'
|
||||||
|
import { svelte } from '@sveltejs/vite-plugin-svelte'
|
||||||
|
|
||||||
|
// https://vite.dev/config/
|
||||||
|
export default defineConfig({
|
||||||
|
plugins: [svelte()],
|
||||||
|
})
|
||||||
Reference in New Issue
Block a user