mirror of
https://github.com/viq/NewsBlur.git
synced 2025-09-18 21:43:31 +00:00
All setup module items now disappear/appear or show a Done title appropriately.
This commit is contained in:
parent
0d9a8be334
commit
8f0afbb7c2
14 changed files with 135 additions and 114 deletions
|
@ -43,7 +43,7 @@ def twitter_connect(request):
|
|||
logging.user(request, "~BB~FRFailed Twitter connect, another user: %s" % user.username)
|
||||
return dict(error=("Another user (%s, %s) has "
|
||||
"already connected with those Twitter credentials."
|
||||
% (user.username, user.email)))
|
||||
% (user.username, user.email or "no email")))
|
||||
|
||||
social_services, _ = MSocialServices.objects.get_or_create(user_id=request.user.pk)
|
||||
social_services.twitter_uid = unicode(twitter_user.id)
|
||||
|
|
|
@ -8,27 +8,39 @@ class Migration(SchemaMigration):
|
|||
|
||||
def forwards(self, orm):
|
||||
|
||||
# Adding field 'Profile.has_trained_intelligence'
|
||||
db.add_column('profile_profile', 'has_trained_intelligence', self.gf('django.db.models.fields.BooleanField')(default=False), keep_default=False)
|
||||
|
||||
# Adding field 'Profile.hide_find_friends'
|
||||
db.add_column('profile_profile', 'hide_find_friends', self.gf('django.db.models.fields.BooleanField')(default=False), keep_default=False)
|
||||
# Deleting field 'Profile.tutorial_finished'
|
||||
db.delete_column('profile_profile', 'tutorial_finished')
|
||||
|
||||
# Adding field 'Profile.hide_getting_started'
|
||||
db.add_column('profile_profile', 'hide_getting_started', self.gf('django.db.models.fields.BooleanField')(default=False), keep_default=False)
|
||||
|
||||
# Adding field 'Profile.has_setup_feeds'
|
||||
db.add_column('profile_profile', 'has_setup_feeds', self.gf('django.db.models.fields.BooleanField')(default=False), keep_default=False)
|
||||
|
||||
# Adding field 'Profile.has_found_friends'
|
||||
db.add_column('profile_profile', 'has_found_friends', self.gf('django.db.models.fields.BooleanField')(default=False), keep_default=False)
|
||||
|
||||
# Adding field 'Profile.has_trained_intelligence'
|
||||
db.add_column('profile_profile', 'has_trained_intelligence', self.gf('django.db.models.fields.BooleanField')(default=False), keep_default=False)
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
|
||||
# Deleting field 'Profile.has_trained_intelligence'
|
||||
db.delete_column('profile_profile', 'has_trained_intelligence')
|
||||
|
||||
# Deleting field 'Profile.hide_find_friends'
|
||||
db.delete_column('profile_profile', 'hide_find_friends')
|
||||
# Adding field 'Profile.tutorial_finished'
|
||||
db.add_column('profile_profile', 'tutorial_finished', self.gf('django.db.models.fields.BooleanField')(default=False), keep_default=False)
|
||||
|
||||
# Deleting field 'Profile.hide_getting_started'
|
||||
db.delete_column('profile_profile', 'hide_getting_started')
|
||||
|
||||
# Deleting field 'Profile.has_setup_feeds'
|
||||
db.delete_column('profile_profile', 'has_setup_feeds')
|
||||
|
||||
# Deleting field 'Profile.has_found_friends'
|
||||
db.delete_column('profile_profile', 'has_found_friends')
|
||||
|
||||
# Deleting field 'Profile.has_trained_intelligence'
|
||||
db.delete_column('profile_profile', 'has_trained_intelligence')
|
||||
|
||||
|
||||
models = {
|
||||
'auth.group': {
|
||||
|
@ -71,8 +83,9 @@ class Migration(SchemaMigration):
|
|||
'Meta': {'object_name': 'Profile'},
|
||||
'collapsed_folders': ('django.db.models.fields.TextField', [], {'default': "'[]'"}),
|
||||
'feed_pane_size': ('django.db.models.fields.IntegerField', [], {'default': '240'}),
|
||||
'has_found_friends': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'has_setup_feeds': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'has_trained_intelligence': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'hide_find_friends': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'hide_getting_started': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'hide_mobile': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
|
@ -82,8 +95,9 @@ class Migration(SchemaMigration):
|
|||
'preferences': ('django.db.models.fields.TextField', [], {'default': "'{}'"}),
|
||||
'secret_token': ('django.db.models.fields.CharField', [], {'max_length': '12', 'null': 'True', 'blank': 'True'}),
|
||||
'send_emails': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'stripe_4_digits': ('django.db.models.fields.CharField', [], {'max_length': '4', 'null': 'True', 'blank': 'True'}),
|
||||
'stripe_id': ('django.db.models.fields.CharField', [], {'max_length': '24', 'null': 'True', 'blank': 'True'}),
|
||||
'timezone': ('vendor.timezones.fields.TimeZoneField', [], {'default': "'America/New_York'", 'max_length': '100'}),
|
||||
'tutorial_finished': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'profile'", 'unique': 'True', 'to': "orm['auth.User']"}),
|
||||
'view_settings': ('django.db.models.fields.TextField', [], {'default': "'{}'"})
|
||||
}
|
|
@ -28,10 +28,10 @@ class Profile(models.Model):
|
|||
view_settings = models.TextField(default="{}")
|
||||
collapsed_folders = models.TextField(default="[]")
|
||||
feed_pane_size = models.IntegerField(default=240)
|
||||
tutorial_finished = models.BooleanField(default=False)
|
||||
has_trained_intelligence = models.BooleanField(default=False)
|
||||
hide_find_friends = models.BooleanField(default=False)
|
||||
hide_getting_started = models.BooleanField(default=False)
|
||||
has_setup_feeds = models.BooleanField(default=False)
|
||||
has_found_friends = models.BooleanField(default=False)
|
||||
has_trained_intelligence = models.BooleanField(default=False)
|
||||
hide_mobile = models.BooleanField(default=False)
|
||||
last_seen_on = models.DateTimeField(default=datetime.datetime.now)
|
||||
last_seen_ip = models.CharField(max_length=50, blank=True, null=True)
|
||||
|
|
|
@ -17,9 +17,10 @@ from utils import json_functions as json
|
|||
from utils.user_functions import ajax_login_required
|
||||
from vendor.paypal.standard.forms import PayPalPaymentsForm
|
||||
|
||||
SINGLE_FIELD_PREFS = ('timezone','feed_pane_size','tutorial_finished','hide_mobile','send_emails',
|
||||
'has_trained_intelligence', 'hide_find_friends', 'hide_getting_started',)
|
||||
SPECIAL_PREFERENCES = ('old_password', 'new_password', 'autofollow_friends')
|
||||
SINGLE_FIELD_PREFS = ('timezone','feed_pane_size','hide_mobile','send_emails',
|
||||
'hide_getting_started', 'has_setup_feeds', 'has_found_friends',
|
||||
'has_trained_intelligence',)
|
||||
SPECIAL_PREFERENCES = ('old_password', 'new_password', 'autofollow_friends',)
|
||||
|
||||
@ajax_login_required
|
||||
@require_POST
|
||||
|
|
|
@ -1067,6 +1067,9 @@ def feeds_trainer(request):
|
|||
classifier['feed_authors'] = json.decode(us.feed.data.popular_authors) if us.feed.data.popular_authors else []
|
||||
classifiers.append(classifier)
|
||||
|
||||
user.profile.has_trained_intelligence = True
|
||||
user.profile.save()
|
||||
|
||||
logging.user(user, "~FGLoading Trainer: ~SB%s feeds" % (len(classifiers)))
|
||||
|
||||
return classifiers
|
||||
|
|
|
@ -15,7 +15,6 @@
|
|||
"feed_pane_size": 240,
|
||||
"last_seen_ip": null,
|
||||
"view_settings": "{}",
|
||||
"tutorial_finished": false,
|
||||
"is_premium": false,
|
||||
"user": 1,
|
||||
"collapsed_folders": "[]",
|
||||
|
|
|
@ -2553,7 +2553,7 @@ background: transparent;
|
|||
|
||||
.NB-taskbar {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
/* overflow: hidden;*/ /* No hidden overflow so ftux callouts can show */
|
||||
}
|
||||
.NB-taskbar .NB-taskbar-sidebar-toggle-close {
|
||||
width: 20px;
|
||||
|
@ -3930,6 +3930,21 @@ background: transparent;
|
|||
.NB-module .NB-module-item.NB-last {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.NB-module .NB-module-item .NB-done-label {
|
||||
display: none;
|
||||
padding-left: 20px;
|
||||
text-transform: uppercase;
|
||||
font-weight: bold;
|
||||
background: transparent url(/media/embed/icons/silk/accept.png) no-repeat 0 0;
|
||||
color: #808080;
|
||||
font-size: 13px;
|
||||
}
|
||||
.NB-module .NB-module-item.NB-done .NB-modal-submit {
|
||||
display: none;
|
||||
}
|
||||
.NB-module .NB-module-item.NB-done .NB-done-label {
|
||||
display: block;
|
||||
}
|
||||
.NB-module .NB-module-item .NB-module-content-header {
|
||||
margin-left: 128px;
|
||||
}
|
||||
|
@ -5400,6 +5415,10 @@ background: transparent;
|
|||
text-align: center;
|
||||
padding: 12px 0 31px;
|
||||
}
|
||||
|
||||
.NB-modal-intro .NB-page-2 h4 {
|
||||
margin-bottom: 34px;
|
||||
}
|
||||
.NB-modal-intro .NB-intro-import .NB-modal-submit-button {
|
||||
margin: 0;
|
||||
font-weight: bold;
|
||||
|
|
|
@ -1112,6 +1112,8 @@
|
|||
this.load_sortable_feeds();
|
||||
this.update_header_counts();
|
||||
_.delay(_.bind(this.update_starred_count, this), 250);
|
||||
this.model.preference('has_setup_feeds', true);
|
||||
NEWSBLUR.reader.check_hide_getting_started();
|
||||
}
|
||||
|
||||
if (this.flags['showing_feed_in_tryfeed_view'] || this.flags['showing_social_feed_in_tryfeed_view']) {
|
||||
|
@ -1628,8 +1630,13 @@
|
|||
open_dialog_after_feeds_loaded: function() {
|
||||
if (!NEWSBLUR.Globals.is_authenticated) return;
|
||||
|
||||
if (!this.model.folders.length && (!NEWSBLUR.intro || !NEWSBLUR.intro.flags.open)) {
|
||||
_.defer(_.bind(this.open_intro_modal, this), 100);
|
||||
if (!this.model.folders.length) {
|
||||
if (!this.model.preference('has_setup_feeds') &&
|
||||
(!NEWSBLUR.intro || !NEWSBLUR.intro.flags.open)) {
|
||||
_.defer(_.bind(this.open_intro_modal, this), 100);
|
||||
} else if (this.model.preference('has_setup_feeds')) {
|
||||
this.setup_ftux_add_feed_callout();
|
||||
}
|
||||
} else if (!this.model.flags['has_chosen_feeds'] && this.flags['favicons_downloaded'] && this.model.folders.length) {
|
||||
_.defer(_.bind(this.open_feedchooser_modal, this), 100);
|
||||
}
|
||||
|
@ -3889,52 +3896,25 @@
|
|||
NEWSBLUR.intro = new NEWSBLUR.ReaderIntro(options);
|
||||
},
|
||||
|
||||
hide_tutorial: function() {
|
||||
var $tutorial = $('.NB-module-item-tutorial');
|
||||
|
||||
this.model.preference('tutorial_finished', true);
|
||||
$tutorial.animate({
|
||||
'opacity': 0
|
||||
}, {
|
||||
'duration': 500,
|
||||
'complete': function() {
|
||||
$tutorial.slideUp(350);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
hide_intelligence_trainer: function() {
|
||||
var $trainer = $('.NB-module-account-trainer');
|
||||
|
||||
this.model.preference('has_trained_intelligence', true);
|
||||
$trainer.animate({
|
||||
'opacity': 0
|
||||
}, {
|
||||
'duration': 500,
|
||||
'complete': function() {
|
||||
$trainer.slideUp(350);
|
||||
}
|
||||
});
|
||||
$trainer.addClass('NB-done');
|
||||
},
|
||||
|
||||
hide_find_friends: function() {
|
||||
var $findfriends = $('.NB-module-find-friends');
|
||||
|
||||
this.model.preference('hide_find_friends', true);
|
||||
$findfriends.animate({
|
||||
'opacity': 0
|
||||
}, {
|
||||
'duration': 500,
|
||||
'complete': function() {
|
||||
$findfriends.slideUp(350);
|
||||
}
|
||||
});
|
||||
$findfriends.addClass('NB-done');
|
||||
},
|
||||
|
||||
check_hide_getting_started: function(force) {
|
||||
if (force || this.preference('hide_tutorial') &&
|
||||
this.preference('hide_find_friends') &&
|
||||
this.preference('has_trained_intelligence')) {
|
||||
var friends = this.model.preference('has_found_friends');
|
||||
var trained = this.model.preference('has_trained_intelligence');
|
||||
var feeds = this.model.preference('has_setup_feeds');
|
||||
|
||||
if (force ||
|
||||
friends && trained && feeds) {
|
||||
var $gettingstarted = $('.NB-module-gettingstarted');
|
||||
$gettingstarted.animate({
|
||||
'opacity': 0
|
||||
|
@ -3945,6 +3925,16 @@
|
|||
}
|
||||
});
|
||||
this.model.preference('hide_getting_started', true);
|
||||
} else {
|
||||
var $intro = $('.NB-module-item-intro');
|
||||
var $findfriends = $('.NB-module-find-friends');
|
||||
var $trainer = $('.NB-module-account-trainer');
|
||||
|
||||
$intro.toggleClass('NB-done', feeds);
|
||||
$findfriends.toggleClass('NB-done', friends);
|
||||
$findfriends.toggleClass('NB-hidden', !feeds);
|
||||
$trainer.toggleClass('NB-done', trained);
|
||||
$trainer.toggleClass('NB-hidden', !feeds);
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -6241,6 +6231,7 @@
|
|||
|
||||
setup_ftux_add_feed_callout: function() {
|
||||
var self = this;
|
||||
if (this.flags['bouncing_callout']) return;
|
||||
|
||||
$('.NB-callout-ftux .NB-callout-text').text('First things first...');
|
||||
$('.NB-callout-ftux').corner('5px');
|
||||
|
|
|
@ -802,7 +802,8 @@ var classifier_prototype = {
|
|||
if (this.options['training']) {
|
||||
$.targetIs(e, { tagSelector: '.NB-modal-submit-begin' }, function($t, $p){
|
||||
e.preventDefault();
|
||||
NEWSBLUR.reader.hide_intelligence_trainer();
|
||||
self.model.preference('has_trained_intelligence', true);
|
||||
NEWSBLUR.reader.check_hide_getting_started();
|
||||
self.load_next_feed_in_trainer();
|
||||
});
|
||||
$.targetIs(e, { tagSelector: '.NB-modal-submit-save.NB-modal-submit-next' }, function($t, $p){
|
||||
|
|
|
@ -341,8 +341,10 @@ _.extend(NEWSBLUR.ReaderFriends.prototype, {
|
|||
this.resize();
|
||||
} else {
|
||||
this.fetch_friends();
|
||||
NEWSBLUR.reader.hide_find_friends();
|
||||
}
|
||||
|
||||
this.model.preference('has_found_friends', true);
|
||||
NEWSBLUR.reader.check_hide_getting_started();
|
||||
},
|
||||
|
||||
close_and_load_account: function() {
|
||||
|
|
|
@ -258,8 +258,9 @@ _.extend(NEWSBLUR.ReaderIntro.prototype, {
|
|||
this.resize();
|
||||
} else {
|
||||
this.fetch_friends();
|
||||
NEWSBLUR.reader.hide_find_friends();
|
||||
}
|
||||
this.model.preference('has_found_friends', true);
|
||||
NEWSBLUR.reader.check_hide_getting_started();
|
||||
},
|
||||
|
||||
// ==========
|
||||
|
@ -285,6 +286,9 @@ _.extend(NEWSBLUR.ReaderIntro.prototype, {
|
|||
if (page_number == page_count) {
|
||||
$('.NB-tutorial-next-page-text', this.$modal).text('All Done ');
|
||||
} else if (page_number > page_count) {
|
||||
|
||||
this.model.preference('has_setup_feeds', true);
|
||||
NEWSBLUR.reader.check_hide_getting_started();
|
||||
this.close(function() {
|
||||
NEWSBLUR.reader.open_dialog_after_feeds_loaded();
|
||||
});
|
||||
|
|
|
@ -473,9 +473,6 @@ _.extend(NEWSBLUR.ReaderTutorial.prototype, {
|
|||
|
||||
close: function() {
|
||||
this.model.load_tutorial({'finished': true});
|
||||
_.delay(function() {
|
||||
NEWSBLUR.reader.hide_tutorial();
|
||||
}, 500);
|
||||
NEWSBLUR.Modal.prototype.close.call(this);
|
||||
},
|
||||
|
||||
|
|
|
@ -28,7 +28,8 @@
|
|||
'unread_view' : 0,
|
||||
'lock_mouse_indicator' : 0,
|
||||
'feed_pane_size' : {% firstof user_profile.feed_pane_size 240 %},
|
||||
'tutorial_finished' : {{ user_profile.tutorial_finished|yesno:"true,false" }},
|
||||
'has_setup_feeds' : {{ user_profile.has_setup_feeds|yesno:"true,false" }},
|
||||
'has_found_friends' : {{ user_profile.has_found_friends|yesno:"true,false" }},
|
||||
'has_trained_intelligence': {{ user_profile.has_trained_intelligence|yesno:"true,false" }},
|
||||
'hide_mobile' : {{ user_profile.hide_mobile|yesno:"true,false" }},
|
||||
'story_titles_pane_size' : 168,
|
||||
|
|
|
@ -297,7 +297,7 @@
|
|||
|
||||
<div class="NB-modal-submit">
|
||||
{% if feed_count == 0 %}
|
||||
<div class="NB-modal-submit-green NB-modal-submit-button NB-task-add NB-javascript">Add Sites</div>
|
||||
{# <div class="NB-modal-submit-green NB-modal-submit-button NB-task-add NB-javascript">Add Sites</div> #}
|
||||
{% else %}
|
||||
<div class="{% if active_count == 0 %}NB-modal-submit-green{% else %}NB-modal-submit-close{% endif %} NB-modal-submit-button NB-module-account-upgrade NB-javascript">Choose Your 64 Sites</div>
|
||||
{% endif %}
|
||||
|
@ -306,7 +306,7 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
{% if user_statistics %}
|
||||
<div class="NB-module-user-statistics {% if not user_statistics.shared_stories or not user_statistics %}NB-hidden{% endif %}">
|
||||
<h3 class="NB-module-content-header">
|
||||
Your statistics
|
||||
</h3>
|
||||
|
@ -325,54 +325,40 @@
|
|||
<div class="NB-module-stats-count-description">Follower{{ user_statistics.followers|pluralize }}</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="NB-module NB-module-gettingstarted {% if user_profile.hide_getting_started %}NB-hidden{% endif %}">
|
||||
|
||||
{% if not user_profile.hide_getting_started %}
|
||||
<div class="NB-module NB-module-gettingstarted">
|
||||
<h5 class="NB-module-header">
|
||||
Getting Started
|
||||
<div class="NB-module-header-right">
|
||||
<a href="#" class="NB-splash-link NB-module-gettingstarted-hide">Hide</a>
|
||||
</div>
|
||||
</h5>
|
||||
|
||||
<div class="NB-module-item NB-module-item-intro NB-last">
|
||||
<div class="NB-module-item-image">
|
||||
<img src="{{ MEDIA_URL }}/img/reader/account_friends.jpg" />
|
||||
</div>
|
||||
<h3 class="NB-module-content-header">
|
||||
<span class="NB-module-content-subtitle">
|
||||
|
||||
<div class="NB-module-item NB-module-item-intro {% if user_profile.has_setup_feeds %}NB-done{% endif %}">
|
||||
<div class="NB-module-item-image">
|
||||
<img src="{{ MEDIA_URL }}/img/reader/module_tutorial.jpg" />
|
||||
</div>
|
||||
<h3 class="NB-module-content-header">
|
||||
<span class="NB-module-content-subtitle">
|
||||
It's quick!
|
||||
</span>
|
||||
Start by setting up NewsBlur
|
||||
</h3>
|
||||
<div class="NB-module-item-title">
|
||||
<div class="NB-modal-submit">
|
||||
</span>
|
||||
Start by setting up NewsBlur
|
||||
</h3>
|
||||
<div class="NB-module-item-title">
|
||||
<div class="NB-modal-submit">
|
||||
<div class="NB-modal-submit-green NB-modal-submit-button NB-module-launch-intro NB-javascript">Setup NewsBlur</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="NB-done-label">Done</div>
|
||||
</div>
|
||||
|
||||
{% if not user_profile.tutorial_finished %}
|
||||
<div class="NB-module-item NB-module-item-tutorial NB-last {% if user_profile.tutorial_finished %}NB-hidden{% endif %}">
|
||||
<div class="NB-module-item-image">
|
||||
<img src="{{ MEDIA_URL }}/img/reader/module_tutorial.jpg" />
|
||||
</div>
|
||||
<h3 class="NB-module-content-header">
|
||||
<span class="NB-module-content-subtitle">
|
||||
It's quick!
|
||||
</span>
|
||||
Tips and Tricks
|
||||
</h3>
|
||||
<div class="NB-module-item-title">
|
||||
<div class="NB-modal-submit">
|
||||
<div class="NB-modal-submit-green NB-modal-submit-button NB-module-launch-tutorial NB-javascript">This is going away...</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if not user_profile.hide_find_friends %}
|
||||
<div class="NB-module-item NB-module-find-friends">
|
||||
</div>
|
||||
|
||||
<div class="NB-module-item NB-module-find-friends
|
||||
{% if not user_profile.has_setup_feeds %}NB-hidden{% endif %}
|
||||
{% if user_profile.has_found_friends %}NB-done{% endif %}">
|
||||
<div class="NB-module-item-image">
|
||||
<img src="{{ MEDIA_URL }}/img/reader/account_friends.jpg" />
|
||||
</div>
|
||||
|
@ -384,30 +370,33 @@
|
|||
</h3>
|
||||
<div class="NB-module-item-title">
|
||||
<div class="NB-modal-submit">
|
||||
<div class="NB-modal-submit-green NB-modal-submit-button NB-module-friends-button NB-javascript">Find and Follow Friends</div>
|
||||
<div class="NB-modal-submit-green NB-modal-submit-button NB-module-friends-button NB-javascript">Find and Follow Friends</div>
|
||||
</div>
|
||||
<div class="NB-done-label">Done</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if not user_profile.has_trained_intelligence %}
|
||||
<div class="NB-module-item NB-module-account-trainer NB-last {% if train_count == active_count %}NB-hidden{% endif %}">
|
||||
</div>
|
||||
|
||||
<div class="NB-module-item NB-module-account-trainer NB-last
|
||||
{% if not user_profile.has_setup_feeds %}NB-hidden{% endif %}
|
||||
{% if user_profile.has_trained_intelligence %}NB-done{% endif %}">
|
||||
<div class="NB-module-item-image">
|
||||
<img src="{{ MEDIA_URL }}/img/reader/account_trainer.jpg" />
|
||||
</div>
|
||||
<h3 class="NB-module-content-header">
|
||||
<span class="NB-module-content-subtitle">
|
||||
<span class="NB-module-account-trainer-count">{{ train_count }}</span> of {{ active_count }} site{{ active_count|pluralize }}
|
||||
<span class="NB-module-account-trainer-count">{{ train_count }}</span> of {{ active_count }} site{{ active_count|pluralize }}
|
||||
</span>
|
||||
Intelligence Trainer
|
||||
</h3>
|
||||
<div class="NB-module-item-title">
|
||||
<div class="NB-modal-submit">
|
||||
<div class="NB-modal-submit-green NB-modal-submit-button NB-module-account-train NB-javascript">Launch Intelligence Trainer</div>
|
||||
<div class="NB-modal-submit-green NB-modal-submit-button NB-module-account-train NB-javascript">Launch Intelligence Trainer</div>
|
||||
</div>
|
||||
<div class="NB-done-label">Done</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if not user_profile.hide_mobile %}
|
||||
<div class="NB-module NB-module-mobile">
|
||||
|
|
Loading…
Add table
Reference in a new issue