updates, back and front
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import os
|
||||
|
||||
from flask import Flask, send_from_directory
|
||||
from flask import Flask, send_from_directory, jsonify
|
||||
from werkzeug.exceptions import HTTPException, NotFound, BadRequest
|
||||
from sqlalchemy import text
|
||||
|
||||
from .extensions import db, migrate, cors
|
||||
@@ -35,6 +36,21 @@ def create_app(config_name=None):
|
||||
if path and os.path.exists(os.path.join(static_folder, path)):
|
||||
return send_from_directory(static_folder, path)
|
||||
return send_from_directory(static_folder, 'index.html')
|
||||
|
||||
@app.errorhandler(404)
|
||||
def not_found(e):
|
||||
return jsonify({'error': 'Resource not found', 'message': str(e)}), 404
|
||||
|
||||
@app.errorhandler(400)
|
||||
def bad_request(e):
|
||||
return jsonify({'error': 'Bad request', 'message': str(e)}), 400
|
||||
|
||||
@app.errorhandler(Exception)
|
||||
def handle_exception(e):
|
||||
if isinstance(e, HTTPException):
|
||||
return jsonify({'error': e.name, 'message': e.description}), e.code
|
||||
app.logger.error(f"Unhandled exception: {str(e)}", exc_info=True)
|
||||
return jsonify({'error': 'Internal server error', 'message': 'An unexpected error occurred'}), 500
|
||||
|
||||
return app
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
from .extensions import db
|
||||
from datetime import datetime, date
|
||||
from datetime import datetime, date, timezone
|
||||
|
||||
|
||||
class Project(db.Model):
|
||||
@@ -11,7 +11,7 @@ class Project(db.Model):
|
||||
description = db.Column(db.Text)
|
||||
drive_url = db.Column(db.String(500))
|
||||
archived_at = db.Column(db.DateTime, nullable=True)
|
||||
created_at = db.Column(db.DateTime, default=datetime.utcnow)
|
||||
created_at = db.Column(db.DateTime, default=lambda: datetime.now(timezone.utc))
|
||||
|
||||
deliverables = db.relationship(
|
||||
'Deliverable',
|
||||
@@ -49,7 +49,7 @@ class Deliverable(db.Model):
|
||||
title = db.Column(db.String(300), nullable=False)
|
||||
due_date = db.Column(db.Date, nullable=False)
|
||||
status = db.Column(db.String(20), nullable=False, default='upcoming')
|
||||
created_at = db.Column(db.DateTime, default=datetime.utcnow)
|
||||
created_at = db.Column(db.DateTime, default=lambda: datetime.now(timezone.utc))
|
||||
|
||||
def effective_status(self):
|
||||
"""
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from flask import Blueprint, jsonify, request
|
||||
from ..models import Project, Deliverable
|
||||
from ..extensions import db
|
||||
from datetime import date, datetime
|
||||
from datetime import date, datetime, timezone
|
||||
|
||||
projects_bp = Blueprint('projects', __name__)
|
||||
|
||||
@@ -57,7 +57,7 @@ def update_project(id):
|
||||
@projects_bp.route('/projects/<int:id>/archive', methods=['PATCH'])
|
||||
def archive_project(id):
|
||||
project = Project.query.get_or_404(id)
|
||||
project.archived_at = datetime.utcnow()
|
||||
project.archived_at = datetime.now(timezone.utc)
|
||||
db.session.commit()
|
||||
return jsonify(project.to_dict())
|
||||
|
||||
|
||||
Reference in New Issue
Block a user