コード例 #1
0
ファイル: app.py プロジェクト: raghav1674/RPA_PROJECT_
def task():
    page = request.args.get("page")
    
    if 'username' not in session:
        flash("No User Logged in", "warning")
        return render_template("login.html")
    form = TaskForm(request.form)
    if request.method == 'POST' and form.validate() and form.validate_end_date(form.end_date) and form.validate_sheet_url(form.sheet_url)  and form.validate_sheet_name(form.sheet_url):
        # function created by me to validate the enddate (enddate > startdate)

        new_task = Tasks(
            name=form.name.data,
            description=form.description.data,

            start_date=form.start_date.data,
            end_date=form.end_date.data,
            sheet_name=form.sheet_name.data,
            sheet_url=form.sheet_url.data,
            created_by=session["username"],
            status=Status.PE,
            bot_assigned=form.bot_assigned.data
        )

        db.session.add(new_task)
        db.session.commit()
        
        
        
        # schedule the bot here
        
       
        bot_name = str(new_task.bot_assigned.split(" ")[0])
        trigger_name = new_task.sheet_name +"_"  + str(new_task.id)
        stop_date = new_task.end_date.strftime("%Y-%m-%d")  
        
        print(bot_name)
        
        
        # parameters to be passed to the bot while scheduling
        
        
        start_date = new_task.start_date.strftime("%Y-%m-%d") 
        sheet_uri = new_task.sheet_url
        faculty_mail_id = session['email_address']
        task_id = new_task.id
        sheet = new_task.sheet_name
        curr_hour = datetime.datetime.now().today().hour 
        
        input_args = {
            
            "start_date": start_date,
            "end_date": stop_date,
            "sheet_url": sheet_uri,
            "task_id": task_id,
            "sheet": sheet,
            "faculty_mail_id": faculty_mail_id
            
            
            
        }
    
       
              
        if  "excel"  in str(new_task.bot_assigned).lower(): 
            
            long_running = True
            
        if "document" in str(new_task.bot_assigned).lower() or "synopsis" in  str(new_task.bot_assigned).lower():
            
            long_running = False
            
        
        schedule_tasks(bot_name =bot_name,trigger_name = trigger_name,input_arguments= input_args,curr_hour = curr_hour ,stop_date = stop_date,long_running =long_running)
        print("executed commad ",long_running)
        

        return redirect(url_for("dashboard", page=page))
    return render_template("task.html", form=form)