Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
f0bdc63
fix(ui): resolve delayed attachment warning and text overflow (#351, …
suraj-yadav0 Sep 23, 2026
dad35ec
Modularize backend into submodules and add storage unit tests
suraj-yadav0 Sep 23, 2026
6076373
Add unit test suites covering auth, voice, attachments, sync, and fac…
suraj-yadav0 Sep 23, 2026
39efb13
ci: add GitHub Actions workflow for backend unit tests
suraj-yadav0 Sep 24, 2026
447777a
Merge branch 'release/v1.3.4' into refactor/modularize-backend
suraj-yadav0 Sep 25, 2026
2123eda
test(qml): add test suites for CustomDatePicker and GlobalTimerWidget…
suraj-yadav0 Sep 25, 2026
20bfb59
ci(qml): use containerized Clickable test runner in GitHub Actions
suraj-yadav0 Sep 25, 2026
5c8b264
ci(qml): ensure Clickable target build directory exists before testing
suraj-yadav0 Sep 25, 2026
1cc43ab
Add TSSearchBar QML tests and update documentation
parvathyabnair Sep 29, 2026
a6aca9a
Add TSLabel.qml tests and update documentation
parvathyabnair Sep 29, 2026
2aaba3f
Add TSProgressbar.qml tests and update documentation
parvathyabnair Sep 30, 2026
57642e6
[EDITED] TSLabel.qml & TSSearchbar tests
parvathyabnair Sep 30, 2026
03e84ee
[ADDED] tst_outlinedtextfield.qml test script and updated documentation
parvathyabnair Sep 30, 2026
5d95c89
[ADDED] TSIconButton.qml test script & updated the documentation
parvathyabnair Sep 30, 2026
3e10352
[ADDED] TSSwitch.qml test script & updated documentation
parvathyabnair Sep 30, 2026
f371d74
[ADDED] TSButton.qml test script & updated documentation
parvathyabnair Sep 30, 2026
7b1b71b
Merge pull request #372 from parvathyabnair/refactor/modularize-backend
suraj-yadav0 Oct 1, 2026
aba0a09
Merge pull request #373 from CITOpenRep/refactor/modularize-backend
suraj-yadav0 Oct 1, 2026
4e19a99
Add unit tests for core JS utilities and timer
suraj-yadav0 Oct 1, 2026
4181fb3
Organize JS tests into models subfolder
suraj-yadav0 Oct 1, 2026
ad28b88
Merge pull request #374 from CITOpenRep/test/363-js-core-unit-tests
suraj-yadav0 Oct 1, 2026
5d73391
Remove scratch scripts, unused assets, and broken symlink
suraj-yadav0 Oct 5, 2026
ec369a6
Merge pull request #375 from CITOpenRep/cleanup/371-remove-scratch-sc…
suraj-yadav0 Oct 6, 2026
b13cb33
Add unit tests for storage, database, and draft manager
suraj-yadav0 Oct 6, 2026
9cca96d
Merge pull request #376 from CITOpenRep/test/364-js-storage-unit-tests
suraj-yadav0 Oct 6, 2026
34c2c99
feat(dashboard): add multi-employee filtering, cross-account aggregat…
parvathyabnair Oct 9, 2026
438d470
Fix(Dashboard): resolve employee filtering, cross-server user ID isol…
parvathyabnair Oct 9, 2026
0d413ab
Fix(dashbaord): test_delegateLayoutAndClick Failure & Clear Filter an…
parvathyabnair Oct 12, 2026
faa1a73
Fix delegate re-render in assignee filter test
suraj-yadav0 Oct 12, 2026
844391b
Unit tests for QML Dialogs and Feedback components
parvathyabnair Oct 12, 2026
57b6911
Merge pull request #377 from parvathyabnair/release/v1.3.5
suraj-yadav0 Oct 12, 2026
800a0f6
Merge branch 'release/v1.3.4' of https://github.com/CITOpenRep/timema…
parvathyabnair Oct 13, 2026
d8d32c9
Merge pull request #378 from parvathyabnair/test-scripts
suraj-yadav0 Oct 13, 2026
f0cc44b
Add unit tests for JavaScript data models
suraj-yadav0 Oct 13, 2026
8fcefb0
Merge pull request #379 from CITOpenRep/test/365-js-data-models
suraj-yadav0 Oct 13, 2026
d3fe645
Unit tests for QML Pickers and Selectors
parvathyabnair Oct 13, 2026
b7107c3
Add unit tests for feature scripts and helpers
suraj-yadav0 Oct 13, 2026
2cbb6b9
Merge branch 'release/v1.3.4' of https://github.com/CITOpenRep/timema…
parvathyabnair Oct 14, 2026
7725cb6
Load squire bridge dynamically and expand script tests
suraj-yadav0 Oct 14, 2026
fddf9b0
Merge pull request #381 from CITOpenRep/test/366-js-feature-scripts
suraj-yadav0 Oct 14, 2026
6742c39
"merged"
parvathyabnair Oct 14, 2026
49e1457
test: restore AssigneeFilterMenu tests and stabilize picker/selector …
parvathyabnair Oct 14, 2026
30c42c1
Merge pull request #380 from parvathyabnair/test-scripts
suraj-yadav0 Oct 14, 2026
f3bad9d
Unit tests for QML Cards, Workflow, System, and Visualization components
parvathyabnair Oct 15, 2026
28062c0
Unit tests for QML Feature-specific components #362
parvathyabnair Oct 16, 2026
2b9a2fa
Resolved the requested changes
parvathyabnair Oct 19, 2026
9c87fe0
resolved requested changes
parvathyabnair Oct 19, 2026
d57ca9b
Bump version to 1.3.4 and fix hardcoded click path
suraj-yadav0 Oct 22, 2026
c7d13d9
Merge pull request #382 from parvathyabnair/test-scripts
suraj-yadav0 Oct 22, 2026
b827cba
Merge branch 'release/v1.3.4' into test-scripts-2
suraj-yadav0 Oct 22, 2026
3bf83fa
Merge pull request #383 from parvathyabnair/test-scripts-2
suraj-yadav0 Oct 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions .github/workflows/qml-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: QML Tests

on:
push:
branches:
- main
- dev
- 'release/**'
- 'refactor/**'
- 'fix/**'
paths:
- 'qml/**'
- 'tests/qml/**'
- 'models/**'
- '.github/workflows/qml-tests.yml'
pull_request:
branches:
- main
- dev
- 'release/**'
paths:
- 'qml/**'
- 'tests/qml/**'
- 'models/**'
- '.github/workflows/qml-tests.yml'
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
qml-component-tests:
name: QML Component Tests
runs-on: ubuntu-22.04

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'

- name: Install Clickable
run: |
python -m pip install --upgrade pip
pip install clickable-ut

- name: Prepare build directory
run: mkdir -p build/x86_64-linux-gnu/app

- name: Run QML Component Tests
run: |
clickable test --non-interactive --arch amd64
46 changes: 46 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Tests

on:
push:
branches:
- main
- dev
- 'release/**'
- 'refactor/**'
- 'fix/**'
pull_request:
branches:
- main
- dev
- 'release/**'
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
backend-unit-tests:
name: Python Unit Tests (Python ${{ matrix.python-version }})
runs-on: ubuntu-22.04
strategy:
matrix:
python-version: ['3.10', '3.12']

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pytest urllib3 requests

- name: Run Backend Unit Tests
run: |
pytest tests/python -v
1 change: 1 addition & 0 deletions clickable.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ clickable_minimum_required: 8.0.0
builder: cmake
kill: qmlscene
skip_review: true
test: qmltestrunner -input tests/qml -import tests/qml
dependencies_target:
- libatomic1
dependencies_host:
Expand Down
2 changes: 1 addition & 1 deletion manifest.json.in
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
"push-helper": "ubtms-push-helper.json"
}
},
"version": "1.3.3",
"version": "1.3.4",
"maintainer": "CIT Services <info@cit-services.eu>",
"framework" : "@CLICK_FRAMEWORK@"
}
36 changes: 25 additions & 11 deletions models/Main.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
.import "database.js" as DBCommon
.import QtQuick.LocalStorage 2.7 as Sql
.import "accounts.js" as Account
.import "../models/dbinit.js" as DbInit

/* Name: get_quadrant_current_week
* This function will return total of spent time for current week based on quadrants from timesheet entries
* 4 quadrants are as following
* 0 -> Urgent and Important
* 1 -> Import but not Urgent
* 2 -> Not Important but Urgent
* 3 -> Not Important and Not Urgent
*/

.import "../models/dbinit.js" as DbInit
* This function will return total of spent time for current week based on quadrants from timesheet entries
* 4 quadrants are as following
* 0 -> Urgent and Important
* 1 -> Import but not Urgent
* 2 -> Not Important but Urgent
* 3 -> Not Important and Not Urgent
*/
DbInit.initializeDatabase();

function get_quadrant_difference() {
Expand Down Expand Up @@ -74,7 +74,7 @@ function get_quadrant_current_month() {
* return format {<project name>: <spent hours>}
*/

function get_projects_spent_hours(account, startDate, endDate) {
function get_projects_spent_hours(account, startDate, endDate, userId) {
var project_details = [];

try {
Expand Down Expand Up @@ -121,6 +121,13 @@ function get_projects_spent_hours(account, startDate, endDate) {
conditions.push("DATE(a.record_date) <= DATE(?)");
params.push(endDate);
}
if (userId !== undefined && userId !== null && userId !== -1 && userId !== "-1") {
var userFilter = Account.buildUserFilterSQL(userId, account, "a");
if (userFilter.clause) {
conditions.push(userFilter.clause);
params = params.concat(userFilter.params);
}
}

query += "WHERE " + conditions.join(" AND ") + " ";
query += "GROUP BY p.account_id, p.id, p.name, parent.name, s.name ORDER BY total DESC";
Expand Down Expand Up @@ -148,7 +155,7 @@ function get_projects_spent_hours(account, startDate, endDate) {
* return format {<task name>: <spent hours>}
*/

function get_tasks_spent_hours(account, startDate, endDate) {
function get_tasks_spent_hours(account, startDate, endDate, userId) {
var task_details = {};

try {
Expand Down Expand Up @@ -186,6 +193,13 @@ function get_tasks_spent_hours(account, startDate, endDate) {
conditions.push("DATE(a.record_date) <= DATE(?)");
params.push(endDate);
}
if (userId !== undefined && userId !== null && userId !== -1 && userId !== "-1") {
var userFilterTask = Account.buildUserFilterSQL(userId, account, "a");
if (userFilterTask.clause) {
conditions.push(userFilterTask.clause);
params = params.concat(userFilterTask.params);
}
}

query += "WHERE " + conditions.join(" AND ") + " ";
query += "GROUP BY a.task_id, t.name ORDER BY total DESC";
Expand Down
Loading
Loading