Polish ticket assignees
This commit is contained in:
parent
d18096b10b
commit
da915d2bf6
|
@ -181,3 +181,10 @@ select.form-control {
|
|||
margin-left: 0.2rem;
|
||||
}
|
||||
}
|
||||
|
||||
.assign {
|
||||
&[open] {
|
||||
background: #f5f5f5;
|
||||
padding: 0.5rem;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -285,24 +285,32 @@ def _assignment_get_ticket(owner, name, ticket_id):
|
|||
|
||||
return ticket
|
||||
|
||||
def _assignment_get_user():
|
||||
username = request.form.get('username')
|
||||
def _assignment_get_user(valid):
|
||||
username = valid.optional('username')
|
||||
if not username:
|
||||
abort(400)
|
||||
if 'myself' in valid:
|
||||
username = current_user.username
|
||||
else:
|
||||
valid.error("Username is required", field="username")
|
||||
if not valid.ok:
|
||||
return None
|
||||
if username.startswith("~"):
|
||||
username = username[1:]
|
||||
|
||||
user = User.query.filter_by(username=username).one_or_none()
|
||||
if not user:
|
||||
abort(404)
|
||||
|
||||
valid.expect(user, "User not found.", field="username")
|
||||
return user
|
||||
|
||||
@ticket.route("/<owner>/<name>/<int:ticket_id>/assign", methods=["POST"])
|
||||
@loginrequired
|
||||
def ticket_assign(owner, name, ticket_id):
|
||||
valid = Validation(request)
|
||||
ticket = _assignment_get_ticket(owner, name, ticket_id)
|
||||
user = _assignment_get_user()
|
||||
user = _assignment_get_user(valid)
|
||||
if not valid.ok:
|
||||
_, access = get_ticket(ticket.tracker, ticket_id)
|
||||
ctx = get_ticket_context(ticket, ticket.tracker, access)
|
||||
return render_template("ticket.html", **valid.kwargs, **ctx)
|
||||
|
||||
assign(ticket, user, current_user)
|
||||
db.session.commit()
|
||||
|
@ -312,8 +320,12 @@ def ticket_assign(owner, name, ticket_id):
|
|||
@ticket.route("/<owner>/<name>/<int:ticket_id>/unassign", methods=["POST"])
|
||||
@loginrequired
|
||||
def ticket_unassign(owner, name, ticket_id):
|
||||
valid = Validation(request)
|
||||
ticket = _assignment_get_ticket(owner, name, ticket_id)
|
||||
user = _assignment_get_user()
|
||||
user = _assignment_get_user(valid)
|
||||
if not valid.ok:
|
||||
ctx = get_ticket_context(ticket, ticket.tracker, access)
|
||||
return render_template("ticket.html", valid, **ctx)
|
||||
|
||||
unassign(ticket, user)
|
||||
db.session.commit()
|
||||
|
|
|
@ -123,19 +123,18 @@
|
|||
type="hidden"
|
||||
name="username"
|
||||
value="~{{ assignee.username }}" />
|
||||
<button type="submit" class="btn btn-default">
|
||||
Unassign
|
||||
{{ icon('caret-right') }}
|
||||
</button>
|
||||
<button
|
||||
type="submit"
|
||||
class="btn btn-link btn-block"
|
||||
style="text-align: right"
|
||||
>(unassign)</button>
|
||||
</form>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% else %}
|
||||
No-one.
|
||||
{% endfor %}
|
||||
|
||||
<details>
|
||||
<details class="assign" {{"open" if not valid.ok else ""}}>
|
||||
<summary>
|
||||
Assign someone
|
||||
</summary>
|
||||
|
@ -145,33 +144,24 @@
|
|||
style="margin-bottom: 0"
|
||||
>
|
||||
{{ csrf_token() }}
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<input
|
||||
type="text"
|
||||
name="username"
|
||||
required="required"
|
||||
style="width: 100%; max-width: 12rem;" />
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<button class="btn btn-default" style="margin: .2rem 0">
|
||||
Assign {{ icon('caret-right') }}
|
||||
</button>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<input
|
||||
type="text"
|
||||
name="username"
|
||||
class="form-control {{valid.cls("username")}}"
|
||||
value="{{username}}" />
|
||||
{{valid.summary("username")}}
|
||||
</div>
|
||||
</form>
|
||||
<form method="POST" action="{{ ticket|ticket_assign_url }}">
|
||||
{{ csrf_token() }}
|
||||
<input type="hidden" name="username" value="{{ current_user }}" />
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<button class="btn btn-default">
|
||||
Assign myself {{ icon('caret-right') }}
|
||||
</button>
|
||||
</div>
|
||||
<div class="pull-right">
|
||||
<button
|
||||
name="myself"
|
||||
class="btn btn-default"
|
||||
>Assign myself {{ icon('caret-right') }}</button>
|
||||
<button class="btn btn-primary">
|
||||
Assign {{ icon('caret-right') }}
|
||||
</button>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
</form>
|
||||
</details>
|
||||
</dd>
|
||||
|
|
Loading…
Reference in New Issue