Commit graph

57 commits

Author SHA1 Message Date
e7824d079a
refactor(settings): update paths and command execution
Updated BASE_DIR and various paths in settings.py to simplify path handling. Modified management commands to use a consistent runner script (`quackscape-manage`) for improved clarity and maintainability.

Addresses potential path issues and standardizes command usage.
2024-06-20 20:43:05 +02:00
d8f8ae30e3
fix(migrations): correct TextElement foreign key field
Added a missing 'imageelement_ptr' field to the 'textelement' model to correct the migration and ensure proper foreign key relationship. Removed the obsolete 'element_ptr' field. This change addresses a structural inconsistency in the database schema.
2024-06-20 19:56:13 +02:00
c30a81df1f
feat: Enhance scene links with titles and dynamic URL
This commit improves the usability and maintenance of the scene management section in the 'category' template by adding 'title' attributes to 'View' and 'Edit' links, making them more accessible. It also shifts the 'Edit' link to use Django's URL template tag for dynamic URL resolution, ensuring the link remains accurate even if the routing structure changes. Additionally, the 'Delete' action has been similarly updated for consistency and future-proofing.

A corresponding URL pattern for 'SceneEditView' has been added to 'urls.py', enabling this dynamic URL resolution and ensuring the system is scalable and easier to maintain.

This adjustment not only enhances the user experience by providing clear action labels on hover but also improves the robustness of the application's URL management.
2024-05-07 16:24:30 +02:00
cfe54415c7
feat(users): Add get_serializer_class to FileUploadView
Introduced a `get_serializer_class` method in the `FileUploadView` class to avoid warnings about the missing `serializer_class` attribute. This change ensures better code clarity and suppresses unnecessary warning messages during runtime, without altering the dynamic serializer class resolution based on the `media_type` in the request data. This adjustment provides a cleaner, more maintainable codebase and enhances developer experience by clearly communicating the intentional dynamic behavior of serializer class selection.
2024-05-07 16:19:30 +02:00
2aa568769d
feat: implement scene deletion functionality
Added a new `SceneDeleteView` to `views.py`, enabling users to delete scenes directly from the UI. The corresponding URL pattern for scene deletion has been defined in `urls.py`. In addition, the category template (`category.html`) has been updated to include delete action icons alongside existing edit/view actions for each scene. This update enhances user control by allowing for the efficient management and removal of scenes from a project's category listing.

This change addresses user feedback requesting more intuitive content management capabilities within the application. Particularly, it simplifies the workflow for users managing large numbers of scenes, improving the overall user experience by streamlining content administration tasks.
2024-05-07 16:16:05 +02:00
520cd80325
feat: upgrade to Django 5.0 and set minimal Python version to 3.10
Updated the project dependencies to use Django 5.0, indicating the project's migration to Django's latest version. Additionally, the minimal supported Python version is now set to 3.10, ensuring compatibility with Django 5.0 and taking advantage of Python's latest features and improvements. This update may require users to adjust their environment to align with these new requirements.
2024-05-07 16:06:26 +02:00
7a79b5cdc9
feat(users): redirect to category after media delete
Introduce a custom `get_success_url` method in the `MediaDeleteView` to redirect users back to the specific category page they were on, upon successfully deleting media. This enhancement improves user experience by maintaining the context of their browsing session, avoiding disorientation that could result from being redirected to a generic page.
2024-05-07 15:57:53 +02:00
ac2c4e788f
feat(editor): implement element location update on
dragend

Replaced a placeholder console.log with a concrete implementation of the
`updateElementLocation` function in the `startModifyElement` event
listener. This function calculates a new angular position (`theta`)
based on the element's offset after dragging it in the editor and
updates the element's `theta-start` attribute accordingly. This change
leads to a more dynamic and interactive user experience in the editor by
allowing users to reposition elements visually and have those changes
reflected immediately.
2024-03-28 13:09:48 +01:00
c43ddfef2a
fix(editor): correct TeleportElement option and improve dropdown
Correctly set the value for the Teleport option in the element creation
form, ensuring that elements are correctly classified. Enhanced dynamic
data fetching for scenes and categories to populate the destination
dropdown based on the scene's category, improving user experience in
specifying teleport destinations. Resolved an issue with event
propagation by explicitly setting the button type for dropdown items,
preventing form submission on selection. This change streamlines the
process of creating teleport elements and selecting destinations within
the editor, making it more intuitive and error-free.

- Removed outdated TODO comment related to element drags handling.
- Removed unused rotation input fields for a cleaner UI.
- Added conversion function `thetaToCartesian` for future
functionalities.
2024-03-28 12:27:10 +01:00
538ddd76e9
feat(editor): introduce debug mode for element properties
Wrapped element creation and modification properties sections in a div
with a `hide` class, which can now be toggled via a keyboard shortcut
(Ctrl+Shift+Q). This debug mode allows developers to easily view and
hide debugging information about elements being created or modified in
the editor. This enhancement is aimed at improving the development and
troubleshooting process by providing quick access to relevant debug
information without cluttering the UI for users.

Additionally, a new function `toggleDebugVisibility` was added to manage
the visibility of debug information, and a keyboard event listener was
implemented to handle the specified keyboard shortcut.

This update aims to balance the need for detailed debugging information
during development with a clean, user-friendly interface during regular
use.
2024-03-28 11:33:34 +01:00
4c90218490
feat(editor): enhance element property forms
Refined the `createElementPropertiesForm` in the editor to include
position and rotation inputs, improving user interaction for specifying
these attributes. Simplified the function's parameters by removing
unnecessary event and thetaStart arguments, streamlining the codebase.
Also corrected the naming of `destination_x`, `destination_y`, and
`destination_z` input names for consistency. Marked handling of unknown
element types with a TODO to prompt future development. This enhancement
allows for more precise control over element positioning and
orientation, directly impacting user experience positively.
2024-03-28 11:26:24 +01:00
ae3d7ffc98
feat: improve UI visibility and interaction
Enhanced UI element visibility and interaction across the editor and
scene components. By switching to classList manipulation for showing and
hiding UI elements, the approach aligns better with modern best
practices, ensuring smooth transitions and consistency in user
experience. The addition of `!important` in the CSS for the `.hide`
class guarantees the override of conflicting styles, addressing
potential visibility issues. Adjustments in HTML formatting enhance
readability and maintainability without altering functionality. This
change, while seemingly minor, significantly improves the user's ability
to intuitively navigate and interact with the UI, potentially reducing
frustration and increasing overall user satisfaction.
2024-03-28 11:15:36 +01:00
4043f031ab
refactor(editor.js): streamline element creation form generation
Replaced multiple specific functions for creating MarkerElement,
ImageElement, and TeleportElement forms in the editor with a single,
switch-based function titled createElementPropertiesForm. This
enhancement consolidates form generation logic, reducing redundancy and
improving maintainability. It dynamically generates input fields based
on the element type selected, simplifying future extensions or
modifications to element properties. Additionally, this refactoring
ensures a more consistent user experience by uniform handling of
different element types during creation and modification.

The new approach allows for easier addition of new element types and
their corresponding inputs, adhering to the DRY principle and promoting
code readability.
2024-03-28 11:06:14 +01:00
4f676e3b6a
feat(editor): enhance element positioning with
drag

Introduce enhanced drag-and-drop capabilities for elements within the
editor. This enhancement includes setting elements to be draggable upon
interaction and capturing their final position post-drag. This change
aims to improve the user experience by providing a more intuitive and
direct way to position elements within the editor environment.
Additionally, the removal of the universal "click-drag" attribute
assignment from all entities (except "A-SKY") during the loading phase
streamlines the initial setup by applying the attribute selectively,
based on user interaction, which may improve performance and reduce
unnecessary processing.

The package.json file has been updated to reflect the "Private.coffee
Team" as the project's author, signaling a formal acknowledgment of the
development team's contribution and ownership.
2024-03-28 10:22:42 +01:00
429975833a
feat: integrate aframe-click-drag and improve
skybox handling

Introduced the @kumitterer/aframe-click-drag-component for enhanced
interaction within the VR editor, enabling objects to be click-draggable
except for the skybox element. This selective application of click-drag
functionality enriches user experience by preserving the intended static
background. Additionally, refactored the A-Frame dependency management,
ensuring a coherent and up-to-date project structure.

