refactor: task_info portal pages (#55448)

This commit is contained in:
Diptanil Saha
2026-05-31 20:24:37 +05:30
committed by GitHub
parent 2a39b95e2b
commit 0f2d9cea6a
2 changed files with 27 additions and 96 deletions

View File

@@ -1,11 +1,11 @@
{% extends "templates/web.html" %}
{% block title %} {{ doc.name }} {% endblock %}
{% block title %} {{ doc.name|e }} {% endblock %}
{% block breadcrumbs %}
<div class="page-breadcrumbs" data-html-block="breadcrumbs">
<div class="page-breadcrumbs container" data-html-block="breadcrumbs">
<ul class="breadcrumb">
<li>
<span class="fa fa-angle-left"></span>
<a href="/projects?project={{ doc.project }}">{{ doc.project }}</a>
<a href="/projects?project={{ doc.project|e }}">{{ doc.project|e }}</a>
</li>
</ul>
</div>
@@ -13,16 +13,7 @@
{% block page_content %}
<div class="row">
<div class=" col-sm-8 ">
<h1> {{ doc.subject }} </h1>
</div>
<div class="col-sm-4">
<div class="page-header-actions-block" data-html-block="header-actions">
<button type="submit" class="btn btn-primary btn-sm btn-form-submit">
{{ __("Update") }}</button>
<a href="tasks" class="btn btn-light btn-sm">
{{ __("Cancel") }}</a>
</div>
<h1> {{ doc.subject|e }} </h1>
</div>
</div>
@@ -31,50 +22,44 @@
<input type="hidden" name="web_form" value="tasks">
<input type="hidden" name="doctype" value="Task">
<input type="hidden" name="name" value="TASK00056">
<input type="hidden" name="name" value="{{ doc.name|e }}">
<div class="row">
<div class="col-sm-12" style="max-width: 500px;">
<div class="form-group">
<label for="project" class="control-label text-muted small">{{ __("Project") }}</label>
<input type="text" class="form-control" name="project" readonly value= "{{ doc.project }}">
<label for="project" class="control-label text-muted small">{{ _("Project") }}</label>
<input type="text" class="form-control" name="project" readonly value= "{{ doc.project or ""|e }}">
</div>
<div class="form-group">
<label for="subject" class="control-label text-muted small">{{ __("Subject") }}</label>
<input type="text" class="form-control" name="subject" readonly value="{{ doc.subject }}">
<label for="subject" class="control-label text-muted small">{{ _("Subject") }}</label>
<input type="text" class="form-control" name="subject" readonly value="{{ doc.subject or ""|e }}">
</div>
<div class="form-group">
<label for="description" class="control-label text-muted small">{{ __("Details") }}</label>
<textarea class="form-control" style="height: 200px;" name="description">{{ doc.description }}</textarea>
<label for="description" class="control-label text-muted small">{{ _("Details") }}</label>
<textarea class="form-control" style="height: 200px;" name="description" readonly>{{ doc.description or ""|e }}</textarea>
</div>
<div class="form-group">
<label for="priority" class="control-label text-muted small">{{ __("Priority") }}</label>
<input type="text" class="form-control" name="priority" readonly value="{{ doc.priority }}">
<label for="priority" class="control-label text-muted small">{{ _("Priority") }}</label>
<input type="text" class="form-control" name="priority" readonly value="{{ doc.priority or ""|e }}">
</div>
<div class="form-group">
<label for="exp_start_date" class="control-label text-muted small">{{ __("Expected Start Date") }}</label>
<input type="text" class="form-control hasDatepicker" name="exp_start_date" readonly value="{{ doc.exp_start_date }}">
<label for="exp_start_date" class="control-label text-muted small">{{ _("Expected Start Date") }}</label>
<input type="text" class="form-control hasDatepicker" name="exp_start_date" readonly value="{{ doc.exp_start_date or ""|e }}">
</div>
<div class="form-group">
<label for="exp_end_date" class="control-label text-muted small">{{ __("Expected End Date") }}</label>
<input type="text" class="form-control hasDatepicker" name="exp_end_date" readonly value="{{ doc.exp_end_date }}">
<label for="exp_end_date" class="control-label text-muted small">{{ _("Expected End Date") }}</label>
<input type="text" class="form-control hasDatepicker" name="exp_end_date" readonly value="{{ doc.exp_end_date or ""|e }}">
</div>
<div class="form-group">
<label for="status" class="control-label text-muted small">{{ __("Status") }}</label>
<select class="form-control" name="status" id="status" data-label="Status" data-fieldtype="Select">
<option value="Open" selected="selected">
{{ __("Open") }}</option><option value="Working">
{{ __("Working") }}</option><option value="Pending Review">
{{ __("Pending Review") }}</option><option value="Overdue">
{{ __("Overdue") }}</option><option value="Closed">
{{ __("Closed") }}</option><option value="Cancelled">
{{ __("Cancelled") }}</option>
<label for="status" class="control-label text-muted small">{{ _("Status") }}</label>
<select class="form-control" name="status" id="status" data-label="Status" data-fieldtype="Select" disabled>
<option value="{{ doc.status|e }}" selected="selected">{{ doc.status|e }}</option>
</select>
</div>
</div>
@@ -83,68 +68,13 @@
</div>
<div class="comments">
<h3>{{ __("Comments") }}</h3>
<h3>{{ _("Comments") }}</h3>
<div class="no-comment">
{% for comment in comments %}
<p class="text-muted">{{comment.sender_full_name}}:
{{comment.subject}} {{ __("on") }} {{comment.creation.strftime('%Y-%m-%d')}}</p>
<p class="text-muted">{{comment.comment_email}}:
{{comment.content|e}} {{ _("on") }} {{comment.creation.strftime('%Y-%m-%d')}}</p>
{% endfor %}
</div>
<div class="comment-form-wrapper">
<a class="add-comment btn btn-light btn-sm">{{ __("Add Comment") }}</a>
<div style="display: none;" id="comment-form">
<p>{{ __("Add Comment") }}</p>
<form>
<fieldset>
<textarea class="form-control" name="comment" rows="5" placeholder="Comment"></textarea>
<p>
<button class="btn btn-primary btn-sm" id="submit-comment">{{ __("Submit") }}</button>
</p>
</fieldset>
</form>
</div>
</div>
</div>
<script>
frappe.ready(function() {
var n_comments = $(".comment-row").length;
$(".add-comment").click(function() {
$(this).toggle(false);
$("#comment-form").toggle();
$("#comment-form textarea").val("");
})
$("#submit-comment").click(function() {
var args = {
comment_by_fullname: "test",
comment_by: "admin@localhost.com",
comment: $("[name='comment']").val(),
reference_doctype: "Task",
reference_name: "TASK00069",
comment_type: "Comment",
route: "tasks",
}
frappe.call({
btn: this,
type: "POST",
method: "frappe.templates.includes.comments.comments.add_comment",
args: args,
callback: function(r) {
if(r.exc) {
if(r._server_messages)
frappe.msgprint(r._server_messages);
} else {
$(r.message).appendTo("#comment-list");
$(".no-comment, .add-comment").toggle(false);
$("#comment-form")
.replaceWith('<div class="text-muted">Thank you for your comment!</div>')
}
}
})
return false;
})
});
</script>
{% endblock %}

View File

@@ -5,11 +5,12 @@ def get_context(context):
context.no_cache = 1
task = frappe.get_doc("Task", frappe.form_dict.task)
task.check_permission()
context.comments = frappe.get_all(
"Communication",
filters={"reference_name": task.name, "comment_type": "comment"},
fields=["subject", "sender_full_name", "communication_date"],
"Comment",
filters={"reference_doctype": "Task", "reference_name": task.name, "comment_type": "Comment"},
fields=["content", "comment_email", "creation"],
)
context.doc = task