Fix sprint creation.
This commit is contained in:
3
app.py
3
app.py
@@ -3772,6 +3772,7 @@ def create_task():
|
|||||||
estimated_hours=float(data.get('estimated_hours')) if data.get('estimated_hours') else None,
|
estimated_hours=float(data.get('estimated_hours')) if data.get('estimated_hours') else None,
|
||||||
project_id=project_id,
|
project_id=project_id,
|
||||||
assigned_to_id=int(data.get('assigned_to_id')) if data.get('assigned_to_id') else None,
|
assigned_to_id=int(data.get('assigned_to_id')) if data.get('assigned_to_id') else None,
|
||||||
|
sprint_id=int(data.get('sprint_id')) if data.get('sprint_id') else None,
|
||||||
start_date=start_date,
|
start_date=start_date,
|
||||||
due_date=due_date,
|
due_date=due_date,
|
||||||
created_by_id=g.user.id
|
created_by_id=g.user.id
|
||||||
@@ -3848,6 +3849,8 @@ def update_task(task_id):
|
|||||||
task.estimated_hours = float(data['estimated_hours']) if data['estimated_hours'] else None
|
task.estimated_hours = float(data['estimated_hours']) if data['estimated_hours'] else None
|
||||||
if 'assigned_to_id' in data:
|
if 'assigned_to_id' in data:
|
||||||
task.assigned_to_id = int(data['assigned_to_id']) if data['assigned_to_id'] else None
|
task.assigned_to_id = int(data['assigned_to_id']) if data['assigned_to_id'] else None
|
||||||
|
if 'sprint_id' in data:
|
||||||
|
task.sprint_id = int(data['sprint_id']) if data['sprint_id'] else None
|
||||||
if 'start_date' in data:
|
if 'start_date' in data:
|
||||||
task.start_date = datetime.strptime(data['start_date'], '%Y-%m-%d').date() if data['start_date'] else None
|
task.start_date = datetime.strptime(data['start_date'], '%Y-%m-%d').date() if data['start_date'] else None
|
||||||
if 'due_date' in data:
|
if 'due_date' in data:
|
||||||
|
|||||||
@@ -811,6 +811,7 @@ class UnifiedTaskManager {
|
|||||||
const data = await response.json();
|
const data = await response.json();
|
||||||
|
|
||||||
if (data.success) {
|
if (data.success) {
|
||||||
|
// Update sprint filter dropdown
|
||||||
const sprintFilter = document.getElementById('sprint-filter');
|
const sprintFilter = document.getElementById('sprint-filter');
|
||||||
|
|
||||||
// Clear existing options except the default ones
|
// Clear existing options except the default ones
|
||||||
@@ -818,12 +819,24 @@ class UnifiedTaskManager {
|
|||||||
sprintFilter.innerHTML = '';
|
sprintFilter.innerHTML = '';
|
||||||
defaultOptions.forEach(option => sprintFilter.appendChild(option));
|
defaultOptions.forEach(option => sprintFilter.appendChild(option));
|
||||||
|
|
||||||
// Add sprint options
|
// Update task modal sprint dropdown
|
||||||
|
const taskSprintSelect = document.getElementById('task-sprint');
|
||||||
|
// Clear existing options except the default "No Sprint" option
|
||||||
|
taskSprintSelect.innerHTML = '<option value="">No Sprint</option>';
|
||||||
|
|
||||||
|
// Add sprint options to both dropdowns
|
||||||
data.sprints.forEach(sprint => {
|
data.sprints.forEach(sprint => {
|
||||||
const option = document.createElement('option');
|
// Add to filter dropdown
|
||||||
option.value = sprint.id;
|
const filterOption = document.createElement('option');
|
||||||
option.textContent = `${sprint.name} (${sprint.status})`;
|
filterOption.value = sprint.id;
|
||||||
sprintFilter.appendChild(option);
|
filterOption.textContent = `${sprint.name} (${sprint.status})`;
|
||||||
|
sprintFilter.appendChild(filterOption);
|
||||||
|
|
||||||
|
// Add to task modal dropdown
|
||||||
|
const modalOption = document.createElement('option');
|
||||||
|
modalOption.value = sprint.id;
|
||||||
|
modalOption.textContent = `${sprint.name} (${sprint.status})`;
|
||||||
|
taskSprintSelect.appendChild(modalOption);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@@ -1062,6 +1075,7 @@ class UnifiedTaskManager {
|
|||||||
document.getElementById('task-due-date').value = formatDateForInput(task.due_date) || '';
|
document.getElementById('task-due-date').value = formatDateForInput(task.due_date) || '';
|
||||||
document.getElementById('task-estimated-hours').value = task.estimated_hours || '';
|
document.getElementById('task-estimated-hours').value = task.estimated_hours || '';
|
||||||
document.getElementById('task-status').value = task.status;
|
document.getElementById('task-status').value = task.status;
|
||||||
|
document.getElementById('task-sprint').value = task.sprint_id || '';
|
||||||
document.getElementById('delete-task-btn').style.display = 'inline-block';
|
document.getElementById('delete-task-btn').style.display = 'inline-block';
|
||||||
} else {
|
} else {
|
||||||
document.getElementById('modal-title').textContent = 'Add New Task';
|
document.getElementById('modal-title').textContent = 'Add New Task';
|
||||||
@@ -1091,7 +1105,8 @@ class UnifiedTaskManager {
|
|||||||
assigned_to_id: document.getElementById('task-assignee').value || null,
|
assigned_to_id: document.getElementById('task-assignee').value || null,
|
||||||
due_date: parseUserDate(document.getElementById('task-due-date').value) || null,
|
due_date: parseUserDate(document.getElementById('task-due-date').value) || null,
|
||||||
estimated_hours: document.getElementById('task-estimated-hours').value || null,
|
estimated_hours: document.getElementById('task-estimated-hours').value || null,
|
||||||
status: document.getElementById('task-status').value
|
status: document.getElementById('task-status').value,
|
||||||
|
sprint_id: document.getElementById('task-sprint').value || null
|
||||||
};
|
};
|
||||||
|
|
||||||
const taskId = document.getElementById('task-id').value;
|
const taskId = document.getElementById('task-id').value;
|
||||||
|
|||||||
Reference in New Issue
Block a user