ciyidogan commited on
Commit
700e0ca
·
verified ·
1 Parent(s): b0a3a9e

Update admin_routes.py

Browse files
Files changed (1) hide show
  1. admin_routes.py +45 -40
admin_routes.py CHANGED
@@ -382,47 +382,52 @@ async def list_projects(
382
  return projects
383
 
384
  @router.post("/projects")
385
- async def create_project(project: ProjectCreate, username: str = Depends(verify_token)):
386
  """Create new project"""
387
- config = load_config()
388
-
389
- # Check duplicate name
390
- existing = [p for p in config.get("projects", []) if p["name"] == project.name]
391
- if existing:
392
- raise HTTPException(status_code=400, detail="Project name already exists")
393
-
394
- # Get next ID
395
- config["config"]["project_id_counter"] = config["config"].get("project_id_counter", 0) + 1
396
- project_id = config["config"]["project_id_counter"]
397
-
398
- # Create project
399
- new_project = {
400
- "id": project_id,
401
- "name": project.name,
402
- "caption": project.caption,
403
- "enabled": True,
404
- "last_version_number": 0,
405
- "version_id_counter": 0,
406
- "versions": [],
407
- "deleted": False,
408
- "created_date": get_timestamp(),
409
- "created_by": username,
410
- "last_update_date": get_timestamp(),
411
- "last_update_user": username
412
- }
413
-
414
- if "projects" not in config:
415
- config["projects"] = []
416
- config["projects"].append(new_project)
417
-
418
- # Add activity log
419
- add_activity_log(config, username, "CREATE_PROJECT", "project", project_id, project.name)
420
-
421
- # Save
422
- save_config(config)
423
-
424
- log(f"✅ Project '{project.name}' created by {username}")
425
- return new_project
 
 
 
 
 
426
 
427
  @router.put("/projects/{project_id}")
428
  async def update_project(
 
382
  return projects
383
 
384
  @router.post("/projects")
385
+ async def create_project(project_data: dict, current_user: str = Depends(auth.get_current_user)):
386
  """Create new project"""
387
+ try:
388
+ config = load_config()
389
+
390
+ # Generate new project ID
391
+ max_id = max([p.get("id", 0) for p in config.get("projects", [])], default=0)
392
+ new_id = max_id + 1
393
+
394
+ # Create project
395
+ new_project = {
396
+ "id": new_id,
397
+ "name": project_data["name"],
398
+ "caption": project_data.get("caption", ""),
399
+ "icon": project_data.get("icon", "folder"),
400
+ "description": project_data.get("description", ""),
401
+ "enabled": False,
402
+ "deleted": False,
403
+ "default_language": project_data.get("default_language", "tr"),
404
+ "supported_languages": project_data.get("supported_languages", ["tr"]),
405
+ "timezone": project_data.get("timezone", "Europe/Istanbul"),
406
+ "region": project_data.get("region", "tr-TR"),
407
+ "test_users": project_data.get("test_users", []),
408
+ "versions": [], # Boş versiyon listesi ile başla
409
+ "last_update_date": datetime.now().isoformat()
410
+ }
411
+
412
+ # Add to config
413
+ if "projects" not in config:
414
+ config["projects"] = []
415
+ config["projects"].append(new_project)
416
+
417
+ # Save config
418
+ save_config(config)
419
+
420
+ # Log activity
421
+ log_activity("create_project", {
422
+ "project_id": new_id,
423
+ "project_name": new_project["name"]
424
+ }, current_user)
425
+
426
+ return new_project
427
+
428
+ except Exception as e:
429
+ logger.error(f"Failed to create project: {str(e)}")
430
+ raise HTTPException(status_code=500, detail=str(e))
431
 
432
  @router.put("/projects/{project_id}")
433
  async def update_project(