[UPDT] PMS: Keyresult dynamic creation in objective update

This commit is contained in:
Horilla
2024-03-26 15:00:34 +05:30
parent 30021e0357
commit 0fa5c7a664
3 changed files with 87 additions and 116 deletions

View File

@@ -310,66 +310,62 @@
<div class="oh-activity-sidebar__body" id="activityContainer">
</div>
</div>
<script>
function enlargeImage(src) {
var enlargeImageContainer = $('#enlargeImageContainer');
enlargeImageContainer.empty();
style = "width:100%; height:90%; box-shadow: 0 10px 10px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.2); background:white"
var enlargedImage = $('<iframe>').attr({'src': src,'style': style,});
var name =$('<span>').text(src.split('/').pop().replace(/_/g, " "))
enlargeImageContainer.append(enlargedImage);
enlargeImageContainer.append(name);
setTimeout(function() {
enlargeImageContainer.show();
const iframe = document.querySelector("iframe").contentWindow;
var iframe_document = iframe.document
iframe_image = iframe_document.getElementsByTagName('img')[0]
$(iframe_image).attr("style","width:100%; height:100%;")
}, 100);
}
function hideEnlargeImage() {
var enlargeImageContainer = $('#enlargeImageContainer');
enlargeImageContainer.empty();
}
function keyResultChange(element) {
var kr = $(element).val();
if (kr == 'create_new_key_result'){
$('#kRModal').show()
}
<script>
$(document).ready(function () {
$(".oh-accordion-meta__header").click(function () {
var target = $(this).find(".oh-accordion-meta__body");
$(this).toggleClass("oh-accordion-meta__header--show");
$(target).toggleClass("d-none");
});
});
}
function saveKeyResult(){
var title=$('#id_title').val()
var description = $("#id_description").val()
var progress_type = $("#id_progress_type").val()
var target_value = $("#id_target_value").val()
var duration =$('#id_duration').val()
$.ajax({
type: "post",
url: "{% url 'key-result-creation' %}",
data: {
csrfmiddlewaretoken: getCookie("csrftoken"),
"title": title,
"description":description,
'progress_type':progress_type,
"target_value":target_value,
'duration':duration
},
success: function (response) {
if (response.errors === "no_error") {
var newOption = $('<option selected></option>').val(response.kr_id).text(response.title)
$("#kRModal").hide();
$("#id_key_result_id option[value='create_new_key_result']").before(newOption);
$("#id_key_result_id option[value='create_new_key_result']").prop('selected',false)
}
}
});
}
function enlargeImage(src) {
var enlargeImageContainer = $('#enlargeImageContainer');
enlargeImageContainer.empty();
style = "width:100%; height:90%; box-shadow: 0 10px 10px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.2); background:white"
var enlargedImage = $('<iframe>').attr({'src': src,'style': style,});
var name =$('<span>').text(src.split('/').pop().replace(/_/g, " "))
enlargeImageContainer.append(enlargedImage);
enlargeImageContainer.append(name);
setTimeout(function() {
enlargeImageContainer.show();
const iframe = document.querySelector("iframe").contentWindow;
var iframe_document = iframe.document
iframe_image = iframe_document.getElementsByTagName('img')[0]
$(iframe_image).attr("style","width:100%; height:100%;")
}, 100);
}
function hideEnlargeImage() {
var enlargeImageContainer = $('#enlargeImageContainer');
enlargeImageContainer.empty();
}
//create key result dynamically
function keyResultChange(element) {
var kr = $(element).val();
// Check if 'create_new_key_result' exists in the list
if (kr.includes('create_new_key_result')) {
var objData = $('#objectiveForm').serialize()
$("[name=dyanamic_create]").val(objData)
$("#kRModal").show();
}
}
function removeCreateKR(){
$("#id_key_result_id option[value='create_new_key_result']").prop('selected',false)
// Select the li element
var listItem = $('li.select2-selection__choice[title="Create new Key result"]');
// Select the remove span within the li element
var removeSpan = listItem.find('span.select2-selection__choice__remove');
// Trigger a click event on the remove span
removeSpan.click();
}
function progress (element) {
var currentValue = $(element).val()
@@ -444,5 +440,5 @@
});
</script>
</script>
{% endblock %}

View File