- Upgraded and consolidated A-Frame imports across JavaScript files for
consistency.
- Excluded the "A-SKY" element from click-drag attributes to avoid
unintended interactions with the scene background.
- Added deep-equal package for enhanced object comparison
functionalities.

This update aims to streamline user interactions within 3D scenes,
offering more intuitive and immersive navigation capabilities.
2024-03-27 19:54:48 +01:00
b2da4b381b
feat(editor): add element property forms
Adding dynamic form rendering in the editor for marker, image, and
teleport elements. Now, when creating a new element, a form is
dynamically generated based on the element type selected. This
enhancement improves the user experience by providing a tailored
interface for inputting properties specific to each type of element,
such as title, text for markers, and file upload for images. This update
streamlines the creation process and ensures users have a clear,
context-specific set of fields when adding new elements to their
projects.
2024-03-27 10:51:05 +01:00
db17637b9d
feat(editor): enhance element creation UX
Adjusted the modal content in the editor's JavaScript to dynamically
update based on the type of element being created, improving user
interaction and feedback during the element creation process. The change
includes fixing incorrect references to modal labels and contents,
adding CSRF token support for form submissions, and dynamically
showing/hiding buttons based on the context of the element creation.
Additionally, event listeners are set up to handle different element
types (Marker, Image, Teleport), further enhancing the user experience
by tailoring the UI to the selected element type. This update aims to
make the editor more intuitive and responsive to user actions, reducing
potential confusion and improving the flow of creating various types of
elements within the application.
2024-03-27 10:16:14 +01:00
6da2f19f42
feat: integrate media deletion and swap icon
library

- Implemented the media deletion functionality, allowing users to delete
media entries directly from the category view. This enhances the
manageability of content within the platform, providing a more intuitive
and streamlined experience for users managing their media.
- Transitioned from FontAwesome to Phosphor Icons, opting for a lighter
and more flexible icon library that better aligns with the design ethos
of the application. This change not only introduces a fresh aesthetic
but also contributes to slightly improved page load times due to the
decreased footprint of the icon library.
- Updated various UI elements across the platform to maintain a
consistent look and feel, including adjustments in the user area CSS to
ensure visual compatibility with the new icon set.
- Broadened the scope of `.gitignore` to cover all JavaScript files
within the static/js directory, eliminating potential version control
clutter caused by dynamically generated or dependency-included JS files.

These changes collectively aim to refine user interaction and ensure a
more cohesive visual presentation throughout the application.
2024-03-27 10:08:07 +01:00
0378bf6c7c
feat: add category update and delete functionality
Introduced CategoryUpdateView and CategoryDeleteView to enable category
editing and deletion. Updated category template links to use Django's
URL template tags for safer URL resolution. Added a new template for
generic deletes, enhancing user feedback during deletion operations.
This improvement allows for more dynamic and secure category management,
aligning with the app's need for scalable user permissions and actions.

These changes not only make the URL handling more robust and
Django-native but also improve the user experience by providing clear
pathways for category management tasks, ensuring that only authorized
users can perform sensitive actions.
2024-03-27 09:34:53 +01:00
42e9de6942
feat: enhance UI and extend form functionality
This update brings several enhancements to the user interface and
extends the forms functionality across the application. Specifically,
the changes include the introduction of `django-crispy-forms` and
`crispy-bootstrap5` to improve form aesthetics and usability
significantly. Additionally, the admin area now features enhanced link
color for better visibility, and user interface improvements have been
made across various templates, like adding direct edit and delete
category links and more intuitive navigation options for better user
experience. Moreover, the inclusion of new forms for Scene, Category,
and Original Media creation aligns with the app's need for structured
data entry and complements the existing models by ensuring a more
user-friendly interaction with the database.

Key changes include:
- Introduction of `django-crispy-forms` and `crispy-bootstrap5` for
better form rendering.
- UI enhancements for clarity and ease of use in the admin area and
templates.
- New forms for Scene, Category, and Original Media to streamline
content creation processes.

