Exemple #1
0
def author_from_row(row, index=None):
    chunks = row.get('Name', '').split(' ')
    first_name = '{}test'.format(COMMAND_NAME).title() if IS_DEVELOPMENT \
                 else chunks[0]
    last_name = 'Author{}'.format(index) if IS_DEVELOPMENT \
                else ' '.join(chunks[1:]).replace('\'', '')
    user_dict = {
        '__SEARCH_BY__': 'email',
        'email': '{}.{}@{}.{}'.format(
            first_name.lower(),
            last_name.lower(),
            APP_NAME,
            TLD),
        'firstName': first_name,
        'lastName': last_name,
        'scienceFeedbackIdentifier': row['airtableId']
    }

    user = User.create_or_modify(user_dict)
    if not user.id:
        user.set_password(DEFAULT_USER_PASSWORD if IS_DEVELOPMENT else create_random_password())

    role = Role.create_or_modify({
        '__SEARCH_BY__': ['type', 'userId'],
        'type': RoleType.AUTHOR,
        'userId': humanize(user.id)
    })
    user.roles = user.roles + [role]

    return user
Exemple #2
0
def reviewer_from_row(row, index=None):
    first_name = '{}test'.format(COMMAND_NAME).title() if IS_DEVELOPMENT \
                 else row['First name']
    last_name = 'Reviewer{}'.format(index) if IS_DEVELOPMENT \
                else row['Last name']
    user_dict = {
        '__SEARCH_BY__': 'email',
        'email': '{}.{}@{}.{}'.format(
            first_name.lower(),
            last_name.lower(),
            APP_NAME,
            TLD) if IS_DEVELOPMENT else row['Email'],
        'firstName': first_name,
        'lastName': last_name,
        'scienceFeedbackIdentifier': row['airtableId']
    }

    user = User.create_or_modify(user_dict)
    if not user.id:
        user.set_password(DEFAULT_USER_PASSWORD if IS_DEVELOPMENT else create_random_password())

    role = Role.create_or_modify({
        '__SEARCH_BY__': ['type', 'userId'],
        'type': RoleType.REVIEWER,
        'userId': humanize(user.id)
    })
    user.roles = user.roles + [role]

    return user
def content_verdicts_from_scrap(verdicts_max=3):
    feedbacks = scrap_feedbacks(feedbacks_max=verdicts_max)
    verdicts = []
    for feedback in feedbacks:
        verdict = Verdict.create_or_modify(feedback)
        content = content_from_url(feedback['article']['url'])
        for reviewer in verdict['reviewer']:
            reviewer = reviewer_from_url(reviewer['url'])
            user = User.create_or_modify({
                '__SEARCH_BY__': ['firstName', 'lastName'],
                **reviewer
            })
            role = Role.create_or_modify({
                '__SEARCH_BY__': ['type', 'userId'],
                'type': 'reviewer',
                'userId': humanize(user.id)
            })
            user.roles = user.roles + [role]
            review = Review.create_or_modify({
                '__SEARCH_BY__': ['contentId', 'userId'],
                'contentId':
                humanize(content.id),
                'userId':
                humanize(user.id),
                **reviewer['review']
            })
            user.reviews = user.reviews + [review]
            verdict_user = VerdictUser.create_or_modify({
                '__SEARCH_BY__': ['verdictId', 'userId'],
                'verdictId':
                humanize(verdict.id),
                'userId':
                humanize(user.id)
            })
            verdict.verdictUsers = verdict.verdictUsers + [verdict_user]
    return verdicts