vikunja/frontend/src/models/project.ts
kolaente ec1ff80791
fix(kanban): save done and default bucket on the view and not on the project
The frontend was still trying to update the two in the project which won't work since they are now saved at the view level, not the project.
2024-04-06 13:32:54 +02:00

56 lines
1.5 KiB
TypeScript

import AbstractModel from './abstractModel'
import TaskModel from '@/models/task'
import UserModel from '@/models/user'
import SubscriptionModel from '@/models/subscription'
import type {IProject} from '@/modelTypes/IProject'
import type {IUser} from '@/modelTypes/IUser'
import type {ITask} from '@/modelTypes/ITask'
import type {ISubscription} from '@/modelTypes/ISubscription'
import ProjectViewModel from '@/models/projectView'
export default class ProjectModel extends AbstractModel<IProject> implements IProject {
id = 0
title = ''
description = ''
owner: IUser = UserModel
tasks: ITask[] = []
isArchived = false
hexColor = ''
identifier = ''
backgroundInformation: unknown | null = null
isFavorite = false
subscription: ISubscription = null
position = 0
backgroundBlurHash = ''
parentProjectId = 0
views = []
created: Date = null
updated: Date = null
constructor(data: Partial<IProject> = {}) {
super()
this.assignData(data)
this.owner = new UserModel(this.owner)
// Make all tasks to task models
this.tasks = this.tasks.map(t => {
return new TaskModel(t)
})
if (this.hexColor !== '' && this.hexColor.substring(0, 1) !== '#') {
this.hexColor = '#' + this.hexColor
}
if (typeof this.subscription !== 'undefined' && this.subscription !== null) {
this.subscription = new SubscriptionModel(this.subscription)
}
this.views = this.views.map(v => new ProjectViewModel(v))
this.created = new Date(this.created)
this.updated = new Date(this.updated)
}
}