This commit is contained in:
Horilla
2025-03-13 10:27:18 +05:30
parent 399c6beefa
commit 01f4f26fdd
3 changed files with 151 additions and 152 deletions

View File

@@ -29,29 +29,29 @@ function getCookie(name) {
// period assigning to dates
function periodChange(period_data) {
var period_id = period_data.val();
var period_id = period_data.val()
// Check if period_id is not "create_new_period" before making the request
if (period_id !== "create_new_period") {
$.ajax({
url: '/pms/period-change',
type: "POST",
dataType: "json",
data: JSON.stringify(period_id),
headers: {
"X-Requested-With": "XMLHttpRequest",
"X-CSRFToken": getCookie("csrftoken"),
},
success: (data) => {
// adding data to start and end date
$('#id_start_date').val(data.start_date)
$('#id_end_date').val(data.end_date)
// Adding data to start and end date
$('#id_start_date').val(data.start_date);
$('#id_end_date').val(data.end_date);
},
error: (error) => {
console.log('Error', error);
}
})
}
});
}
}
});

View File

@@ -12,42 +12,36 @@
</div>
{% endif %}
<span class="oh-modal__dialog-title" id="addEmployeeModalLabel">{% trans "Create Period" %}</span>
<form onsubmit="event.preventDefault()" hx-target="#periodModalTarget" id="periodForm">
<form onsubmit="event.preventDefault()" hx-target="#periodModalTarget" id="periodForm" class="oh-profile-section">
{% csrf_token %}
<section>
<div id="periodContainer">
<div class="my-3" id="keyResultCard">
<div class="">
<div class="oh-input__group">
<label class="oh-input__label mt-0" for="{{form.period_name.id_for_label}}">{% trans "Title" %}</label>
{{ form.period_name }}
{{ form.period_name.errors }}
</div>
<div class="row">
<div class="col-12 col-sm-12 col-md-6 col-lg-6">
<div class="oh-input__group">
<label class="oh-input__label" for="{{form.start_date.id_for_label}}">{% trans "Start Date" %}</label>
{{form.start_date}}
<div id="error-container"></div>
</div>
</div>
<div class="col-12 col-sm-12 col-md-6 col-lg-6">
<div class="oh-input__group">
<label class="oh-input__label" for="{{form.end_date.id_for_label}}">{% trans "End Date" %}</label>
{{form.end_date}}
</div>
</div>
</div>
</div>
</div>
<div class="oh-modal__dialog-footer pe-0">
<div class="oh-modal__dialog-footer p-0">
<button type="submit" class="oh-btn oh-btn--secondary oh-btn--shadow ">
{% trans "Save" %}
</button>
@@ -84,23 +78,20 @@
$(".errorlist").remove();
},
success: function (data) {
if (data.errors) {
var errorDataJson = JSON.parse(data.errors)
key = Object.keys(errorDataJson)[0]
var errorDataJson = JSON.parse(data.errors);
key = Object.keys(errorDataJson)[0];
if (key == 'period_name') {
var nameerror = errorDataJson["period_name"]
var nameerror = errorDataJson["period_name"];
var errorMessage = nameerror[0].message;
}
else {
var dateerror = errorDataJson["__all__"]
var dateerror = errorDataJson["__all__"];
var errorMessage = dateerror[0].message;
}
$('#error-container').html('<div class="error text-danger">' + errorMessage + '</div>');
}
else {
var newOption = $("<option></option>")
.val(data.id)
@@ -117,11 +108,10 @@
</div>
`
$("#message").html(message);
document.periodForm.reset();
$("#periodForm")[0].reset();
}
},
});
});
});
</script>

View File

@@ -33,6 +33,7 @@ from base.methods import (
paginator_qry,
sortby,
)
from base.models import Company
from employee.models import Employee, EmployeeWorkInformation
from horilla.decorators import (
hx_request_required,
@@ -2733,11 +2734,19 @@ def create_period(request):
This is an ajax method to return json response to create stage related
to the project in the task-all form fields
"""
company_id = request.session.get("selected_company")
companies = (
Company.objects.filter(id=company_id)
if company_id != "all"
else Company.objects.all()
)
if request.method == "GET":
form = PeriodForm()
form = PeriodForm(initial={"company_id": companies})
if request.method == "POST":
form = PeriodForm(request.POST)
data = request.POST.copy()
data.setlist("company_id", list(companies.values_list("id", flat=True)))
form = PeriodForm(data)
if form.is_valid():
instance = form.save()
return JsonResponse(