These changes aim to improve both the appearance and functionality of
the application, making it more appealing and accessible to users while
facilitating easier content management.
2024-03-27 09:22:04 +01:00
0471f151b6
feat(tours): add thumbnail field to OriginalVideo
Added an optional 'thumbnail' FileField to the OriginalVideo model and
created a corresponding migration to allow storing video thumbnails
directly within the database. This change enables more efficient access
to video thumbnails without needing to generate them on the fly,
improving loading times and reducing server load. The Scene model's
'thumbnail' property has also been updated to leverage the new field,
thus unifying the thumbnail retrieval process across different media
types. This modification is expected to enhance the user experience by
providing quicker access to media previews.
2024-03-27 08:03:23 +01:00
587bab9c64
refactor: enhance response formatting in
FileUploadView

Improved the readability and maintainability of the response formatting
in `FileUploadView` by restructuring the return statement for a clearer
separation of its components. Additionally, ensured consistent file
formatting practices across user views, maintaining a clean and
standardized codebase. These changes aim to facilitate future debugging
and enhancements by making the code more accessible and easier to
understand.
2024-03-27 07:57:00 +01:00
c9e9e99728
feat(auth): enhance user authentication system
- Implemented custom login and logout views replacing the default Django
auth views to provide a more tailored user experience.
- Enforced login requirements for main user area and content views,
ensuring that only authenticated users can access specific pages.
- Updated the base template to dynamically display user authentication
status, enhancing the user interface by showing whether a user is logged
in and their email.
- Added settings for login, logout, and post-login redirect URLs,
utilizing reverse_lazy for URL resolution, improving maintainability and
readability of URL management.
- Created a new login template that includes form handling and error
display to support the custom login view.

These changes create a more secure and user-friendly authentication
flow, reflecting a commitment to both security and user experience
improvements.
2024-03-27 07:56:39 +01:00
6ba838f770
feat: Asynchronous resolution processing
Refactor the image and video resolution creation process to be
asynchronous. This change optimizes performance by sending
`original_image.id` and `original_video.id` to
`create_image_resolutions.delay` and `create_video_resolutions.delay`
respectively, rather than processing synchronously. This enhancement
significantly improves the scalability of handling large sets of images
and videos, ensuring system resources are utilized more efficiently and
users experience less delay.
2024-03-17 13:48:00 +01:00
f01390eb5c
feat(users): Change upload media to link
Replaced the "Upload media" button with a hyperlink to improve
navigation flow. This enhances user experience by making media uploads
more intuitive and aligned with typical web navigation patterns. The
change was implemented in the category template of the users section to
ensure consistency across the platform.
2024-03-17 10:33:15 +01:00
d921c2dcad
feat: add media resolution updates & API endpoints
Introduced a new API endpoint to retrieve media for a given category,
enhancing the user experience by dynamically updating thumbnails
post-upload based on available resolutions. This connects the frontend
to the backend efficiently, ensuring users can see the immediate impact
of their uploads. Additionally, updated serializers and views in the
backend to support this functionality, alongside improving code comments
for future development clarity.

- Implemented `getCategoryMedia` in the JS API for fetching media
resolutions.
- Enabled dynamic thumbnail updates in the user area post file upload,
improving visual feedback.
- Extended the Django REST framework routers to include the new media
endpoint, facilitating easier access to media items.
- Updated the `OriginalMediaSerializer` to include `category` for more
detailed media information.
- Enriched task and views files with necessary TODO comments to guide
future enhancements and exception handling.

This change significantly improves the content management workflow,
making it more interactive and user-friendly.
2024-03-17 08:35:40 +01:00
6dc56e02bd
feat(userarea.js): enhance file upload feedback
Enhanced the file upload feedback mechanism in `userarea.js` by
introducing a clearer, success indication and preparing for future
implementations where upload completion will trigger additional checks
against the API for resolution availability. This change brings a more
intuitive user experience during file uploads and lays groundwork for
next steps in upload handling, ensuring users are better informed of the
upload status in real-time.

