gws.plugin.qfieldcloud.action_base¶
QField Cloud API action: projects, capabilities, packaging and directories.
Source code: gws.plugin.qfieldcloud.action_base
Module Contents¶
- class gws.plugin.qfieldcloud.action_base.BaseAction¶
Bases:
gws.base.action.ObjectBase of the QField Cloud API action.
Holds the configured QField projects and the authorization method, caches the project capabilities, creates packages and manages the project directories. Request handling is done by
action_handler.Handler.- authMethod: gws.plugin.qfieldcloud.auth.Object¶
Authorization method for QField clients.
- capsCache: dict[str, gws.plugin.qfieldcloud.caps.Caps]¶
Capabilities by QField project uid. Not serialized.
- qfcProjects: list[gws.plugin.qfieldcloud.core.QfcProject]¶
Configured QField projects.
- cleanup_old_packages(qfc_project: gws.plugin.qfieldcloud.core.QfcProject, keep_seconds: int = 3600)¶
Remove package directories older than
keep_seconds.- Parameters:
qfc_project – QField project.
keep_seconds – Maximum age in seconds.
- configure()¶
- create_package_from_cli(qfc_project_uid: str, target_dir: str, project: gws.Project | None, user: gws.User)¶
Create a package in a given directory.
- Parameters:
qfc_project_uid – QField project uid.
target_dir – Directory to write the package into.
project – GWS project context.
user – User the package is created for.
- Raises:
gws.NotFoundError – If the QField project is not found.
- create_package_from_worker(worker: PackageWorker, pa: WorkerPayload)¶
Create a package in a new package directory. Called by the package worker.
Packages older than an hour are removed first.
- Parameters:
worker – Package worker.
pa – Job payload.
- deltas_db_path(qfc_project: gws.plugin.qfieldcloud.core.QfcProject) str¶
Return the path of the delta database of a QField project.
- Parameters:
qfc_project – QField project.
- Returns:
File path.
- get_cached_caps(qfc_project: gws.plugin.qfieldcloud.core.QfcProject) gws.plugin.qfieldcloud.caps.Caps | None¶
Return cached capabilities, if the QGIS project source has not changed.
- Parameters:
qfc_project – QField project.
- Returns:
Capabilities, or
Noneif not cached or outdated.
- get_caps(qfc_project: gws.plugin.qfieldcloud.core.QfcProject) gws.plugin.qfieldcloud.caps.Caps¶
Return the capabilities of a QField project, from the cache if they are still valid.
- Parameters:
qfc_project – QField project.
- Returns:
Capabilities.
- get_db_provider(qfc_project: gws.plugin.qfieldcloud.core.QfcProject) gws.DatabaseProvider¶
Return the database provider of the models of a QField project.
- Parameters:
qfc_project – QField project.
- Returns:
Database provider.
- Raises:
gws.Error – If the project has no models, or its models use more than one database provider.
- get_job(job_id: str, user: gws.User) gws.Job | None¶
Return a job of a user.
- Parameters:
job_id – Job uid.
user – User.
- Returns:
The job, or
Noneif not found.
- get_packager() gws.plugin.qfieldcloud.packager.Object¶
Return a new packager. Override to use a custom packager.
- Returns:
Packager.
- get_patcher() gws.plugin.qfieldcloud.patcher.Object¶
Return a new patcher. Override to use a custom patcher.
- Returns:
Patcher.
- get_qfc_project(qfc_project_uid: str, user: gws.User) gws.plugin.qfieldcloud.core.QfcProject | None¶
Return a QField project if the user can use it.
- Parameters:
qfc_project_uid – QField project uid.
user – User.
- Returns:
QField project, or
Noneif not found.
- get_qfc_projects(user: gws.User) list[gws.plugin.qfieldcloud.core.QfcProject]¶
Return the QField projects a user can use.
- Parameters:
user – User.
- Returns:
QField projects.
- latest_package_dir(qfc_project: gws.plugin.qfieldcloud.core.QfcProject) str | None¶
Return the directory of the latest complete package.
- Parameters:
qfc_project – QField project.
- Returns:
Directory path, or
Noneif there is no complete package.
- latest_package_path_map(qfc_project: gws.plugin.qfieldcloud.core.QfcProject) dict[str, str]¶
Return the path map of the latest package of a QField project.
- Parameters:
qfc_project – QField project.
- Returns:
Paths on disk by package file name, empty if there is no package.
- new_package_dir(qfc_project: gws.plugin.qfieldcloud.core.QfcProject, uid: str) str¶
Create a directory for a new package.
- Parameters:
qfc_project – QField project.
uid – Package uid.
- Returns:
Directory path.
- project_base_dir(qfc_project: gws.plugin.qfieldcloud.core.QfcProject) str¶
Return the base directory of a QField project, creating it if needed.
The directory is
<VAR_DIR>/qfieldcloud/projects/<uid>. Packages, caches and stored deltas are kept below it.- Parameters:
qfc_project – QField project.
- Returns:
Directory path.
- project_cache_dir(qfc_project: gws.plugin.qfieldcloud.core.QfcProject) str¶
Return the cache directory of a QField project, creating it if needed.
- Parameters:
qfc_project – QField project.
- Returns:
Directory path.