def def_get_edit_count_of(self): engelbert = DBDiscussionSession.query(User).filter_by( nickname='Engelbert').first() self.assertEqual(0, user.get_edit_count_of(None, True)) self.assertEqual(0, user.get_edit_count_of(None, False)) self.assertEqual(0, user.get_edit_count_of(engelbert, True)) self.assertEqual(0, user.get_edit_count_of(engelbert, False)) # add edit db_st = DBDiscussionSession.query(Statement).get(1) db_tv = TextVersion('hello, here i am again', engelbert.uid, db_st.uid) DBDiscussionSession.add(db_tv) DBDiscussionSession.flush() transaction.commit() self.assertEqual(1, user.get_edit_count_of(engelbert, True)) self.assertEqual(1, user.get_edit_count_of(engelbert, False)) # set older timestamp db_tv.timestamp = DBDiscussionSession.query(TextVersion).get( 1).timestamp DBDiscussionSession.add(db_tv) DBDiscussionSession.flush() transaction.commit() self.assertEqual(0, user.get_edit_count_of(engelbert, True)) self.assertEqual(1, user.get_edit_count_of(engelbert, False))
def prepare_settings_dict(self, pw_change_success, old_pw, new_pw, confirm_pw, pw_change_error, message, db_user, main_page, use_with_ldap): """ Prepares the dictionary for settings.ow :param pw_change_success: Boolean :param old_pw: String :param new_pw: String :param confirm_pw: String :param pw_change_error: Boolean :param message: String :param db_user: User :param main_page: String :param use_with_ldap: Boolean :return: dict() """ _tn = Translator(self.system_lang) edits = user.get_edit_count_of(db_user, False) statements = user.get_statement_count_of(db_user, False) arg_vote, stat_vote = user.get_mark_count_of(db_user) arg_clicks, stat_clicks = user.get_click_count_of(db_user) public_nick = db_user.global_nickname db_group = DBDiscussionSession.query(Group).get(db_user.group_uid) db_settings = db_user.settings db_language = DBDiscussionSession.query(Language).get( db_settings.lang_uid) group = db_group.name if db_group else '-' gravatar_public_url = get_profile_picture(db_user, 80) reputation, tmp = get_reputation_of(db_user) return { 'passwordold': '' if pw_change_success else old_pw, 'password': '' if pw_change_success else new_pw, 'passwordconfirm': '' if pw_change_success else confirm_pw, 'pw_change_error': pw_change_error, 'pw_change_success': pw_change_success, 'message': message, 'db_firstname': db_user.firstname, 'db_surname': db_user.surname, 'db_nickname': db_user.nickname, 'db_public_nickname': public_nick, 'db_mail': db_user.email, 'has_mail': db_user.email != 'None', 'can_change_password': not use_with_ldap and db_user.oauth_provider is None, 'db_group': group, 'avatar_public_url': gravatar_public_url, 'edits_done': edits, 'statements_posted': statements, 'discussion_arg_votes': arg_vote, 'discussion_stat_votes': stat_vote, 'discussion_arg_clicks': arg_clicks, 'discussion_stat_clicks': stat_clicks, 'send_mails': db_settings.should_send_mails, 'send_notifications': db_settings.should_send_notifications, 'public_nick': db_settings.should_show_public_nickname, 'title_mails': _tn.get(_.mailSettingsTitle), 'title_notifications': _tn.get(_.notificationSettingsTitle), 'title_public_nick': _tn.get(_.publicNickTitle), 'title_preferred_lang': _tn.get(_.preferredLangTitle), 'public_page_url': main_page + '/user/' + str(db_user.uid), 'on': _tn.get(_.on), 'off': _tn.get(_.off), 'current_lang': db_language.name, 'current_ui_locales': db_language.ui_locales, 'reputation': reputation }