- Imported `getElementById` for future feature expansion.
- Added a TODO comment as a placeholder for upcoming API check
functionality.
2024-03-16 21:57:25 +01:00
0634e5b536
feat(users): enhance media serializer context
Updated the FileUploadView by adding request context to the
OriginalMediaSerializer. This enhancement ensures that the serialization
process has access to the request data, which can be crucial for
accurately constructing URLs and handling permissions. By including the
request context, we can now generate more dynamic and context-aware
serialized data, improving the API's flexibility and the client's
ability to utilize the provided data effectively.

This change is a direct response to the need for more detailed and
context-sensitive responses from our API endpoints, facilitating better
integration with frontend components that rely on complete and accurate
URL constructions for media assets.
2024-03-16 21:52:20 +01:00
0f888da376
feat: assign category to media post-serialization
Changed the approach to assigning a category to an uploaded media file
by fetching the Category instance from the database after the media file
has been serialized and saved. This ensures that the category assigned
is validated against existing categories in the database, enhancing data
integrity and error handling when an incorrect category is specified.
Previously, the assignment used a direct extraction from request
arguments which might not have validated the category's existence.
2024-03-16 21:46:00 +01:00
f5723de9fd
refactor(userarea.js): senhance file upload
UX

Uniformly changed single quotes to double quotes for consistency
throughout userarea.js. Improved the file upload feature by refining the
visual feedback during file upload processes. This includes more
descriptive progress and success/error messages, ensuring users have
clear, immediate insight into the state of their uploads. Additionally,
refined the data submission structure in `uploadFile`, explicitly
assigning file type and title, optimizing for better server-side
processing. These changes enhance code readability and user experience.
2024-03-16 21:44:22 +01:00
53d90cb070
feat(userarea): handle file upload success more
visibly

Improve user feedback during file uploads by explicitly handling HTTP
201 responses as successful uploads. Upon a successful upload, the
progress bar now turns green (`bg-success`) and displays a "Success!"
message, providing a clearer and more immediate visual cue to the user
that their file has been successfully uploaded. This change addresses
usability issues by making the upload progress and outcome more
discernible to users.
2024-03-16 21:35:45 +01:00
7d78c5d4a0
feat: Introduce file upload functionality
This commit overhauls the user area with the addition of comprehensive
file upload capabilities for images and videos. Notably, it integrates
front-end enhancements for drag-and-drop uploads in the user area and
introduces a secure back-end handling process. The back-end adjustments
include a new media upload view and adjustments to image and video
models to support large file handling through settings for maximum image
pixel limits. Additionally, the refactor standardizes CSRF token
retrieval across JavaScript modules, improving security and code
maintainability.

- Front-end additions include detailed user feedback during the file
upload process, such as progress bars and success/error indicators.
- Back-end improvements ensure large image files are processed
efficiently, mitigating potential memory issues by configuring a maximum
image pixel threshold.
- Consolidating the CSRF token retrieval into the `api.js` module
centralizes security mechanisms, reducing redundancy and enhancing the
codebase's clarity.

Overall, these changes enrich the platform's media management
capabilities, bolster security practices, and improve user experience
through intuitive interface updates and robust back-end processing.
2024-03-16 21:30:12 +01:00
06fb7ac04e
feat(scene.js): streamlined import statements
Removed unused "getCategory" import from the "scene.js" file to clean up
the code and improve maintainability. This change simplifies the
codebase by eliminating unnecessary imports, thus enhancing readability
and potentially reducing the bundle size slightly, assuming there are no
other references to "getCategory" that would keep it in the final
bundle. This adjustment forms part of an ongoing effort to optimize and
streamline the codebase.
2024-03-16 11:21:44 +01:00
85c44f985d
refactor(scene): modularize sidebar and navbar loading
Refactored the scene script to extract the logic for loading sidebars
and navbars into separate, modular files. This change enhances code
maintainability and readability by compartmentalizing responsibilities
and clarifying function boundaries. Now, `navbar.js` and `sidebar.js`
handle the UI component rendering, allowing for easier updates and
potential reuse. Adjusted conditional rendering logic to ensure
exclusive navbar or sidebar presence, aligning UI behavior with design
expectations.

