SIDEL_ScriptsManager/app/templates/admin/conda.html

173 lines
8.3 KiB
HTML

{% extends "base.html" %}
{% block title %}Conda Environments - {{ t.app_title }}{% endblock %}
{% block content %}
<div class="container-fluid mt-4">
<!-- Header -->
<div class="row mb-4">
<div class="col-md-8">
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item">
<a href="{{ url_for('dashboard') }}">
<i class="bi bi-house"></i>
</a>
</li>
<li class="breadcrumb-item">
<a href="{{ url_for('admin_users') }}">Administration</a>
</li>
<li class="breadcrumb-item active">Conda Environments</li>
</ol>
</nav>
<div class="d-flex align-items-center">
<h1 class="h3 mb-0">
<i class="bi bi-cpu text-primary"></i>
Conda Environments
</h1>
</div>
<p class="text-muted mb-0">Manage conda environments for script execution</p>
</div>
<div class="col-md-4 text-end">
{% if conda_available %}
<form method="POST" action="{{ url_for('admin_conda_refresh') }}" style="display: inline;">
<button type="submit" class="btn btn-primary">
<i class="bi bi-arrow-clockwise"></i>
Refresh Environments
</button>
</form>
{% endif %}
</div>
</div>
<!-- Content -->
<div class="row">
<div class="col-12">
{% if not conda_available %}
<div class="alert alert-warning" role="alert">
<h4 class="alert-heading">
<i class="bi bi-exclamation-triangle"></i>
Conda Not Available
</h4>
<p>Conda is not installed or not found on this system. Please install Miniconda or Anaconda to manage Python environments.</p>
<hr>
<p class="mb-0">
<strong>Installation options:</strong><br>
<a href="https://docs.conda.io/en/latest/miniconda.html" target="_blank">Miniconda</a> (minimal installer)<br>
<a href="https://www.anaconda.com/products/distribution" target="_blank">Anaconda</a> (full distribution)
</p>
</div>
{% else %}
<div class="card">
<div class="card-header">
<h5 class="card-title mb-0">
<i class="bi bi-list-ul"></i>
Available Environments
<span class="badge bg-primary ms-2">{{ environments|length }}</span>
</h5>
</div>
<div class="card-body">
{% if environments %}
<div class="table-responsive">
<table class="table table-striped table-hover">
<thead>
<tr>
<th>ID</th>
<th>Environment Name</th>
<th>Python Version</th>
<th>Path</th>
<th>Status</th>
<th>Last Verified</th>
</tr>
</thead>
<tbody>
{% for env in environments %}
<tr>
<td>{{ env.id }}</td>
<td>
<strong>{{ env.name }}</strong>
{% if env.name == 'base' %}
<span class="badge bg-success ms-1">Default</span>
{% endif %}
</td>
<td>
{% if env.python_version %}
<span class="badge bg-info">{{ env.python_version }}</span>
{% else %}
<span class="text-muted">Unknown</span>
{% endif %}
</td>
<td>
<small class="text-muted font-monospace">{{ env.path }}</small>
</td>
<td>
{% if env.is_available %}
<span class="badge bg-success">
<i class="bi bi-check-circle"></i>
Available
</span>
{% else %}
<span class="badge bg-danger">
<i class="bi bi-x-circle"></i>
Unavailable
</span>
{% endif %}
</td>
<td>
{% if env.last_verified %}
<small class="text-muted">{{ env.last_verified.strftime('%Y-%m-%d %H:%M') }}</small>
{% else %}
<small class="text-muted">Never</small>
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% else %}
<div class="text-center py-4">
<i class="bi bi-inbox display-4 text-muted"></i>
<h5 class="mt-3 text-muted">No environments found</h5>
<p class="text-muted">Click "Refresh Environments" to scan for available conda environments.</p>
</div>
{% endif %}
</div>
</div>
<!-- Environment Usage Information -->
<div class="card mt-4">
<div class="card-header">
<h5 class="card-title mb-0">
<i class="bi bi-info-circle"></i>
Environment Assignment
</h5>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-6">
<h6>How to assign environments to script groups:</h6>
<ol class="small">
<li>Environments are assigned at the script group level</li>
<li>Each script group can use a different conda environment</li>
<li>If no environment is assigned, the 'base' environment is used</li>
<li>Scripts automatically run in their assigned environment</li>
</ol>
</div>
<div class="col-md-6">
<h6>Environment requirements:</h6>
<ul class="small">
<li>Python 3.7+ is recommended</li>
<li>Required packages should be installed in each environment</li>
<li>Environments must be accessible from the current user</li>
<li>Environment paths should not contain spaces</li>
</ul>
</div>
</div>
</div>
</div>
{% endif %}
</div>
</div>
</div>
{% endblock %}