Exemplo n.º 1
0
def get_feedback():
    if request.method == 'POST':
        recipients = request.form.getlist('email')
        share = request.form.get('share-objectives')
        share_objectives = share == 'share-objectives'

        for recipient in recipients:
            user = current_user._get_current_object()
            other_user = User.objects.filter(email=recipient).first()

            entry = Entry()
            entry.requested_by = user.email
            entry.requested_from = other_user.email
            entry.requested_by_name = user.full_name
            entry.requested_from_name = other_user.full_name
            entry.template = request.form.get('feedback-template')
            entry.share_objectives = share_objectives
            if share_objectives:
                # get and attach objectives
                pass
            entry.save()

            log_entry = LogEntry()
            log_entry.entry_type = 'feedback'
            log_entry.owner = user
            log_entry.entry = entry
            log_entry.save()
            log_entry.add_tag('Feedback')

            _send_feedback_email(log_entry, user, other_user)
        flash('Submitted request')

    return render_template('feedback/get-feedback.html')
Exemplo n.º 2
0
def test_log_with_valid_fields():
    entry = Entry()
    entry.content = 'content is all there is'
    entry.save()

    log_entry = LogEntry()
    log_entry.entry_type = 'log'
    log_entry.entry = entry
    entry.save()
Exemplo n.º 3
0
def test_entry_type_must_be_in_models_schema():
    entry = Entry()
    entry.save()
    log_entry = LogEntry()
    log_entry.entry_type = 'catfish'
    log_entry.entry = entry

    with pytest.raises(ValidationError):
        log_entry.save()
def test_log_with_valid_fields():
    entry = Entry()
    entry.content = "content is all there is"
    entry.save()

    log_entry = LogEntry()
    log_entry.entry_type = "log"
    log_entry.entry = entry
    entry.save()
Exemplo n.º 5
0
def test_objective_with_valid_fields():
    entry = Entry()
    entry.how = 'this is how'
    entry.what = 'this is what'
    entry.save()

    log_entry = LogEntry()
    log_entry.entry_type = 'objective'
    log_entry.entry = entry
    log_entry.save()
Exemplo n.º 6
0
def test_log_with_invalid_fields():
    entry = Entry()
    entry.foo = 'this is not right there is no foo'
    entry.save()

    log_entry = LogEntry()
    log_entry.entry_type = 'log'
    log_entry.entry = entry

    with pytest.raises(ValidationError):
        log_entry.save()
def test_log_with_invalid_fields():
    entry = Entry()
    entry.foo = "this is not right there is no foo"
    entry.save()

    log_entry = LogEntry()
    log_entry.entry_type = "log"
    log_entry.entry = entry

    with pytest.raises(ValidationError):
        log_entry.save()
Exemplo n.º 8
0
def test_save_log_entry_with_content():
    entry = Entry()
    entry.content = 'content is all there is'
    entry.save()

    log_entry = LogEntry()
    log_entry.entry_type = 'log'
    log_entry.entry = entry
    log_entry.save()

    from_db = LogEntry.objects(id=log_entry.id).get()
    assert from_db.entry.content == 'content is all there is'
    assert from_db.entry_type == 'log'
Exemplo n.º 9
0
def test_save_log_entry_with_content():
    entry = Entry()
    entry.content = 'content is all there is'
    entry.save()

    log_entry = LogEntry()
    log_entry.entry_type = 'log'
    log_entry.entry = entry
    log_entry.save()

    from_db = LogEntry.objects(id=log_entry.id).get()
    assert from_db.entry.content == 'content is all there is'
    assert from_db.entry_type == 'log'
Exemplo n.º 10
0
def test_feedback_with_valid_fields():
    entry = Entry()
    entry.requested_from = '*****@*****.**'
    entry.requested_by = '*****@*****.**'
    entry.details = 'details'
    entry.share_objectives = True
    entry.sent = True
    entry.replied = True
    entry.save()

    log_entry = LogEntry()
    log_entry.entry_type = 'feedback'
    log_entry.entry = entry
    log_entry.save()
def test_feedback_with_valid_fields():
    entry = Entry()
    entry.requested_from = '*****@*****.**'
    entry.requested_by = '*****@*****.**'
    entry.details = 'details'
    entry.share_objectives = True
    entry.sent = True
    entry.replied = True
    entry.save()

    log_entry = LogEntry()
    log_entry.entry_type = 'feedback'
    log_entry.entry = entry
    log_entry.save()
Exemplo n.º 12
0
def test_save_log_entry_with_objective():
    entry = Entry()
    entry.how = 'this is how'
    entry.what = 'this is what'
    entry.save()

    log_entry = LogEntry()
    log_entry.entry_type = 'objective'
    log_entry.entry = entry
    log_entry.save()

    from_db = LogEntry.objects(id=log_entry.id).get()
    assert from_db.entry_type == 'objective'
    assert from_db.entry.how == 'this is how'
    assert from_db.entry.what == 'this is what'
Exemplo n.º 13
0
def test_save_log_entry_with_objective():
    entry = Entry()
    entry.how = 'this is how'
    entry.what = 'this is what'
    entry.save()

    log_entry = LogEntry()
    log_entry.entry_type = 'objective'
    log_entry.entry = entry
    log_entry.save()

    from_db = LogEntry.objects(id=log_entry.id).get()
    assert from_db.entry_type == 'objective'
    assert from_db.entry.how == 'this is how'
    assert from_db.entry.what == 'this is what'