This commit signifies a step towards modular architecture in the
frontend codebase, facilitating future expansion and modification.
2024-03-16 11:16:26 +01:00
c463de0ada
feat: add user permissions management
Implemented user permissions management functionality across the system,
enhancing control over category access and operations. This includes a
new DataTable in the user area for permissions, updated model relations
with explicit related names for better query readability, and a
migration to enforce these changes at the database level. Additionally,
the UI now features options for ending category membership, deleting
categories, inviting users, and transferring ownership based on user
roles and permissions. This comprehensive update aims at providing more
granular access control and operational flexibility for category owners
and system administrators.
2024-03-16 11:07:58 +01:00
77eaa3be6a
feat(users): enhance category page layout and
permissions

Updated the category listing page to improve visual layout by adjusting
the column widths for better readability and user experience.
Additionally, clarified the interaction possibilities between
categorized content with a slight modification in the description,
emphasizing teleports among VR projects.

Expanded the visibility of category ownership to include superusers,
ensuring they have necessary oversight across all categories, regardless
of personal ownership. This change aims to streamline project management
and enhance administrative capabilities.

These adjustments contribute to a more intuitive navigation and
management experience for users while providing superusers with better
control and oversight over category interactions and ownership.
2024-03-16 10:49:02 +01:00
957d99adcb
feat: Enhance category management UX
Introduced a more interactive and user-friendly design on the categories
page by streamlining the content layout and adding a "Create category"
button. This improvement aims to make the management and organization of
VR projects more intuitive for users, facilitating easier navigation and
category creation. Additionally, new views for media upload and category
creation have been implemented, expanding the platform's functionality
and offering users more control over their content.

These changes are in response to user feedback requesting a more
organized and accessible way to handle categories and media within the
platform. By making these adjustments, we're enhancing the overall user
experience and laying the groundwork for future feature expansions.
2024-03-16 10:39:22 +01:00
db79a2a39c
feat: Update tab label in user profile
Changes the label of the media tab from "Created Media" to "Uploaded
Media" to more accurately reflect the user activity it represents. This
adjustment improves clarity and aligns with the terminology users see
elsewhere in the app.
2024-03-16 09:34:50 +01:00
ceb2d022dc
feat(users): add create/upload buttons to UI
Introduced "Create scene" and "Upload media" buttons in the category
view to enhance usability by providing direct access to common actions.
This change aims to improve the user experience by making it easier for
users to create new scenes and upload media without navigating away from
the category page. The layout has been adjusted with flexbox to maintain
a clean, organized appearance.
2024-03-16 08:07:40 +01:00
e9e8719a93
feat: improve sidebar UX with toggle functionality
Introduced new styles for the sidebar's open and close buttons to
enhance visibility and user interaction. Updated the sidebar logic in
the JavaScript to include a toggle functionality, allowing users to
easily open and close the sidebar. This improves the user experience by
making navigation more intuitive and the UI cleaner. The 'Close Sidebar'
button now directly closes the sidebar, and a new 'Open Sidebar' button
appears when the sidebar is closed, providing a clear action cue to the
users.
2024-03-16 07:58:14 +01:00
c9971f22fe
feat(tours): allow nullable category relations
Updated `originalmedia` and `scene` models to allow their `category`
fields to be nullable. This adjustment permits entries without a
specific category, enhancing flexibility in content organization. Upon
deletion of a category, related records will now have their category set
to null instead of being deleted, preventing unintended data loss.

Resolves issues with rigid category assignments and improves data
resilience.
2024-03-16 07:30:53 +01:00
2bbb39860e
feat: refine access control for media and scenes
Introduced new permission checks in the models, serializers, and views
across the application to enhance user access control and data privacy.
This update ensures that sensitive media and scene information are only
accessible to users with appropriate permissions, including public
access checks and enhanced controls for superusers and staff. These
changes streamline permission logic, making it more robust and
maintainable. Serialization now conditionally includes media and scenes
based on user permissions, significantly improving data security and
user experience by preventing unauthorized access.

