Example #1
0
def create_task():
    try:
        project_name = request.json.get('project_name')
        title = request.json.get('task_title')
        status = request.json.get('status')
        reason = request.json.get('reason')
        user_name = session['user']['user_name']
        user_obj = User.query.filter_by(user_name=user_name).first()
        project_obj = Project.query.filter_by(
            project_name=project_name).first()
        user_obj.projects.append(project_obj)
        task = Tasks(task_title=title,
                     status=status,
                     reason=reason,
                     project=project_obj,
                     user=user_obj)
        db.session.add(task)
        db.session.commit()
        message = "Successfully saved task"
        return send_success_response(message)
    except KeyError as e:
        print(e)
        return send_error_response()
    except Exception as e:
        print(e)
        message = "Error in storing task"
        return send_error_response(message)
Example #2
0
def create_user():
    try:
        user_info = google_auth.get_user_info()
        user = User.query.filter_by(user_name=user_info['name']).first()
        if user:
            message = "User already exists"
            user_schema = UserSchema()
            data = user_schema.dump(user).data
            session['user'] = data
            return send_success_response(message)
        if user_info['email'] == "*****@*****.**":
            user = User(user_name=user_info['name'],
                        user_email=user_info['email'],
                        is_admin=True)
        else:
            user = User(user_name=user_info['name'],
                        user_email=user_info['email'])
        db.session.add(user)
        db.session.commit()
        user_schema = UserSchema()
        data = user_schema.dump(user).data
        session['user'] = data
        message = "User created successfully"
        return send_success_response(message)
    except Exception as e:
        message = "Error in creating user"
        return send_error_response(str(e))
Example #3
0
def delete_project(project_id):
    try:
        project = Project.query.get(project_id)
        db.session.delete(project)
        db.session.commit()
        message = "Deleted project successfully"
        return send_success_response(message)
    except Exception as e:
        print(e)
        message = "Error in deleting project"
        return send_error_response(message)
Example #4
0
def delete_task(task_id):
    try:
        task = Tasks.query.get(task_id)
        db.session.delete(task)
        db.session.commit()
        message = "Deleted task successfully"
        return send_success_response(message)
    except Exception as e:
        print(e)
        message = "Error in deleting task"
        return send_error_response(message)
Example #5
0
def create_project():
    try:
        project_name = request.json.get('project_name')
        in_report = request.json.get('in_report')
        project = Project(project_name=project_name, in_report=in_report)
        db.session.add(project)
        db.session.commit()
        message = "Successfully created project"
        return send_success_response(message)
    except Exception as e:
        print(e)
        message = "Error in creating projects"
        return send_error_response(message)
Example #6
0
def get_task_info(task_id):
    try:
        task = Tasks.query.get(task_id)
        if not task:
            message = "There is no task with that id"
            return send_success_response(message)
        task_schema = TaskSchema()
        message = "Successfully retrieved task of " + task.task_title
        data = task_schema.dump(task).data
        return send_success_response(message, data)
    except Exception as e:
        print(e)
        message = "Error in retrieving task of " + str(task_id)
        return send_error_response(message)
Example #7
0
def get_all_tasks():
    try:
        task = Tasks.query.order_by(desc(Tasks.date)).all()
        if not task:
            message = "There is no task"
            return send_success_response(message)
        task_schema = TaskSchema(many=True)
        data = task_schema.dump(task).data
        message = "Successfully retrieved tasks"
        return send_success_response(message, data)
    except Exception as e:
        print(e)
        message = "Error in retrieving tasks"
        return send_error_response(message)
Example #8
0
def get_all_projects():
    try:
        project = Project.query.all()
        if not project:
            message = "There is no project available"
            return send_success_response(message)
        project_schema = ProjectSchema(many=True)
        data = project_schema.dump(project).data
        message = "Successfully retrieved projects"
        return send_success_response(message, data)
    except Exception as e:
        print(e)
        message = "Error in retrieving projects"
        return send_error_response(message)
Example #9
0
def get_task(user_id):
    try:
        user = User.query.get(user_id)
        task = Tasks.query.filter_by(user=user).order_by(desc(
            Tasks.date)).all()
        if not task:
            message = "There is no task of user" + user.user_name
            return send_success_response(message)
        task_schema = TaskSchema(many=True)
        message = "Successfully retrieved task of " + user.user_name
        data = task_schema.dump(task).data
        return send_success_response(message, data)
    except Exception as e:
        print(e)
        message = "Error in retrieving task of " + str(user_id)
        return send_error_response(message)
Example #10
0
def update_task(task_id):
    try:
        task = Tasks.query.get(task_id)
        project_name = request.json.get('project_name')
        task.task_title = request.json.get('task_title', task.task_title)
        task.status = request.json.get('status', task.status)
        task.reason = request.json.get('reason', task.reason)
        task.project = Project.query.filter_by(
            project_name=project_name).first()
        db.session.commit()
        task_schema = TaskSchema()
        data = task_schema.dump(task).data
        message = "Successfully updated tasks"
        return send_success_response(message, data)
    except Exception as e:
        print(e)
        message = "Error in updating task"
        return send_error_response(message)
Example #11
0
def user_status():
    try:
        user_dict = {}
        user_status = set()
        datenow = datetime.datetime.now(pytz.timezone('Asia/Kolkata')).date()
        tasks = Tasks.query.filter_by(date=datenow).all()
        users = User.query.all()
        for task in tasks:
            user_status.add(task.user.user_name)
        for user in users:
            if user.user_name in user_status:
                user_dict.update({user.user_name: True})
            else:
                user_dict.update({user.user_name: False})
        return user_dict
    except Exception as e:
        print(e)
        message = "Error in user status"
        return send_error_response(message)
Example #12
0
def generate_report():
    try:
        data_dict = {}
        datenow = datetime.datetime.now(pytz.timezone('Asia/Kolkata')).date()
        tasks = Tasks.query.filter_by(date=datenow).all()
        for task in tasks:
            project_task = []
            if task.project not in data_dict:
                project_task.append(task)
                data_dict[task.project] = {task.user.user_name: project_task}
            else:
                if task.user.user_name not in data_dict[task.project].keys():
                    project_task.append(task)
                    data_dict[task.project].update(
                        {task.user.user_name: project_task})
                else:
                    project_task = data_dict[task.project][task.user.user_name]
                    project_task.append(task)
                    data_dict[task.project].update(
                        {task.user.user_name: project_task})
        context = {
            'date': datenow,
            'pro_details': data_dict,
        }
        rendered = render_template("report.html", context=context)
        text = html2text.html2text(rendered)
        file_name = str(datetime.datetime.now().date()) + '_Task_Report'
        response = make_response(text)
        response.headers['Content_Type'] = 'text/plain'
        response.headers[
            'Content-Disposition'] = 'attachment; filename={}.txt'.format(
                file_name)
        return response
    except Exception as e:
        print(e)
        message = "Error in generating tasks"
        return send_error_response(message)