Merge pull request #54 from KucharczykL/feat/issue-33-reset-session-start
feat(session): reset running session start time to now (#33)
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
class="text-black dark:text-white w-4 h-4">
|
||||
<path d="M3 12a9 9 0 1 0 3-6.7L3 8" />
|
||||
<path d="M3 3v5h5" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 313 B |
@@ -147,6 +147,11 @@ urlpatterns = [
|
||||
session.end_session,
|
||||
name="list_sessions_end_session",
|
||||
),
|
||||
path(
|
||||
"session/start/reset-to-now/from-list/<int:session_id>",
|
||||
session.reset_session_start,
|
||||
name="list_sessions_reset_session_start",
|
||||
),
|
||||
path("session/list", session.list_sessions, name="list_sessions"),
|
||||
path("session/search", session.search_sessions, name="search_sessions"),
|
||||
path(
|
||||
|
||||
+33
-1
@@ -144,6 +144,24 @@ def list_sessions(request: HttpRequest, search_string: str = "") -> HttpResponse
|
||||
}
|
||||
if session.timestamp_end is None
|
||||
else {},
|
||||
{
|
||||
"href": reverse(
|
||||
"games:list_sessions_reset_session_start",
|
||||
args=[session.pk],
|
||||
),
|
||||
"hx_get": reverse(
|
||||
"games:list_sessions_reset_session_start",
|
||||
args=[session.pk],
|
||||
),
|
||||
"hx_confirm": (
|
||||
"Reset this session's start time to now?"
|
||||
),
|
||||
"slot": Icon("reset"),
|
||||
"title": "Reset start to now",
|
||||
"color": "gray",
|
||||
}
|
||||
if session.timestamp_end is None
|
||||
else {},
|
||||
{
|
||||
"href": reverse(
|
||||
"games:edit_session", args=[session.pk]
|
||||
@@ -234,7 +252,7 @@ def add_session(request: HttpRequest, game_id: int = 0) -> HttpResponse:
|
||||
return redirect("games:list_sessions")
|
||||
else:
|
||||
if game_id:
|
||||
game = Game.objects.get(id=game_id)
|
||||
game = get_object_or_404(Game, id=game_id)
|
||||
form = SessionForm(
|
||||
initial={
|
||||
**initial,
|
||||
@@ -379,6 +397,20 @@ def end_session(request: HttpRequest, session_id: int) -> HttpResponse:
|
||||
return redirect("games:list_sessions")
|
||||
|
||||
|
||||
@login_required
|
||||
def reset_session_start(request: HttpRequest, session_id: int) -> HttpResponse:
|
||||
session = get_object_or_404(Session, id=session_id)
|
||||
session.timestamp_start = timezone.now()
|
||||
session.save()
|
||||
if request.htmx:
|
||||
# The list table is rebuilt server-side per request; a full refresh
|
||||
# avoids swapping in a row fragment whose layout could drift from it.
|
||||
response = HttpResponse(status=204)
|
||||
response["HX-Refresh"] = "true"
|
||||
return response
|
||||
return redirect("games:list_sessions")
|
||||
|
||||
|
||||
@login_required
|
||||
def delete_session(request: HttpRequest, session_id: int = 0) -> HttpResponse:
|
||||
session = get_object_or_404(Session, id=session_id)
|
||||
|
||||
Reference in New Issue
Block a user