Fix all integrations
This commit is contained in:
@@ -1,9 +1,13 @@
|
||||
{% extends "base.html" %}
|
||||
{% block content %}
|
||||
<section class="section">
|
||||
<div class="container">
|
||||
<h1 class="title is-4">Task Inbox</h1>
|
||||
<p class="subtitle is-6">Immutable tasks derived from chat activity.</p>
|
||||
<div class="container gia-page-shell">
|
||||
<div class="gia-page-header">
|
||||
<div>
|
||||
<h1 class="title is-4">Task Inbox</h1>
|
||||
<p class="subtitle is-6">Canonical tasks live in GIA. Chats, XMPP, web UI, and agent tooling all operate on the same records.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="buttons" style="margin-bottom: 0.75rem;">
|
||||
<a class="button is-small is-link is-light" href="{% url 'tasks_settings' %}{% if scope.person_id or scope.service or scope.identifier %}?{% if scope.person_id %}person={{ scope.person_id|urlencode }}{% endif %}{% if scope.service %}{% if scope.person_id %}&{% endif %}service={{ scope.service|urlencode }}{% endif %}{% if scope.identifier %}{% if scope.person_id or scope.service %}&{% endif %}identifier={{ scope.identifier|urlencode }}{% endif %}{% endif %}">Task Automation</a>
|
||||
</div>
|
||||
@@ -139,6 +143,60 @@
|
||||
</article>
|
||||
</div>
|
||||
<div class="column">
|
||||
<article class="box">
|
||||
<div class="is-flex is-justify-content-space-between is-align-items-center" style="gap: 0.5rem; margin-bottom: 0.6rem; flex-wrap: wrap;">
|
||||
<h2 class="title is-6" style="margin: 0;">Create Task</h2>
|
||||
{% if scope.service or scope.identifier %}
|
||||
<span class="tag task-ui-badge">{{ scope.service|default:"web" }}{% if scope.identifier %} · {{ scope.identifier }}{% endif %}</span>
|
||||
{% else %}
|
||||
<span class="tag task-ui-badge">web</span>
|
||||
{% endif %}
|
||||
</div>
|
||||
<p class="help" style="margin-bottom: 0.65rem;">Use this to create canonical tasks directly from the web UI without relying on WhatsApp-derived source state.</p>
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
<input type="hidden" name="action" value="task_create">
|
||||
<input type="hidden" name="person" value="{{ scope.person_id }}">
|
||||
<input type="hidden" name="service" value="{{ scope.service }}">
|
||||
<input type="hidden" name="identifier" value="{{ scope.identifier }}">
|
||||
<div class="columns is-multiline">
|
||||
<div class="column is-7">
|
||||
<label class="label is-size-7">Title</label>
|
||||
<input class="input is-small" name="title" placeholder="Ship MCP browser validation for compose">
|
||||
</div>
|
||||
<div class="column is-5">
|
||||
<label class="label is-size-7">Project</label>
|
||||
<div class="select is-small is-fullwidth">
|
||||
<select name="project_id">
|
||||
{% for project in project_choices %}
|
||||
<option value="{{ project.id }}" {% if selected_project and selected_project.id == project.id %}selected{% endif %}>{{ project.name }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="column is-5">
|
||||
<label class="label is-size-7">Epic (optional)</label>
|
||||
<div class="select is-small is-fullwidth">
|
||||
<select name="epic_id">
|
||||
<option value="">No epic</option>
|
||||
{% for epic in epic_choices %}
|
||||
<option value="{{ epic.id }}">{{ epic.project.name }} / {{ epic.name }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="column is-3">
|
||||
<label class="label is-size-7">Due Date</label>
|
||||
<input class="input is-small" type="date" name="due_date">
|
||||
</div>
|
||||
<div class="column is-4">
|
||||
<label class="label is-size-7">Assignee</label>
|
||||
<input class="input is-small" name="assignee_identifier" placeholder="@operator">
|
||||
</div>
|
||||
</div>
|
||||
<button class="button is-small is-link" type="submit">Create Task</button>
|
||||
</form>
|
||||
</article>
|
||||
<article class="box">
|
||||
<h2 class="title is-6">Recent Derived Tasks</h2>
|
||||
<table class="table is-fullwidth is-striped is-size-7">
|
||||
|
||||
Reference in New Issue
Block a user