Merge branch 'release' into develop

This commit is contained in:
SabreCat 2022-08-24 11:06:11 -05:00
commit 6e19a0ef2e
7 changed files with 28 additions and 18 deletions

View file

@ -26,7 +26,7 @@ async function updateTeamTasks (team) {
const userTask = find(teamUserTasks, task => task.userId === assignedUserId
&& task.group.taskId === boardTask._id);
if (!boardTask.group.assignedUsersDetail) boardTask.group.assignedUsersDetail = {};
if (userTask) {
if (userTask && assignedUser) {
boardTask.group.assignedUsersDetail[assignedUserId] = {
assignedDate: userTask.group.assignedDate,
assignedUsername: assignedUser.auth.local.username,
@ -34,8 +34,7 @@ async function updateTeamTasks (team) {
completed: userTask.completed || false,
completedDate: userTask.dateCompleted,
};
toSave.push(Tasks.Task.findByIdAndDelete(userTask._id));
} else {
} else if (assignedUser) {
boardTask.group.assignedUsersDetail[assignedUserId] = {
assignedDate: new Date(),
assignedUsername: assignedUser.auth.local.username,
@ -43,7 +42,11 @@ async function updateTeamTasks (team) {
completed: false,
completedDate: null,
};
} else {
const taskIndex = boardTask.group.assignedUsers.indexOf(assignedUserId);
boardTask.group.assignedUsers.splice(taskIndex, 1);
}
if (userTask) toSave.push(Tasks.Task.findByIdAndDelete(userTask._id));
}
boardTask.markModified('group');
toSave.push(boardTask.save());

2
package-lock.json generated
View file

@ -1,6 +1,6 @@
{
"name": "habitica",
"version": "4.241.0",
"version": "4.241.2",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View file

@ -1,7 +1,7 @@
{
"name": "habitica",
"description": "A habit tracker app which treats your goals like a Role Playing Game.",
"version": "4.241.0",
"version": "4.241.2",
"main": "./website/server/index.js",
"dependencies": {
"@babel/core": "^7.18.13",

View file

@ -6,6 +6,7 @@
hide-footer="hide-footer"
:no-close-on-backdrop="true"
:no-close-on-esc="true"
:centered="true"
>
<div
slot="modal-header"
@ -96,8 +97,6 @@
<style lang="scss">
@import '~@/assets/scss/colors.scss';
#group-plans-update {
overflow-y: hidden;
.modal-content {
border-top-left-radius: 10px;
border-top-right-radius: 10px;
@ -107,8 +106,7 @@
.modal-dialog {
max-width: 566px;
margin-top: 50vh;
transform: translateY(-50%);
margin-top: 0px;
}
.modal-header {

View file

@ -79,7 +79,6 @@
<lockable-label
class="mr-auto"
:class-override="cssClass('headings')"
:locked="challengeAccessRequired"
:text="`${$t('notes')}`"
/>
<small
@ -96,7 +95,6 @@
v-model="task.notes"
class="form-control input-notes"
:class="cssClass('input')"
:disabled="challengeAccessRequired"
:placeholder="$t('addNotes')"
></textarea>
</div>
@ -363,7 +361,7 @@
</div>
</div>
<div
v-if="!challengeAccessRequired && !groupId"
v-if="!groupId"
class="tags-select option mt-3"
>
<div class="tags-inline form-group row">

View file

@ -961,7 +961,8 @@ api.scoreCheckListItem = {
if (!task || (!task.userId && !task.group.id)) throw new NotFound(res.t('messageTaskNotFound'));
if (task.userId && task.userId !== user._id) {
throw new BadRequest('Cannot score task belonging to another user.');
} else if (user.guilds.indexOf(task.group.id) === -1 && user.party._id !== task.group.id) {
} else if (task.group.id && user.guilds.indexOf(task.group.id) === -1
&& user.party._id !== task.group.id) {
throw new BadRequest('Cannot score task belonging to another user.');
}
if (task.type !== 'daily' && task.type !== 'todo') throw new BadRequest(res.t('checklistOnlyDailyTodo'));

View file

@ -156,6 +156,7 @@ async function getTasks (req, res, options = {}) {
let limit;
let sort;
let upgradedGroups = [];
const upgradedGroupIds = [];
const owner = group || challenge || user;
if (challenge) {
@ -179,15 +180,19 @@ async function getTasks (req, res, options = {}) {
).exec();
}
if (upgradedGroups.length > 0) {
const upgradedGroupIds = [];
for (const upgradedGroup of upgradedGroups) {
upgradedGroupIds.push(upgradedGroup._id);
}
query = {
$or: [
{ userId: user._id },
{ 'group.assignedUsers': user._id },
{ 'group.id': { $in: upgradedGroupIds }, 'group.assignedUsers.0': { $exists: false } },
{
'group.id': { $in: upgradedGroupIds },
$or: [
{ 'group.assignedUsers': user._id },
{ 'group.assignedUsers.0': { $exists: false } },
],
},
],
};
} else {
@ -214,8 +219,13 @@ async function getTasks (req, res, options = {}) {
if (upgradedGroups.length > 0) {
query.$or = [
{ userId: user._id },
{ 'group.assignedUsers': user._id },
{ 'group.completedBy.userId': user._id },
{
'group.id': { $in: upgradedGroupIds },
$or: [
{ 'group.assignedUsers': user._id },
{ 'group.completedBy.userId': user._id },
],
},
];
} else if (owner._id === user._id) {
query.userId = user._id;