@@ -146,35 +146,7 @@
}
{% comment %} function saveKeyResult(){
var title=$('#kRModal').find('#id_title').val()
var description = $('#kRModal').find("#id_description").val()
var progress_type = $('#kRModal').find("#id_progress_type").val()
var target_value = $('#kRModal').find("#id_target_value").val()
var duration =$('#kRModal').find('#id_duration').val()
$.ajax({
type: "post",
url: "{% url 'key-result-creation' %}",
data: {
csrfmiddlewaretoken: getCookie("csrftoken"),
"title": title,
"description":description,
'progress_type':progress_type,
"target_value":target_value,
'duration':duration
},
success: function (response) {
if (response.errors === "no_error") {
var newOption = $('<option selected></option>').val(response.kr_id).text(response.title)
$("#kRModal").hide();
$("#id_key_result_id option[value='create_new_key_result']").before(newOption);
$("#id_key_result_id option[value='create_new_key_result']").prop('selected',false)
}else{
}
}
});
} {% endcomment %}
function removeCreateKR(){
$("#id_key_result_id option[value='create_new_key_result']").prop('selected',false)
// Select the li element

View File

@@ -151,30 +151,6 @@ def objective_creation(request):
context = {"objective_form": objective_form, "p_form": PeriodForm(),"k_form": KRForm()}
return render(request, "okr/objective_creation.html", context=context)
@login_required
def key_result_create(request):
"""
This method renders form and template to create Ticket type
"""
form = KRForm()
redirect_url = None
if request.method == "POST":
form = KRForm(request.POST)
if form.is_valid():
instance = form.save()
obj_data = request.POST.get("dyanamic_create")
obj_data = obj_data.replace("create_new_key_result", str(instance.id))
messages.success(
request,
_("Key result %(key_result)s created successfully") % {"key_result": instance},
)
# Redirect to the desired URL with encoded query parameters
redirect_url = f'/pms/objective-creation?{obj_data}'
form = KRForm()
return render(request,'okr/key_result/key_result_form.html',{'k_form':form,'redirect_url':redirect_url})
@login_required
@hx_request_required
@manager_can_enter(perm="pms.change_employeeobjective")
@@ -188,6 +164,8 @@ def objective_update(request, obj_id):
"""
instance = Objective.objects.get(id=obj_id)
objective_form = ObjectiveForm(instance=instance)
if request.GET.get('key_result_id') is not None:
objective_form = ObjectiveForm(request.GET)
if request.method == "POST":
objective_form = ObjectiveForm(request.POST, instance=instance)
if objective_form.is_valid():
@@ -252,6 +230,30 @@ def objective_update(request, obj_id):
return render(request, "okr/objective_creation.html", context)
# key result
@login_required
def key_result_create(request):
"""
This method renders form and template to create Ticket type
"""
form = KRForm()
redirect_url = None
if request.method == "POST":
form = KRForm(request.POST)
if form.is_valid():
instance = form.save()
obj_data = request.POST.get("dyanamic_create")
obj_data = obj_data.replace("create_new_key_result", str(instance.id))
messages.success(
request,
_("Key result %(key_result)s created successfully") % {"key_result": instance},
)
# Redirect to the desired URL with encoded query parameters
redirect_url = f'/pms/objective-creation?{obj_data}'
form = KRForm()
return render(request,'okr/key_result/key_result_form.html',{'k_form':form,'redirect_url':redirect_url})
@login_required
def add_assignees(request, obj_id):
"""
@@ -349,7 +351,7 @@ def objective_manager_remove(request, obj_id, manager_id):
@login_required
@permission_required("pms.delete_keyresult")
def key_result_remove(request, obj_id, kr_id):
objective = get_object_or_404(EmployeeObjective, id=obj_id)
objective = get_object_or_404(Objective, id=obj_id)
objective.key_result_id.remove(kr_id)
return HttpResponse("")
@@ -634,11 +636,12 @@ def objective_detailed_view_comment(request, id):
@login_required
def kr_table_view(request, emp_objective_id):
objective_id = request.GET.get("objective_id")
emp_objectives = EmployeeObjective.objects.get(id=emp_objective_id)
krs = emp_objectives.employee_key_result.all()
emp_objective = EmployeeObjective.objects.get(id=emp_objective_id)
krs = emp_objective.employee_key_result.all()
context = {
"krs": krs,
"key_result_status": EmployeeKeyResult.STATUS_CHOICES,
'emp_objective':emp_objective
}
template = "okr/kr_list.html"
return render(request, template, context)