[UPDT] PMS: Keyresult dynamic creation in objective update
This commit is contained in:
@@ -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 %}
|
||||
@@ -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
|
||||
|
||||
57
pms/views.py
57
pms/views.py
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user