Skip to content

Commit

Permalink
Add images number
Browse files Browse the repository at this point in the history
  • Loading branch information
sbrunner committed Jun 30, 2023
1 parent 8776b52 commit bba97d1
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 12 deletions.
5 changes: 4 additions & 1 deletion scan_to_paperless/status.html
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,10 @@ <h2>Jobs status</h2>
{% for name, folder in status.items(): %}
{% set tr_attributes = ' class="alert alert-info"' if name == self._current_folder else "" %}
<tr{{ tr_attributes }}>
<td><a href="./{{ name }}" target="_blank">{{ name }}</a></td>
<td><a href="./{{ name }}" target="_blank">{{ name }}</a>{%
if folder.nb_images > 0 %}({{ folder.nb_images }} image{%
if folder.nb_images > 1 %}s){%
endid %}</td>
<td>{{ folder.status }}</td>
<td>{{ folder.details | safe }}</td>
</tr>
Expand Down
30 changes: 19 additions & 11 deletions scan_to_paperless/status.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@


class _Folder(NamedTuple):
mb_images: int
status: str
details: str

Expand Down Expand Up @@ -62,13 +63,15 @@ def set_current_config(self, name: str) -> None:
name = os.path.basename(os.path.dirname(name))
self._current_folder = name

def set_status(self, name: str, status: str, details: str = "") -> None:
def set_status(self, name: str, nb_images: int, status: str, details: str = "") -> None:
"""Set the status of a folder."""

# Config file name
if name.endswith("/config.yaml"):
name = os.path.basename(os.path.dirname(name))
self._status[name] = _Folder(html.escape(status), details)
if nb_images <= 0 and name in self._status:
nb_images = self._status[name].nb_images
self._status[name] = _Folder(nb_images, html.escape(status), details)

if self.no_write:
print(f"{name}: {status}")
Expand Down Expand Up @@ -104,12 +107,12 @@ def _update_status(self, name: str) -> None:
error = yaml.load(error_file)

self.set_status(
name, "Error: " + error["error"], "<code>" + "<br />".join(error["traceback"]) + "</code>"
name, -1, "Error: " + error["error"], "<code>" + "<br />".join(error["traceback"]) + "</code>"
)
return

if os.path.exists(os.path.join(os.environ.get("SCAN_SOURCE_FOLDER", "/source"), name, "DONE")):
self.set_status(name, "Done")
self.set_status(name, -1, "Done")
return

if not os.path.exists(
Expand All @@ -126,7 +129,7 @@ def _update_status(self, name: str) -> None:
)
if os.path.isfile(f)
]
self.set_status(name, "Missing config", ", ".join(files))
self.set_status(name, -1, "Missing config", ", ".join(files))
return

with open(
Expand All @@ -136,7 +139,7 @@ def _update_status(self, name: str) -> None:
config = yaml.load(config_file)

if config is None:
self.set_status(name, "Empty config")
self.set_status(name, -1, "Empty config")
return

if os.path.exists(
Expand All @@ -146,19 +149,24 @@ def _update_status(self, name: str) -> None:
for image in config["steps"][-1]["sources"]:
if not os.path.exists(image):
rerun = True
nb_images = -1
if config.get("steps", []):
nb_images = len(config["steps"][-1]["sources"])
elif "sources" in config:
nb_images = len(config["sources"])

if rerun:
if len(config["steps"]) >= 2:
self.set_status(name, "Waiting to " + config["steps"][-2])
self.set_status(name, nb_images, "Waiting to " + config["steps"][-2])
else:
self.set_status(name, "Waiting to transform")
self.set_status(name, nb_images, "Waiting to transform")
else:
self.set_status(name, WAITING_STATUS_NAME, WAITING_STATUS_DESCRIPTION)
self.set_status(name, nb_images, WAITING_STATUS_NAME, WAITING_STATUS_DESCRIPTION)
else:
if len(config["steps"]) >= 1:
self.set_status(name, "Waiting to " + config["steps"][-1]["name"])
self.set_status(name, nb_images, "Waiting to " + config["steps"][-1]["name"])
else:
self.set_status(name, "Waiting to transform")
self.set_status(name, nb_images, "Waiting to transform")

def write(self) -> None:
"""Write the status file."""
Expand Down

0 comments on commit bba97d1

Please sign in to comment.