Last active
March 10, 2017 18:56
-
-
Save patelc75/ae1b304827ecf6e4ef72e7360a57070a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from flask.ext.script import Command, Option | |
from permissions import encode_account_token | |
from flask import current_app | |
from models.person import Person | |
from database import db | |
from models.jobs import Job | |
from commands.create_test_data import CreateTestDataCommand | |
from fixtures.persons import person_factory, education_factory, working_relationship_factory, sample_person | |
from fixtures.event_mocks import event_queues | |
import factory | |
from fixtures.saved_application import saved_application_factory | |
from fixtures.uploaded_files import uploaded_file_base64_data | |
from utils.applications.process import process_application | |
from models.saved_application import SavedApplication | |
import names | |
import random | |
class DuplicateApplications(CreateTestDataCommand): | |
''' | |
Duplicate applications based on team id | |
Command to run on Heroku (prod, staging, review app): | |
heroku run python manage.py dupe-apps --team_id=30463 --max_app_per_job=2 --max_total_apps=10 --app apploi-api-staging-pr-254 | |
''' | |
def __init__(this): | |
this.PersonFactory = person_factory(db.session) | |
this.EducationFactory = education_factory(db.session, this.PersonFactory) | |
this.WorkingRelationshipFactory = working_relationship_factory(db.session, this.PersonFactory) | |
def get_options(self): | |
return [ | |
Option('--team_id', required=True, help='team id'), | |
Option('--max_app_per_job', required=True, help='max number of applications to create per job on team'), | |
Option('--max_total_apps', required=True, help='max number of applications to create period') | |
] | |
def run(self, team_id, max_app_per_job, max_total_apps): | |
jobs = db.session.query(Job).filter(Job.team_id==team_id, Job.searchable) | |
for job in jobs: | |
#person = self.PersonFactory() | |
#self.create_person_basic_info(person) | |
person = Person() | |
person.first_name = names.get_first_name() | |
person.last_name = names.get_last_name() | |
person.email = person.first_name + str(random.randint(100, 100000)) + "@apploi.pw" | |
#db.session.add() | |
answers_json = SavedApplication.sample_answers_for_questions(job.application_form_template.questions, uploaded_file_base64_data()) | |
saved_application_completed = SavedApplication() | |
saved_application_completed.job = job | |
saved_application_completed.person = person | |
saved_application_completed.answers_json = answers_json | |
saved_application_completed.application_schema_json = job.application_schema() | |
#db.session.add(saved_application_completed) | |
processed_application = process_application(saved_application_completed) | |
db.session.add(processed_application) | |
db.session.commit() | |
command = DuplicateApplications() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment