mirror of
https://github.com/Sudo-JHare/FHIRFLARE-IG-Toolkit.git
synced 2025-06-16 10:00:00 +00:00
v.0.02
update to fix caused 500 internal error
This commit is contained in:
parent
86a2718dea
commit
9fba23c83b
50
app.py
50
app.py
@ -154,23 +154,22 @@ def view_igs():
|
|||||||
if os.path.exists(packages_dir):
|
if os.path.exists(packages_dir):
|
||||||
for filename in os.listdir(packages_dir):
|
for filename in os.listdir(packages_dir):
|
||||||
if filename.endswith('.tgz'):
|
if filename.endswith('.tgz'):
|
||||||
# Remove .tgz and split on the last segment that looks like a version
|
|
||||||
name_version = filename[:-4] # Remove .tgz
|
name_version = filename[:-4] # Remove .tgz
|
||||||
parts = name_version.split('-')
|
parts = name_version.split('-')
|
||||||
# Assume version starts with a digit or common version keywords
|
version_start = -1
|
||||||
version_idx = -1
|
for i, part in enumerate(parts):
|
||||||
for i, part in enumerate(parts[::-1]):
|
|
||||||
if part[0].isdigit() or part in ('preview', 'current', 'latest'):
|
if part[0].isdigit() or part in ('preview', 'current', 'latest'):
|
||||||
version_idx = len(parts) - i - 1
|
version_start = i
|
||||||
break
|
break
|
||||||
if version_idx >= 0:
|
if version_start > 0: # Ensure there's a name before version
|
||||||
name = '-'.join(parts[:version_idx + 1])
|
name = '.'.join(parts[:version_start])
|
||||||
version = '-'.join(parts[version_idx + 1:])
|
version = '-'.join(parts[version_start:])
|
||||||
packages.append({'name': name, 'version': version, 'filename': filename})
|
packages.append({'name': name, 'version': version, 'filename': filename})
|
||||||
else:
|
else:
|
||||||
# Fallback: treat last part as version
|
# Fallback: treat as name only, log warning
|
||||||
name = '-'.join(parts[:-1])
|
name = name_version
|
||||||
version = parts[-1]
|
version = ''
|
||||||
|
logger.warning(f"Could not parse version from {filename}, treating as name only")
|
||||||
packages.append({'name': name, 'version': version, 'filename': filename})
|
packages.append({'name': name, 'version': version, 'filename': filename})
|
||||||
logger.debug(f"Found packages: {packages}")
|
logger.debug(f"Found packages: {packages}")
|
||||||
else:
|
else:
|
||||||
@ -186,11 +185,18 @@ def view_igs():
|
|||||||
else:
|
else:
|
||||||
duplicate_names[name] = [pkg]
|
duplicate_names[name] = [pkg]
|
||||||
|
|
||||||
|
# Precompute group colors
|
||||||
|
colors = ['bg-warning', 'bg-info', 'bg-success', 'bg-danger']
|
||||||
|
group_colors = {}
|
||||||
|
for i, name in enumerate(duplicate_groups):
|
||||||
|
if len(duplicate_groups[name]) > 1: # Only color duplicates
|
||||||
|
group_colors[name] = colors[i % len(colors)]
|
||||||
|
|
||||||
return render_template('cp_downloaded_igs.html', packages=packages, processed_list=igs,
|
return render_template('cp_downloaded_igs.html', packages=packages, processed_list=igs,
|
||||||
processed_ids=processed_ids, duplicate_names=duplicate_names,
|
processed_ids=processed_ids, duplicate_names=duplicate_names,
|
||||||
duplicate_groups=duplicate_groups)
|
duplicate_groups=duplicate_groups, group_colors=group_colors)
|
||||||
|
|
||||||
@app.route('/process-ig', methods=['POST'])
|
@app.route('/process-igs', methods=['POST'])
|
||||||
def process_ig():
|
def process_ig():
|
||||||
filename = request.form.get('filename')
|
filename = request.form.get('filename')
|
||||||
if not filename or not filename.endswith('.tgz'):
|
if not filename or not filename.endswith('.tgz'):
|
||||||
@ -203,14 +209,20 @@ def process_ig():
|
|||||||
return redirect(url_for('view_igs'))
|
return redirect(url_for('view_igs'))
|
||||||
|
|
||||||
try:
|
try:
|
||||||
parts = filename[:-4].split('-')
|
name_version = filename[:-4]
|
||||||
version_idx = -1
|
parts = name_version.split('-')
|
||||||
for i, part in enumerate(parts[::-1]):
|
version_start = -1
|
||||||
|
for i, part in enumerate(parts):
|
||||||
if part[0].isdigit() or part in ('preview', 'current', 'latest'):
|
if part[0].isdigit() or part in ('preview', 'current', 'latest'):
|
||||||
version_idx = len(parts) - i - 1
|
version_start = i
|
||||||
break
|
break
|
||||||
name = '-'.join(parts[:version_idx + 1]) if version_idx >= 0 else '-'.join(parts[:-1])
|
if version_start > 0:
|
||||||
version = '-'.join(parts[version_idx + 1:]) if version_idx >= 0 else parts[-1]
|
name = '.'.join(parts[:version_start])
|
||||||
|
version = '-'.join(parts[version_start:])
|
||||||
|
else:
|
||||||
|
name = name_version
|
||||||
|
version = ''
|
||||||
|
logger.warning(f"Could not parse version from {filename} during processing")
|
||||||
package_info = services.process_package_file(tgz_path)
|
package_info = services.process_package_file(tgz_path)
|
||||||
processed_ig = ProcessedIg(
|
processed_ig = ProcessedIg(
|
||||||
package_name=name,
|
package_name=name,
|
||||||
|
@ -39,17 +39,10 @@
|
|||||||
<tr><th>Package Name</th><th>Version</th><th>Actions</th></tr>
|
<tr><th>Package Name</th><th>Version</th><th>Actions</th></tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{% set colors = ['bg-warning', 'bg-info', 'bg-success', 'bg-danger'] %}
|
|
||||||
{% set group_idx = {} %}
|
|
||||||
{% for name in duplicate_groups %}
|
|
||||||
{% if duplicate_groups[name]|length > 1 %}
|
|
||||||
{% set group_idx[name] = loop.index0 % colors|length %}
|
|
||||||
{% endif %}
|
|
||||||
{% endfor %}
|
|
||||||
{% for pkg in packages %}
|
{% for pkg in packages %}
|
||||||
{% set is_processed = (pkg.name, pkg.version) in processed_ids %}
|
{% set is_processed = (pkg.name, pkg.version) in processed_ids %}
|
||||||
{% set is_duplicate = pkg.name in duplicate_names and duplicate_names[pkg.name]|length > 1 %}
|
{% set is_duplicate = pkg.name in duplicate_names and duplicate_names[pkg.name]|length > 1 %}
|
||||||
{% set group_color = colors[group_idx[pkg.name]] if is_duplicate and duplicate_groups|length > 1 else 'bg-warning' %}
|
{% set group_color = group_colors[pkg.name] if is_duplicate else 'bg-warning' %}
|
||||||
<tr {% if is_duplicate %}class="{{ group_color }} text-dark"{% endif %}>
|
<tr {% if is_duplicate %}class="{{ group_color }} text-dark"{% endif %}>
|
||||||
<td>
|
<td>
|
||||||
<code>{{ pkg.name }}</code>
|
<code>{{ pkg.name }}</code>
|
||||||
@ -83,7 +76,7 @@
|
|||||||
<p class="mt-2 small text-muted">Duplicates detected:
|
<p class="mt-2 small text-muted">Duplicates detected:
|
||||||
{% for name, versions in duplicate_groups.items() %}
|
{% for name, versions in duplicate_groups.items() %}
|
||||||
{% if versions|length > 1 %}
|
{% if versions|length > 1 %}
|
||||||
<span class="badge {{ colors[group_idx[name] if duplicate_groups|length > 1 else 0] }} text-dark">{{ name }} ({{ versions|join(', ') }})</span>
|
<span class="badge {{ group_colors[name] }} text-dark">{{ name }} ({{ versions|join(', ') }})</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</p>
|
</p>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user