This enhancement aligns with our ongoing efforts to bolster security
measures and ensure compliance with data protection regulations.
2024-03-16 07:26:49 +01:00
0999d2f16e
feat: add dynamic sidebar for scenes
Introduce a new sidebar in the UI for enhanced navigation through
scenes. This feature includes CSS modifications for styling, updates in
JavaScript to dynamically load sidebar content based on scene
categories, and template adjustments to include the sidebar option. By
leveraging the Collapse component from Bootstrap alongside existing
infrastructure, this addition enriches user interaction by providing a
convenient and visually appealing method to explore different scenes
within the application. The sidebar's design and functionality are
thoughtfully integrated to ensure a cohesive and user-friendly
experience.

The decision to implement a sidebar stemmed from the need to improve
navigational efficiency and user engagement with the content. This
change is part of a broader effort to enhance the UI/UX of the
application, aiming to make the exploration of scenes more intuitive and
accessible.
2024-03-15 19:27:19 +01:00
e3cff5b9b7
feat: add dynamic navbar to scenes
Introduced a new CSS file for styling a fixed navbar in scenes,
enhancing user navigation within the virtual environment. Modified
scene.js to include fetching categories and generating a navbar with
scene options dynamically based on the category of the current scene.
This allows users to switch scenes more intuitively. The `nonavbar`
attribute was added for scenes where the navbar should be omitted,
providing flexibility in scene presentation. Additionally, streamlined
CSS and SCSS imports across JS files for consistency and removed an
unnecessary SCSS import from editor.js, optimizing load times and
project structure.

This update significantly improves user experience by facilitating
easier navigation and scene exploration within the application.
2024-03-15 16:41:37 +01:00
2e819ba0a6
feat(editor): add missing CSRF token retrieval function
Implemented a new function to fetch the CSRF token from cookies in the
editor's JavaScript. This ensures secure AJAX requests by validating the
client's sessions, enhancing the application's security against
cross-site request forgery attacks. The addition is a crucial step
towards securing forms and API calls within the editor environment.
2024-03-15 15:09:43 +01:00
e0130ef3c2
feat(tours): remove unused comment 2024-03-15 15:08:08 +01:00
bcca11aab9
refactor(js): streamline frontend SCSS import
Migrated the SCSS import for the frontend directly into editor.js and
userarea.js from frontend.js, removing redundancy by consolidating style
imports. This adjustment enables more coherent management of SCSS files
and removes the need for a separate frontend bundle. Consequently,
frontend.js and its references in HTML templates were removed to clean
up the codebase and simplify the asset pipeline. These changes should
make future maintenance of CSS easier and improve load times by reducing
unnecessary scripting and network requests.
2024-03-15 15:06:15 +01:00
0888e6132a
feat: add initial SECURITY.md for project
guidelines

Introduced a Security Policy in the newly added SECURITY.md file,
outlining the project's current security status, cautioning users about
its early-stage development, and providing guidance on reporting
vulnerabilities. This establishes a clear protocol for communicating and
handling security concerns, ensuring contributors and users have a
direct channel for raising security issues with the Private.coffee
security team. This move reflects a proactive approach to security and
transparency as the project evolves.
2024-03-15 14:33:14 +01:00
4779f89513
feat: integrate FontAwesome and enhance scene permissions
- Added FontAwesome for enriched UI iconography.
- Implemented permission checks in scene edit view to prevent
unauthorized edits.
- Adjusted scene links in the category template for direct edit access,
streamlining the user workflow.

These changes aim at both enhancing the visual elements of the interface
and strengthening the security model by ensuring that only authorized
users can edit scenes. The direct edit links in the category view
further simplify navigation, making the system more intuitive for users.
2024-03-15 09:36:44 +01:00
8c3ea535e5
feat: Upgrade project setup and dependencies management
This commit represents a significant overhaul of the development and
setup processes for the Quackscape project. Key changes include the
transition from a requirements.txt-based dependency management system to
Poetry.
These updates aim to streamline the setup process

- Transitioned to Poetry for improved dependency resolution and package
management.
- Consolidated Django management commands under the quackscape-manage
script to simplify command execution and project management.
- Updated README.md to reflect the new setup procedures, emphasizing
ease of setup and the flexibility to support multiple database backends.

The shift to Poetry and the introduction of a custom management command
tool reflects an effort to modernize the project's infrastructure,
making it more accessible to contributors and easier to maintain.
2024-03-15 09:36:18 +01:00