Exemplo n.º 14
0
    def create(self):
        entry = Entry(
            title=self.title.data,
            content=self.content.data)
        entry.save()

        note = LogEntry(
            entry_type='log',
            owner=current_user._get_current_object(),
            entry=entry)
        note.save()

        for tag in self.tags.data.split(','):
            note.add_tag(tag)

        return note
Exemplo n.º 15
0
def test_save_log_entry_with_feedback():
    entry = Entry()
    entry.requested_from = '*****@*****.**'
    entry.requested_by = '*****@*****.**'
    entry.details = 'details'
    entry.share_objectives = True
    entry.sent = True
    entry.replied = True
    entry.save()

    log_entry = LogEntry()
    log_entry.entry_type = 'feedback'
    log_entry.entry = entry
    log_entry.save()

    from_db = LogEntry.objects(id=log_entry.id).get()
    assert from_db.entry_type == 'feedback'
    assert from_db.entry.requested_from == '*****@*****.**'
    assert from_db.entry.requested_by == '*****@*****.**'
    assert from_db.entry.details == 'details'
    assert from_db.entry.share_objectives
    assert from_db.entry.sent
    assert from_db.entry.replied
Exemplo n.º 16
0
def test_save_log_entry_with_feedback():
    entry = Entry()
    entry.requested_from = '*****@*****.**'
    entry.requested_by = '*****@*****.**'
    entry.details = 'details'
    entry.share_objectives = True
    entry.sent = True
    entry.replied = True
    entry.save()

    log_entry = LogEntry()
    log_entry.entry_type = 'feedback'
    log_entry.entry = entry
    log_entry.save()

    from_db = LogEntry.objects(id=log_entry.id).get()
    assert from_db.entry_type == 'feedback'
    assert from_db.entry.requested_from == '*****@*****.**'
    assert from_db.entry.requested_by == '*****@*****.**'
    assert from_db.entry.details == 'details'
    assert from_db.entry.share_objectives
    assert from_db.entry.sent
    assert from_db.entry.replied
Exemplo n.º 17
0
    def setUp(self):
        self.app = application.app
        bcrypt = Bcrypt(self.app)

        # forcibly reconnect to testing db
        connection.disconnect()
        self.app.config['MONGO_CONFIG']['db_name'] = 'pipeline_testing'
        mongo_config = self.app.config['MONGO_CONFIG']
        mongodb_uri = 'mongodb://'
        if mongo_config['dbuser'] and mongo_config['dbpassword']:
            mongodb_uri += '%s:%s@' % (mongo_config['dbuser']
                    , mongo_config['dbpassword'])
        mongodb_uri += '%s/%s' % (mongo_config['hosts'], mongo_config['db_name'])
        self.connection = connect(mongo_config['db_name'], host=mongodb_uri)

        # drop any lingering test dbs
        self.connection.drop_database(
            self.app.config['MONGO_CONFIG']['db_name'])

        ''' create test user
        '''
        member_user = User(
            admin_rights = False
            , email = '*****@*****.**'
            , email_confirmation_code = 'goodday'
            , email_confirmed = True
            , last_login_time = datetime.utcnow()
            , password_hash = bcrypt.generate_password_hash('hola!')
            , registration_time = datetime.utcnow()
            , verified = True)
        member_user.save()

        ''' create test org
        '''
        test_org = Organization(
            label = 'euro-water'
            , name = 'Euro Water')
        test_org.save()
        # save membership
        member_user.update(push__organizations = test_org)

        ''' create test headers
        '''
        date_header = Header(data_type = 'datetime', name = 'date',
                label = 'date')
        date_header.save()

        pH_header = Header(data_type = 'number', name = 'pH', label = 'pH')
        pH_header.save()

        city_header = Header(data_type = 'string', name = 'city',
                label = 'city')
        city_header.save()
        headers = [date_header, pH_header, city_header]

        # save ref to this header for later test
        self.date_header_id = date_header.id

        ''' create test project
        '''
        test_project = Project(
            creation_time = datetime.utcnow()
            , label = 'water-quality'
            , name = 'water quality'
            , ordered_schema = headers
            , organization = test_org)
        test_project.save()
        test_org.update(push__projects=test_project)

        ''' update the headers with a ref to the project
        '''
        for header in headers:
            header.update(set__project = test_project)

        ''' create test datapoints
        '''
        test_data = [
            {'date': datetime(2012, 3, 4), 'pH': 2.2, 'city': 'Madrid'}
            , {'date': datetime(2012, 3, 5), 'pH': 3, 'city': 'Paris'}
            , {'date': datetime(2012, 3, 6), 'pH': 4, 'city': 'London'}
            , {'date': datetime(2012, 3, 6), 'pH': 3, 'city': 'London'}
            , {'date': datetime(2012, 3, 6), 'pH': None, 'city': 'London'}
        ]
        for datapoint in test_data:
            new_entry = Entry(
                project = test_project
                , unique = True
                , values = datapoint)
            new_entry.save()