+
+
diff --git a/frontend/src/views/migrate/icons/csv.svg b/frontend/src/views/migrate/icons/csv.svg
new file mode 100644
index 000000000..944ffe17d
--- /dev/null
+++ b/frontend/src/views/migrate/icons/csv.svg
@@ -0,0 +1,16 @@
+
diff --git a/frontend/src/views/migrate/icons/wekan.png b/frontend/src/views/migrate/icons/wekan.png
new file mode 100644
index 000000000..acdff9d99
Binary files /dev/null and b/frontend/src/views/migrate/icons/wekan.png differ
diff --git a/frontend/src/views/migrate/migrators.ts b/frontend/src/views/migrate/migrators.ts
index 8174e1e21..82c43f161 100644
--- a/frontend/src/views/migrate/migrators.ts
+++ b/frontend/src/views/migrate/migrators.ts
@@ -4,11 +4,14 @@ import trelloIcon from './icons/trello.svg?url'
import microsoftTodoIcon from './icons/microsoft-todo.svg?url'
import vikunjaFileIcon from './icons/vikunja-file.png?url'
import tickTickIcon from './icons/ticktick.svg?url'
+import wekanIcon from './icons/wekan.png?url'
+import csvIcon from './icons/csv.svg?url'
export interface Migrator {
id: string
name: string
isFileMigrator?: boolean
+ isCSVMigrator?: boolean
icon: string
}
@@ -49,4 +52,17 @@ export const MIGRATORS = {
icon: tickTickIcon as string,
isFileMigrator: true,
},
+ wekan: {
+ id: 'wekan',
+ name: 'WeKan ®',
+ icon: wekanIcon,
+ isFileMigrator: true,
+ },
+ csv: {
+ id: 'csv',
+ name: 'CSV',
+ icon: csvIcon as string,
+ isFileMigrator: true,
+ isCSVMigrator: true,
+ },
} as const satisfies IMigratorRecord
diff --git a/frontend/src/views/tasks/ShowTasks.vue b/frontend/src/views/tasks/ShowTasks.vue
index dde1025f7..155e79012 100644
--- a/frontend/src/views/tasks/ShowTasks.vue
+++ b/frontend/src/views/tasks/ShowTasks.vue
@@ -87,6 +87,7 @@
:key="task.id"
:show-project="true"
:the-task="task"
+ :can-mark-as-done="(projectStore.projects[task.projectId]?.maxPermission ?? 0) > PERMISSIONS.READ"
@taskUpdated="updateTasks"
/>
@@ -123,6 +124,7 @@ import {useProjectStore} from '@/stores/projects'
import {useLabelStore} from '@/stores/labels'
import type {TaskFilterParams} from '@/services/taskCollection'
import TaskCollectionService from '@/services/taskCollection'
+import {PERMISSIONS} from '@/constants/permissions'
const props = withDefaults(defineProps<{
dateFrom?: Date | string,
diff --git a/frontend/src/views/tasks/TaskDetailView.vue b/frontend/src/views/tasks/TaskDetailView.vue
index 11eaf0900..d99d3f5ec 100644
--- a/frontend/src/views/tasks/TaskDetailView.vue
+++ b/frontend/src/views/tasks/TaskDetailView.vue
@@ -55,6 +55,11 @@
class="has-text-grey-light"
> >
+