Status LED
Dieser Commit ist enthalten in:
@ -58,10 +58,12 @@ class ProjectManager:
|
||||
self.projects: Dict[str, Project] = {}
|
||||
self.vps_project = None
|
||||
self.admin_panel_project = None
|
||||
self.activity_server_project = None
|
||||
self._ensure_data_dir()
|
||||
self.load_projects()
|
||||
self._initialize_vps_project()
|
||||
self._initialize_admin_panel_project()
|
||||
self._initialize_activity_server_project()
|
||||
|
||||
def _ensure_data_dir(self):
|
||||
"""Ensure data directory exists"""
|
||||
@ -101,6 +103,22 @@ class ProjectManager:
|
||||
else:
|
||||
self.admin_panel_project = self.projects[admin_id]
|
||||
|
||||
def _initialize_activity_server_project(self):
|
||||
"""Initialize the permanent Activity Server project"""
|
||||
activity_id = "activity-server-permanent"
|
||||
if activity_id not in self.projects:
|
||||
self.activity_server_project = Project(
|
||||
name="Activity Server",
|
||||
path="/home/claude-dev/cpm-activity-server",
|
||||
project_id=activity_id
|
||||
)
|
||||
self.activity_server_project.description = "CPM Activity Server"
|
||||
self.activity_server_project.tags = ["activity", "server", "cpm"]
|
||||
self.projects[activity_id] = self.activity_server_project
|
||||
self.save_projects()
|
||||
else:
|
||||
self.activity_server_project = self.projects[activity_id]
|
||||
|
||||
def load_projects(self):
|
||||
"""Load projects from JSON file"""
|
||||
logger.info("Loading projects from file")
|
||||
@ -162,12 +180,13 @@ class ProjectManager:
|
||||
def get_all_projects(self) -> List[Project]:
|
||||
"""Get all projects sorted alphabetically by name"""
|
||||
projects = list(self.projects.values())
|
||||
# Sort alphabetically, but keep VPS and Admin Panel first
|
||||
# Sort alphabetically, but keep VPS projects first
|
||||
vps = [p for p in projects if p.id == "vps-permanent"]
|
||||
admin = [p for p in projects if p.id == "admin-panel-permanent"]
|
||||
others = [p for p in projects if p.id not in ["vps-permanent", "admin-panel-permanent"]]
|
||||
activity = [p for p in projects if p.id == "activity-server-permanent"]
|
||||
others = [p for p in projects if p.id not in ["vps-permanent", "admin-panel-permanent", "activity-server-permanent"]]
|
||||
others.sort(key=lambda p: p.name.lower()) # Sort alphabetically by name (case-insensitive)
|
||||
return vps + admin + others
|
||||
return vps + admin + activity + others
|
||||
|
||||
def update_project(self, project_id: str, **kwargs):
|
||||
"""Update project properties"""
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren