From 7dfffd56e410bc1dae726c2eed8e6278127080e8 Mon Sep 17 00:00:00 2001 From: Gavin Lazar Suntop Date: Fri, 28 Sep 2018 11:21:01 -0700 Subject: [PATCH 01/11] adding related products --- .../0004_product_related_products.py | 20 +++++++++++++++++++ .../migrations/0005_auto_20180927_2203.py | 20 +++++++++++++++++++ .../migrations/0006_auto_20180927_2205.py | 20 +++++++++++++++++++ network-api/networkapi/buyersguide/models.py | 2 ++ .../buyersguide/templates/product_page.html | 14 ++++++++++--- 5 files changed, 73 insertions(+), 3 deletions(-) create mode 100644 network-api/networkapi/buyersguide/migrations/0004_product_related_products.py create mode 100644 network-api/networkapi/buyersguide/migrations/0005_auto_20180927_2203.py create mode 100644 network-api/networkapi/buyersguide/migrations/0006_auto_20180927_2205.py diff --git a/network-api/networkapi/buyersguide/migrations/0004_product_related_products.py b/network-api/networkapi/buyersguide/migrations/0004_product_related_products.py new file mode 100644 index 00000000000..52f6306d338 --- /dev/null +++ b/network-api/networkapi/buyersguide/migrations/0004_product_related_products.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.14 on 2018-09-27 22:02 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('buyersguide', '0003_auto_20180927_2052'), + ] + + operations = [ + migrations.AddField( + model_name='product', + name='related_products', + field=models.ManyToManyField(null=True, related_name='rps', to='buyersguide.Update'), + ), + ] diff --git a/network-api/networkapi/buyersguide/migrations/0005_auto_20180927_2203.py b/network-api/networkapi/buyersguide/migrations/0005_auto_20180927_2203.py new file mode 100644 index 00000000000..18455336a0f --- /dev/null +++ b/network-api/networkapi/buyersguide/migrations/0005_auto_20180927_2203.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.14 on 2018-09-27 22:03 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('buyersguide', '0004_product_related_products'), + ] + + operations = [ + migrations.AlterField( + model_name='product', + name='related_products', + field=models.ManyToManyField(null=True, related_name='rps', to='buyersguide.Product'), + ), + ] diff --git a/network-api/networkapi/buyersguide/migrations/0006_auto_20180927_2205.py b/network-api/networkapi/buyersguide/migrations/0006_auto_20180927_2205.py new file mode 100644 index 00000000000..bc9009001ac --- /dev/null +++ b/network-api/networkapi/buyersguide/migrations/0006_auto_20180927_2205.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.14 on 2018-09-27 22:05 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('buyersguide', '0005_auto_20180927_2203'), + ] + + operations = [ + migrations.AlterField( + model_name='product', + name='related_products', + field=models.ManyToManyField(null=True, related_name='_product_related_products_+', to='buyersguide.Product'), + ), + ] diff --git a/network-api/networkapi/buyersguide/models.py b/network-api/networkapi/buyersguide/models.py index e4d387cf6ac..6ee0ec037a3 100644 --- a/network-api/networkapi/buyersguide/models.py +++ b/network-api/networkapi/buyersguide/models.py @@ -238,6 +238,8 @@ class Product(models.Model): updates = models.ManyToManyField(Update, related_name='products', null=True) + related_products = models.ManyToManyField('self', related_name='rps', null=True) + # objects = HighlightQuerySet.as_manager() def __str__(self): diff --git a/network-api/networkapi/buyersguide/templates/product_page.html b/network-api/networkapi/buyersguide/templates/product_page.html index 9c5373575f9..20dd8d54f6c 100644 --- a/network-api/networkapi/buyersguide/templates/product_page.html +++ b/network-api/networkapi/buyersguide/templates/product_page.html @@ -143,9 +143,17 @@

Updates

{% productUpdate product.source product.title product.author product.snippet %} {% endfor %} -

Related Products

- - +

Related Products

+ +
+ {% for product in product.related_products.all %} +
+ + + +
+ {% endfor %} +
From 3014ff984990c92551044a724e1c47e5f7ed49f0 Mon Sep 17 00:00:00 2001 From: Gavin Lazar Suntop Date: Fri, 28 Sep 2018 11:53:58 -0700 Subject: [PATCH 02/11] add link to Privacy Policy --- .../migrations/0007_auto_20180928_1834.py | 25 +++++++++++++++++++ network-api/networkapi/buyersguide/models.py | 6 ++++- .../buyersguide/templates/product_page.html | 2 +- .../components/criterion/criterion.jsx | 2 +- source/sass/buyers-guide/views/product.scss | 6 +++++ 5 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 network-api/networkapi/buyersguide/migrations/0007_auto_20180928_1834.py diff --git a/network-api/networkapi/buyersguide/migrations/0007_auto_20180928_1834.py b/network-api/networkapi/buyersguide/migrations/0007_auto_20180928_1834.py new file mode 100644 index 00000000000..75e6b406535 --- /dev/null +++ b/network-api/networkapi/buyersguide/migrations/0007_auto_20180928_1834.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.14 on 2018-09-28 18:34 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('buyersguide', '0006_auto_20180927_2205'), + ] + + operations = [ + migrations.RenameField( + model_name='product', + old_name='privacy_policy', + new_name='privacy_policy_reading_level', + ), + migrations.AddField( + model_name='product', + name='privacy_policy_url', + field=models.URLField(blank='True'), + ), + ] diff --git a/network-api/networkapi/buyersguide/models.py b/network-api/networkapi/buyersguide/models.py index 6ee0ec037a3..1eb3a1463c6 100644 --- a/network-api/networkapi/buyersguide/models.py +++ b/network-api/networkapi/buyersguide/models.py @@ -123,7 +123,11 @@ class Product(models.Model): ('1', 'Grade 13+'), ) - privacy_policy = models.CharField( + privacy_policy_url = models.URLField( + blank="True" + ) + + privacy_policy_reading_level = models.CharField( choices=PP_CHOICES, default=0, max_length=1, diff --git a/network-api/networkapi/buyersguide/templates/product_page.html b/network-api/networkapi/buyersguide/templates/product_page.html index 20dd8d54f6c..d907ab9314d 100644 --- a/network-api/networkapi/buyersguide/templates/product_page.html +++ b/network-api/networkapi/buyersguide/templates/product_page.html @@ -61,7 +61,7 @@

What does it know about me?

{% criterion "uses_encryption" "Product uses encryption" product.uses_encryption product.uses_encryption_helptext %} - {% criterion "privacy_policy" "Privacy policy reading level" product.privacy_policy product.privacy_policy_helptext %} + {% criterion "privacy_policy" "Privacy policy reading level" product.privacy_policy product.privacy_policy_helptext %} {% criterion "share_data" "Shares your information with third parties" product.share_data product.share_data_helptext %}
diff --git a/source/js/buyers-guide/components/criterion/criterion.jsx b/source/js/buyers-guide/components/criterion/criterion.jsx index e6487ca2865..e3f11497f53 100644 --- a/source/js/buyers-guide/components/criterion/criterion.jsx +++ b/source/js/buyers-guide/components/criterion/criterion.jsx @@ -25,7 +25,7 @@ export default class Criterion extends React.Component {

- {this.props.meta.question} + {this.state.hasHelptext && } diff --git a/source/sass/buyers-guide/views/product.scss b/source/sass/buyers-guide/views/product.scss index eec083bc807..b1f512d595c 100644 --- a/source/sass/buyers-guide/views/product.scss +++ b/source/sass/buyers-guide/views/product.scss @@ -44,6 +44,12 @@ justify-content: space-between; } + a { + text-decoration: underline; + color: $black; + font-weight: 400; + } + p { margin-bottom: 0; } From 3573031d0f4997c6a53914867954b0f72eb955e3 Mon Sep 17 00:00:00 2001 From: Gavin Lazar Suntop Date: Fri, 28 Sep 2018 12:28:20 -0700 Subject: [PATCH 03/11] individual grades for privacy policy --- network-api/networkapi/buyersguide/factory.py | 2 +- .../migrations/0008_auto_20180928_1856.py | 20 +++++++++++++++++++ .../migrations/0009_auto_20180928_1857.py | 20 +++++++++++++++++++ .../migrations/0010_auto_20180928_1907.py | 20 +++++++++++++++++++ network-api/networkapi/buyersguide/models.py | 20 +++++++++++++++---- .../buyersguide/templates/product_page.html | 6 +++++- .../buyersguide/templatetags/criterion.py | 8 ++++---- source/sass/buyers-guide/views/product.scss | 9 ++++++++- 8 files changed, 94 insertions(+), 11 deletions(-) create mode 100644 network-api/networkapi/buyersguide/migrations/0008_auto_20180928_1856.py create mode 100644 network-api/networkapi/buyersguide/migrations/0009_auto_20180928_1857.py create mode 100644 network-api/networkapi/buyersguide/migrations/0010_auto_20180928_1907.py diff --git a/network-api/networkapi/buyersguide/factory.py b/network-api/networkapi/buyersguide/factory.py index 2695eb5c3ba..a8985d53ea6 100644 --- a/network-api/networkapi/buyersguide/factory.py +++ b/network-api/networkapi/buyersguide/factory.py @@ -35,7 +35,7 @@ class Meta: location_app = Faker('boolean') location_device = Faker('boolean') uses_encryption = Faker('boolean') - privacy_policy = str(random.randint(0, 1)) + privacy_policy = str(random.randint(7, 19)) share_data = Faker('boolean') must_change_default_password = Faker('boolean') security_updates = Faker('boolean') diff --git a/network-api/networkapi/buyersguide/migrations/0008_auto_20180928_1856.py b/network-api/networkapi/buyersguide/migrations/0008_auto_20180928_1856.py new file mode 100644 index 00000000000..b99c128e40f --- /dev/null +++ b/network-api/networkapi/buyersguide/migrations/0008_auto_20180928_1856.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.14 on 2018-09-28 18:56 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('buyersguide', '0007_auto_20180928_1834'), + ] + + operations = [ + migrations.AlterField( + model_name='product', + name='privacy_policy_reading_level', + field=models.CharField(choices=[(None, "Can't Determine"), ('0', 'Grade 8-12'), ('1', 'Grade 13+')], default=0, max_length=1), + ), + ] diff --git a/network-api/networkapi/buyersguide/migrations/0009_auto_20180928_1857.py b/network-api/networkapi/buyersguide/migrations/0009_auto_20180928_1857.py new file mode 100644 index 00000000000..f9a2566d228 --- /dev/null +++ b/network-api/networkapi/buyersguide/migrations/0009_auto_20180928_1857.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.14 on 2018-09-28 18:57 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('buyersguide', '0008_auto_20180928_1856'), + ] + + operations = [ + migrations.AlterField( + model_name='product', + name='privacy_policy_reading_level', + field=models.CharField(blank='True', choices=[(None, "Can't Determine"), ('0', 'Grade 8-12'), ('1', 'Grade 13+')], default=None, max_length=1), + ), + ] diff --git a/network-api/networkapi/buyersguide/migrations/0010_auto_20180928_1907.py b/network-api/networkapi/buyersguide/migrations/0010_auto_20180928_1907.py new file mode 100644 index 00000000000..bafe2668c04 --- /dev/null +++ b/network-api/networkapi/buyersguide/migrations/0010_auto_20180928_1907.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.14 on 2018-09-28 19:07 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('buyersguide', '0009_auto_20180928_1857'), + ] + + operations = [ + migrations.AlterField( + model_name='product', + name='privacy_policy_reading_level', + field=models.CharField(choices=[('0', "Can't Determine"), ('7', 'Grade 7'), ('8', 'Grade 8'), ('9', 'Grade 9'), ('10', 'Grade 10'), ('11', 'Grade 11'), ('12', 'Grade 12'), ('13', 'Grade 13'), ('14', 'Grade 14'), ('15', 'Grade 15'), ('16', 'Grade 16'), ('17', 'Grade 17'), ('18', 'Grade 18'), ('19', 'Grade 19')], default='0', max_length=2), + ), + ] diff --git a/network-api/networkapi/buyersguide/models.py b/network-api/networkapi/buyersguide/models.py index 1eb3a1463c6..6c7f8394d11 100644 --- a/network-api/networkapi/buyersguide/models.py +++ b/network-api/networkapi/buyersguide/models.py @@ -119,8 +119,20 @@ class Product(models.Model): ) PP_CHOICES = ( - ('0', 'Grade 8-12'), - ('1', 'Grade 13+'), + ('0', 'Can\'t Determine'), + ('7', 'Grade 7'), + ('8', 'Grade 8'), + ('9', 'Grade 9'), + ('10', 'Grade 10'), + ('11', 'Grade 11'), + ('12', 'Grade 12'), + ('13', 'Grade 13'), + ('14', 'Grade 14'), + ('15', 'Grade 15'), + ('16', 'Grade 16'), + ('17', 'Grade 17'), + ('18', 'Grade 18'), + ('19', 'Grade 19'), ) privacy_policy_url = models.URLField( @@ -129,8 +141,8 @@ class Product(models.Model): privacy_policy_reading_level = models.CharField( choices=PP_CHOICES, - default=0, - max_length=1, + default='0', + max_length=2, ) privacy_policy_helptext = models.TextField( diff --git a/network-api/networkapi/buyersguide/templates/product_page.html b/network-api/networkapi/buyersguide/templates/product_page.html index d907ab9314d..adab6833713 100644 --- a/network-api/networkapi/buyersguide/templates/product_page.html +++ b/network-api/networkapi/buyersguide/templates/product_page.html @@ -61,7 +61,11 @@

What does it know about me?

{% criterion "uses_encryption" "Product uses encryption" product.uses_encryption product.uses_encryption_helptext %} - {% criterion "privacy_policy" "Privacy policy reading level" product.privacy_policy product.privacy_policy_helptext %} + {% if product.privacy_policy_url %} + {% criterion "privacy_policy_reading_level" "Privacy policy reading level" product.privacy_policy_reading_level product.privacy_policy_helptext %} + {% else %} + {% criterion "privacy_policy_reading_level" "Privacy policy reading level" product.privacy_policy_reading_level product.privacy_policy_helptext %} + {% endif %} {% criterion "share_data" "Shares your information with third parties" product.share_data product.share_data_helptext %}
diff --git a/network-api/networkapi/buyersguide/templatetags/criterion.py b/network-api/networkapi/buyersguide/templatetags/criterion.py index d340bc816f4..7ba32ee9c41 100644 --- a/network-api/networkapi/buyersguide/templatetags/criterion.py +++ b/network-api/networkapi/buyersguide/templatetags/criterion.py @@ -11,11 +11,11 @@ def criterion(id, question, answer, helptext=None): formattedAnswer = "Can't determine" elif isinstance(answer, str): if answer is "0": - cssClassSuffix = "8" - formattedAnswer = "Grade 8-12" + cssClassSuffix = "0" + formattedAnswer = "Can't Determine" else: - cssClassSuffix = "13" - formattedAnswer = "Grade 13+" + cssClassSuffix = answer + formattedAnswer = ("Grade {answer}".format(answer=answer)) else: cssClassSuffix = ("false", "true")[answer] formattedAnswer = ("No", "Yes")[answer] diff --git a/source/sass/buyers-guide/views/product.scss b/source/sass/buyers-guide/views/product.scss index b1f512d595c..57279cb62e9 100644 --- a/source/sass/buyers-guide/views/product.scss +++ b/source/sass/buyers-guide/views/product.scss @@ -91,7 +91,13 @@ // Sad Cases .criterion-uses_encryption.criterion-false, -.criterion-privacy_policy.criterion-13, +.criterion-privacy_policy_reading_level.criterion-13, +.criterion-privacy_policy_reading_level.criterion-14, +.criterion-privacy_policy_reading_level.criterion-15, +.criterion-privacy_policy_reading_level.criterion-16, +.criterion-privacy_policy_reading_level.criterion-17, +.criterion-privacy_policy_reading_level.criterion-18, +.criterion-privacy_policy_reading_level.criterion-19, .criterion-share_data.criterion-true, .criterion-must_change_default_password.criterion-false, .criterion-security_updates.criterion-false, @@ -111,6 +117,7 @@ } // Ambivalent Case +.criterion-privacy_policy_reading_level.criterion-0, .criterion.criterion-null { .emoji { background: url("/_images/buyers-guide/icon-face-neutral.svg") no-repeat; From 78a92d98eeb84e2920b7dcb9dbeaf1a6b58767a0 Mon Sep 17 00:00:00 2001 From: Gavin Lazar Suntop Date: Fri, 28 Sep 2018 14:02:54 -0700 Subject: [PATCH 04/11] adding twitter --- network-api/networkapi/buyersguide/factory.py | 1 - .../migrations/0011_auto_20180928_2049.py | 24 +++++++++++++++++++ network-api/networkapi/buyersguide/models.py | 10 ++++---- .../buyersguide/templates/product_page.html | 19 ++++++++++++--- source/images/buyers-guide/icon-twitter.svg | 14 +++++++++++ source/sass/buyers-guide/views/product.scss | 1 + 6 files changed, 61 insertions(+), 8 deletions(-) create mode 100644 network-api/networkapi/buyersguide/migrations/0011_auto_20180928_2049.py create mode 100644 source/images/buyers-guide/icon-twitter.svg diff --git a/network-api/networkapi/buyersguide/factory.py b/network-api/networkapi/buyersguide/factory.py index a8985d53ea6..1584c4fda4c 100644 --- a/network-api/networkapi/buyersguide/factory.py +++ b/network-api/networkapi/buyersguide/factory.py @@ -43,7 +43,6 @@ class Meta: delete_data = Faker('boolean') child_rules = Faker('boolean') manage_security = Faker('boolean') - customer_support_easy = Faker('boolean') phone_number = Faker('phone_number') live_chat = Faker('url') email = Faker('email') diff --git a/network-api/networkapi/buyersguide/migrations/0011_auto_20180928_2049.py b/network-api/networkapi/buyersguide/migrations/0011_auto_20180928_2049.py new file mode 100644 index 00000000000..9c4305e26a5 --- /dev/null +++ b/network-api/networkapi/buyersguide/migrations/0011_auto_20180928_2049.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.14 on 2018-09-28 20:49 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('buyersguide', '0010_auto_20180928_1907'), + ] + + operations = [ + migrations.RemoveField( + model_name='product', + name='customer_support_easy', + ), + migrations.AddField( + model_name='product', + name='twitter', + field=models.CharField(blank='True', help_text='Twitter username', max_length=100), + ), + ] diff --git a/network-api/networkapi/buyersguide/models.py b/network-api/networkapi/buyersguide/models.py index 6c7f8394d11..5a13ca6d470 100644 --- a/network-api/networkapi/buyersguide/models.py +++ b/network-api/networkapi/buyersguide/models.py @@ -217,10 +217,6 @@ class Product(models.Model): blank="True" ) - customer_support_easy = models.NullBooleanField( - help_text='Makes it easy to contact customer support?', - ) - customer_support_easy_helptext = models.TextField( max_length=5000, blank="True" @@ -244,6 +240,12 @@ class Product(models.Model): blank="True", ) + twitter = models.CharField( + max_length=100, + help_text='Twitter username', + blank="True", + ) + # What could happen if something went wrong? worst_case = models.CharField( diff --git a/network-api/networkapi/buyersguide/templates/product_page.html b/network-api/networkapi/buyersguide/templates/product_page.html index adab6833713..ff0ed1c89c1 100644 --- a/network-api/networkapi/buyersguide/templates/product_page.html +++ b/network-api/networkapi/buyersguide/templates/product_page.html @@ -86,7 +86,7 @@

Company shows it cares about its custome

-
+
@@ -99,7 +99,7 @@

Company shows it cares about its custome

-
+
@@ -112,7 +112,7 @@

Company shows it cares about its custome

-
+
@@ -125,6 +125,19 @@

Company shows it cares about its custome

+
+
+ +
+ Twitter + {% if product.twitter %} + Yes + {% else %} + No + {% endif %} +
+
+

What could happen if something went wrong?

diff --git a/source/images/buyers-guide/icon-twitter.svg b/source/images/buyers-guide/icon-twitter.svg new file mode 100644 index 00000000000..43a61f5aaae --- /dev/null +++ b/source/images/buyers-guide/icon-twitter.svg @@ -0,0 +1,14 @@ + + + + Fill-1 + Created with Sketch. + + + + + + + + + \ No newline at end of file diff --git a/source/sass/buyers-guide/views/product.scss b/source/sass/buyers-guide/views/product.scss index 57279cb62e9..3ba2f3bbe8b 100644 --- a/source/sass/buyers-guide/views/product.scss +++ b/source/sass/buyers-guide/views/product.scss @@ -21,6 +21,7 @@ .spy { display: flex; align-items: center; + word-break: break-word; img { margin-right: 15px; From 88a2a7b5ec00ad9ea972ec9036954e9a622fb3a3 Mon Sep 17 00:00:00 2001 From: Gavin Lazar Suntop Date: Fri, 28 Sep 2018 14:22:20 -0700 Subject: [PATCH 05/11] fix faker --- network-api/networkapi/buyersguide/factory.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/network-api/networkapi/buyersguide/factory.py b/network-api/networkapi/buyersguide/factory.py index 1584c4fda4c..ccb6808188b 100644 --- a/network-api/networkapi/buyersguide/factory.py +++ b/network-api/networkapi/buyersguide/factory.py @@ -35,7 +35,7 @@ class Meta: location_app = Faker('boolean') location_device = Faker('boolean') uses_encryption = Faker('boolean') - privacy_policy = str(random.randint(7, 19)) + privacy_policy_reading_level = str(random.randint(7, 19)) share_data = Faker('boolean') must_change_default_password = Faker('boolean') security_updates = Faker('boolean') From b07c1dc28c028b15ff749ea004a9abe7e0c74bbd Mon Sep 17 00:00:00 2001 From: Gavin Lazar Suntop Date: Fri, 28 Sep 2018 14:40:21 -0700 Subject: [PATCH 06/11] allow empty updates and related products --- .../migrations/0012_auto_20180928_2139.py | 25 +++++++++++++++++++ network-api/networkapi/buyersguide/models.py | 4 +-- 2 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 network-api/networkapi/buyersguide/migrations/0012_auto_20180928_2139.py diff --git a/network-api/networkapi/buyersguide/migrations/0012_auto_20180928_2139.py b/network-api/networkapi/buyersguide/migrations/0012_auto_20180928_2139.py new file mode 100644 index 00000000000..93c77a2d007 --- /dev/null +++ b/network-api/networkapi/buyersguide/migrations/0012_auto_20180928_2139.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.14 on 2018-09-28 21:39 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('buyersguide', '0011_auto_20180928_2049'), + ] + + operations = [ + migrations.AlterField( + model_name='product', + name='related_products', + field=models.ManyToManyField(blank=True, null=True, related_name='_product_related_products_+', to='buyersguide.Product'), + ), + migrations.AlterField( + model_name='product', + name='updates', + field=models.ManyToManyField(blank=True, null=True, related_name='products', to='buyersguide.Update'), + ), + ] diff --git a/network-api/networkapi/buyersguide/models.py b/network-api/networkapi/buyersguide/models.py index 5a13ca6d470..27e4d34f5db 100644 --- a/network-api/networkapi/buyersguide/models.py +++ b/network-api/networkapi/buyersguide/models.py @@ -254,9 +254,9 @@ class Product(models.Model): blank="True", ) - updates = models.ManyToManyField(Update, related_name='products', null=True) + updates = models.ManyToManyField(Update, related_name='products', null=True, blank=True) - related_products = models.ManyToManyField('self', related_name='rps', null=True) + related_products = models.ManyToManyField('self', related_name='rps', null=True, blank=True) # objects = HighlightQuerySet.as_manager() From 6a66f77563e4d32f2c6a82f10af7b606f3200cd5 Mon Sep 17 00:00:00 2001 From: Gavin Lazar Suntop Date: Mon, 1 Oct 2018 10:36:34 -0700 Subject: [PATCH 07/11] p1 tweaks --- network-api/networkapi/buyersguide/factory.py | 1 + .../migrations/0013_auto_20180928_2247.py | 24 +++++++++++++++++++ .../migrations/0014_auto_20180928_2250.py | 20 ++++++++++++++++ .../0015_product_has_moz_approval.py | 20 ++++++++++++++++ .../migrations/0016_auto_20181001_1733.py | 20 ++++++++++++++++ .../migrations/0017_auto_20181001_1734.py | 20 ++++++++++++++++ network-api/networkapi/buyersguide/models.py | 9 ++++--- .../buyersguide/templates/product_page.html | 2 +- .../buyersguide/templatetags/criterion.py | 6 ++--- 9 files changed, 113 insertions(+), 9 deletions(-) create mode 100644 network-api/networkapi/buyersguide/migrations/0013_auto_20180928_2247.py create mode 100644 network-api/networkapi/buyersguide/migrations/0014_auto_20180928_2250.py create mode 100644 network-api/networkapi/buyersguide/migrations/0015_product_has_moz_approval.py create mode 100644 network-api/networkapi/buyersguide/migrations/0016_auto_20181001_1733.py create mode 100644 network-api/networkapi/buyersguide/migrations/0017_auto_20181001_1734.py diff --git a/network-api/networkapi/buyersguide/factory.py b/network-api/networkapi/buyersguide/factory.py index ccb6808188b..185dca50209 100644 --- a/network-api/networkapi/buyersguide/factory.py +++ b/network-api/networkapi/buyersguide/factory.py @@ -29,6 +29,7 @@ class Meta: url = Faker('url') price = random.randint(49, 1500) camera_app = Faker('boolean') + meets_minimum_security_standards = Faker('boolean') camera_device = Faker('boolean') microphone_app = Faker('boolean') microphone_device = Faker('boolean') diff --git a/network-api/networkapi/buyersguide/migrations/0013_auto_20180928_2247.py b/network-api/networkapi/buyersguide/migrations/0013_auto_20180928_2247.py new file mode 100644 index 00000000000..5de55ab26ba --- /dev/null +++ b/network-api/networkapi/buyersguide/migrations/0013_auto_20180928_2247.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.14 on 2018-09-28 22:47 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('buyersguide', '0012_auto_20180928_2139'), + ] + + operations = [ + migrations.RemoveField( + model_name='product', + name='customer_support_easy_helptext', + ), + migrations.AlterField( + model_name='product', + name='privacy_policy_reading_level', + field=models.CharField(blank='True', choices=[('0', "Can't Determine"), ('7', 'Grade 7'), ('8', 'Grade 8'), ('9', 'Grade 9'), ('10', 'Grade 10'), ('11', 'Grade 11'), ('12', 'Grade 12'), ('13', 'Grade 13'), ('14', 'Grade 14'), ('15', 'Grade 15'), ('16', 'Grade 16'), ('17', 'Grade 17'), ('18', 'Grade 18'), ('19', 'Grade 19')], default='0', max_length=2), + ), + ] diff --git a/network-api/networkapi/buyersguide/migrations/0014_auto_20180928_2250.py b/network-api/networkapi/buyersguide/migrations/0014_auto_20180928_2250.py new file mode 100644 index 00000000000..398e074984d --- /dev/null +++ b/network-api/networkapi/buyersguide/migrations/0014_auto_20180928_2250.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.14 on 2018-09-28 22:50 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('buyersguide', '0013_auto_20180928_2247'), + ] + + operations = [ + migrations.AlterField( + model_name='product', + name='privacy_policy_reading_level', + field=models.CharField(choices=[('0', "Can't Determine"), ('7', 'Grade 7'), ('8', 'Grade 8'), ('9', 'Grade 9'), ('10', 'Grade 10'), ('11', 'Grade 11'), ('12', 'Grade 12'), ('13', 'Grade 13'), ('14', 'Grade 14'), ('15', 'Grade 15'), ('16', 'Grade 16'), ('17', 'Grade 17'), ('18', 'Grade 18'), ('19', 'Grade 19')], default='0', max_length=2), + ), + ] diff --git a/network-api/networkapi/buyersguide/migrations/0015_product_has_moz_approval.py b/network-api/networkapi/buyersguide/migrations/0015_product_has_moz_approval.py new file mode 100644 index 00000000000..57973672f3f --- /dev/null +++ b/network-api/networkapi/buyersguide/migrations/0015_product_has_moz_approval.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.14 on 2018-10-01 17:30 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('buyersguide', '0014_auto_20180928_2250'), + ] + + operations = [ + migrations.AddField( + model_name='product', + name='has_moz_approval', + field=models.NullBooleanField(help_text='Does this product bear the Mozilla seal of approval?'), + ), + ] diff --git a/network-api/networkapi/buyersguide/migrations/0016_auto_20181001_1733.py b/network-api/networkapi/buyersguide/migrations/0016_auto_20181001_1733.py new file mode 100644 index 00000000000..35f2dc84bd2 --- /dev/null +++ b/network-api/networkapi/buyersguide/migrations/0016_auto_20181001_1733.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.14 on 2018-10-01 17:33 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('buyersguide', '0015_product_has_moz_approval'), + ] + + operations = [ + migrations.AlterField( + model_name='product', + name='has_moz_approval', + field=models.NullBooleanField(help_text='Does this product meet minimum security standards?'), + ), + ] diff --git a/network-api/networkapi/buyersguide/migrations/0017_auto_20181001_1734.py b/network-api/networkapi/buyersguide/migrations/0017_auto_20181001_1734.py new file mode 100644 index 00000000000..7529f17e4ea --- /dev/null +++ b/network-api/networkapi/buyersguide/migrations/0017_auto_20181001_1734.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.14 on 2018-10-01 17:34 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('buyersguide', '0016_auto_20181001_1733'), + ] + + operations = [ + migrations.RenameField( + model_name='product', + old_name='has_moz_approval', + new_name='meets_minimum_security_standards', + ), + ] diff --git a/network-api/networkapi/buyersguide/models.py b/network-api/networkapi/buyersguide/models.py index 27e4d34f5db..8820b513f71 100644 --- a/network-api/networkapi/buyersguide/models.py +++ b/network-api/networkapi/buyersguide/models.py @@ -81,6 +81,10 @@ class Product(models.Model): blank=True, ) + meets_minimum_security_standards = models.NullBooleanField( + help_text='Does this product meet minimum security standards?', + ) + # Can it spy on me? camera_device = models.NullBooleanField( @@ -217,11 +221,6 @@ class Product(models.Model): blank="True" ) - customer_support_easy_helptext = models.TextField( - max_length=5000, - blank="True" - ) - phone_number = models.CharField( max_length=100, help_text='Phone Number', diff --git a/network-api/networkapi/buyersguide/templates/product_page.html b/network-api/networkapi/buyersguide/templates/product_page.html index ff0ed1c89c1..5a27510cc4e 100644 --- a/network-api/networkapi/buyersguide/templates/product_page.html +++ b/network-api/networkapi/buyersguide/templates/product_page.html @@ -72,7 +72,7 @@

What does it know about me?

Can I control it?

- {% criterion "must_change_default_password" "Must change the default password" product.must_change_default_password product.must_change_default_password_helptext %} + {% criterion "must_change_default_password" "If a password is required, you must change the default password" product.must_change_default_password product.must_change_default_password_helptext "Not required" %} {% criterion "security_updates" "Automatic security updates" product.security_updates product.security_updates_helptext %} {% criterion "need_account" "Requires an account" product.need_account product.need_account_helptext %} {% criterion "delete_data" "Deletes data it stores on you" product.delete_data product.delete_data_helptext %} diff --git a/network-api/networkapi/buyersguide/templatetags/criterion.py b/network-api/networkapi/buyersguide/templatetags/criterion.py index 7ba32ee9c41..5dec86eda64 100644 --- a/network-api/networkapi/buyersguide/templatetags/criterion.py +++ b/network-api/networkapi/buyersguide/templatetags/criterion.py @@ -4,15 +4,15 @@ @register.inclusion_tag('tags/criterion.html') -def criterion(id, question, answer, helptext=None): +def criterion(id, question, answer, helptext=None, indeterminate_copy="Can't determine"): cssClassSuffix = "null" if answer is None: - formattedAnswer = "Can't determine" + formattedAnswer = indeterminate_copy elif isinstance(answer, str): if answer is "0": cssClassSuffix = "0" - formattedAnswer = "Can't Determine" + formattedAnswer = indeterminate_copy else: cssClassSuffix = answer formattedAnswer = ("Grade {answer}".format(answer=answer)) From 6bcebf0c508a24201837551b4a70120f2843bbed Mon Sep 17 00:00:00 2001 From: Gavin Lazar Suntop Date: Mon, 1 Oct 2018 13:48:06 -0700 Subject: [PATCH 08/11] env tweak --- network-api/networkapi/buyersguide/templates/product_page.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/network-api/networkapi/buyersguide/templates/product_page.html b/network-api/networkapi/buyersguide/templates/product_page.html index 5a27510cc4e..e2a43c7c907 100644 --- a/network-api/networkapi/buyersguide/templates/product_page.html +++ b/network-api/networkapi/buyersguide/templates/product_page.html @@ -9,7 +9,7 @@ {% block guts %}
- +
From 64f93aec7f5e9c985438f4fd79a1f49ca1f2fa3d Mon Sep 17 00:00:00 2001 From: Gavin Lazar Suntop Date: Mon, 1 Oct 2018 14:29:19 -0700 Subject: [PATCH 09/11] adding env filter --- .../buyersguide/templates/product_page.html | 4 ++-- .../networkapi/buyersguide/templatetags/env.py | 12 ++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 network-api/networkapi/buyersguide/templatetags/env.py diff --git a/network-api/networkapi/buyersguide/templates/product_page.html b/network-api/networkapi/buyersguide/templates/product_page.html index e2a43c7c907..773c1ab509a 100644 --- a/network-api/networkapi/buyersguide/templates/product_page.html +++ b/network-api/networkapi/buyersguide/templates/product_page.html @@ -3,13 +3,13 @@ {% load criterion %} {% load product-update %} {% load yes_no %} +{% load env %} {% block body-id %}TODO-CATEGORY{% endblock %} {% block guts %}
- - +
diff --git a/network-api/networkapi/buyersguide/templatetags/env.py b/network-api/networkapi/buyersguide/templatetags/env.py new file mode 100644 index 00000000000..3d52d9b9ae0 --- /dev/null +++ b/network-api/networkapi/buyersguide/templatetags/env.py @@ -0,0 +1,12 @@ +from django import template +from django.conf import settings + +register = template.Library() + + +@register.filter +def env(value): + if hasattr(settings, value): + return getattr(settings, value) + else: + return "" From 8fa00a62524fd038b4de6b1687d2bf7c9657574e Mon Sep 17 00:00:00 2001 From: Gavin Lazar Suntop Date: Mon, 1 Oct 2018 14:36:15 -0700 Subject: [PATCH 10/11] fixing img paths for staging --- .../networkapi/buyersguide/templates/product_page.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/network-api/networkapi/buyersguide/templates/product_page.html b/network-api/networkapi/buyersguide/templates/product_page.html index 773c1ab509a..75cbe9ad3c3 100644 --- a/network-api/networkapi/buyersguide/templates/product_page.html +++ b/network-api/networkapi/buyersguide/templates/product_page.html @@ -9,7 +9,7 @@ {% block guts %}
- +
@@ -166,7 +166,7 @@

Related Products

{% for product in product.related_products.all %} {% endfor %} From 3b25d95614b29760091791d7e462d2d4b6177942 Mon Sep 17 00:00:00 2001 From: Gavin Lazar Suntop Date: Tue, 2 Oct 2018 09:59:41 -0700 Subject: [PATCH 11/11] squashing migrations --- .../migrations/0004_auto_20181002_1659.py | 57 +++++++++++++++++++ .../0004_product_related_products.py | 20 ------- .../migrations/0005_auto_20180927_2203.py | 20 ------- .../migrations/0006_auto_20180927_2205.py | 20 ------- .../migrations/0007_auto_20180928_1834.py | 25 -------- .../migrations/0008_auto_20180928_1856.py | 20 ------- .../migrations/0009_auto_20180928_1857.py | 20 ------- .../migrations/0010_auto_20180928_1907.py | 20 ------- .../migrations/0011_auto_20180928_2049.py | 24 -------- .../migrations/0012_auto_20180928_2139.py | 25 -------- .../migrations/0013_auto_20180928_2247.py | 24 -------- .../migrations/0014_auto_20180928_2250.py | 20 ------- .../0015_product_has_moz_approval.py | 20 ------- .../migrations/0016_auto_20181001_1733.py | 20 ------- .../migrations/0017_auto_20181001_1734.py | 20 ------- 15 files changed, 57 insertions(+), 298 deletions(-) create mode 100644 network-api/networkapi/buyersguide/migrations/0004_auto_20181002_1659.py delete mode 100644 network-api/networkapi/buyersguide/migrations/0004_product_related_products.py delete mode 100644 network-api/networkapi/buyersguide/migrations/0005_auto_20180927_2203.py delete mode 100644 network-api/networkapi/buyersguide/migrations/0006_auto_20180927_2205.py delete mode 100644 network-api/networkapi/buyersguide/migrations/0007_auto_20180928_1834.py delete mode 100644 network-api/networkapi/buyersguide/migrations/0008_auto_20180928_1856.py delete mode 100644 network-api/networkapi/buyersguide/migrations/0009_auto_20180928_1857.py delete mode 100644 network-api/networkapi/buyersguide/migrations/0010_auto_20180928_1907.py delete mode 100644 network-api/networkapi/buyersguide/migrations/0011_auto_20180928_2049.py delete mode 100644 network-api/networkapi/buyersguide/migrations/0012_auto_20180928_2139.py delete mode 100644 network-api/networkapi/buyersguide/migrations/0013_auto_20180928_2247.py delete mode 100644 network-api/networkapi/buyersguide/migrations/0014_auto_20180928_2250.py delete mode 100644 network-api/networkapi/buyersguide/migrations/0015_product_has_moz_approval.py delete mode 100644 network-api/networkapi/buyersguide/migrations/0016_auto_20181001_1733.py delete mode 100644 network-api/networkapi/buyersguide/migrations/0017_auto_20181001_1734.py diff --git a/network-api/networkapi/buyersguide/migrations/0004_auto_20181002_1659.py b/network-api/networkapi/buyersguide/migrations/0004_auto_20181002_1659.py new file mode 100644 index 00000000000..bb0db2f05db --- /dev/null +++ b/network-api/networkapi/buyersguide/migrations/0004_auto_20181002_1659.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.14 on 2018-10-02 16:59 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('buyersguide', '0003_auto_20180927_2052'), + ] + + operations = [ + migrations.RemoveField( + model_name='product', + name='customer_support_easy', + ), + migrations.RemoveField( + model_name='product', + name='customer_support_easy_helptext', + ), + migrations.RemoveField( + model_name='product', + name='privacy_policy', + ), + migrations.AddField( + model_name='product', + name='meets_minimum_security_standards', + field=models.NullBooleanField(help_text='Does this product meet minimum security standards?'), + ), + migrations.AddField( + model_name='product', + name='privacy_policy_reading_level', + field=models.CharField(choices=[('0', "Can't Determine"), ('7', 'Grade 7'), ('8', 'Grade 8'), ('9', 'Grade 9'), ('10', 'Grade 10'), ('11', 'Grade 11'), ('12', 'Grade 12'), ('13', 'Grade 13'), ('14', 'Grade 14'), ('15', 'Grade 15'), ('16', 'Grade 16'), ('17', 'Grade 17'), ('18', 'Grade 18'), ('19', 'Grade 19')], default='0', max_length=2), + ), + migrations.AddField( + model_name='product', + name='privacy_policy_url', + field=models.URLField(blank='True'), + ), + migrations.AddField( + model_name='product', + name='related_products', + field=models.ManyToManyField(blank=True, null=True, related_name='_product_related_products_+', to='buyersguide.Product'), + ), + migrations.AddField( + model_name='product', + name='twitter', + field=models.CharField(blank='True', help_text='Twitter username', max_length=100), + ), + migrations.AlterField( + model_name='product', + name='updates', + field=models.ManyToManyField(blank=True, null=True, related_name='products', to='buyersguide.Update'), + ), + ] diff --git a/network-api/networkapi/buyersguide/migrations/0004_product_related_products.py b/network-api/networkapi/buyersguide/migrations/0004_product_related_products.py deleted file mode 100644 index 52f6306d338..00000000000 --- a/network-api/networkapi/buyersguide/migrations/0004_product_related_products.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.14 on 2018-09-27 22:02 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('buyersguide', '0003_auto_20180927_2052'), - ] - - operations = [ - migrations.AddField( - model_name='product', - name='related_products', - field=models.ManyToManyField(null=True, related_name='rps', to='buyersguide.Update'), - ), - ] diff --git a/network-api/networkapi/buyersguide/migrations/0005_auto_20180927_2203.py b/network-api/networkapi/buyersguide/migrations/0005_auto_20180927_2203.py deleted file mode 100644 index 18455336a0f..00000000000 --- a/network-api/networkapi/buyersguide/migrations/0005_auto_20180927_2203.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.14 on 2018-09-27 22:03 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('buyersguide', '0004_product_related_products'), - ] - - operations = [ - migrations.AlterField( - model_name='product', - name='related_products', - field=models.ManyToManyField(null=True, related_name='rps', to='buyersguide.Product'), - ), - ] diff --git a/network-api/networkapi/buyersguide/migrations/0006_auto_20180927_2205.py b/network-api/networkapi/buyersguide/migrations/0006_auto_20180927_2205.py deleted file mode 100644 index bc9009001ac..00000000000 --- a/network-api/networkapi/buyersguide/migrations/0006_auto_20180927_2205.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.14 on 2018-09-27 22:05 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('buyersguide', '0005_auto_20180927_2203'), - ] - - operations = [ - migrations.AlterField( - model_name='product', - name='related_products', - field=models.ManyToManyField(null=True, related_name='_product_related_products_+', to='buyersguide.Product'), - ), - ] diff --git a/network-api/networkapi/buyersguide/migrations/0007_auto_20180928_1834.py b/network-api/networkapi/buyersguide/migrations/0007_auto_20180928_1834.py deleted file mode 100644 index 75e6b406535..00000000000 --- a/network-api/networkapi/buyersguide/migrations/0007_auto_20180928_1834.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.14 on 2018-09-28 18:34 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('buyersguide', '0006_auto_20180927_2205'), - ] - - operations = [ - migrations.RenameField( - model_name='product', - old_name='privacy_policy', - new_name='privacy_policy_reading_level', - ), - migrations.AddField( - model_name='product', - name='privacy_policy_url', - field=models.URLField(blank='True'), - ), - ] diff --git a/network-api/networkapi/buyersguide/migrations/0008_auto_20180928_1856.py b/network-api/networkapi/buyersguide/migrations/0008_auto_20180928_1856.py deleted file mode 100644 index b99c128e40f..00000000000 --- a/network-api/networkapi/buyersguide/migrations/0008_auto_20180928_1856.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.14 on 2018-09-28 18:56 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('buyersguide', '0007_auto_20180928_1834'), - ] - - operations = [ - migrations.AlterField( - model_name='product', - name='privacy_policy_reading_level', - field=models.CharField(choices=[(None, "Can't Determine"), ('0', 'Grade 8-12'), ('1', 'Grade 13+')], default=0, max_length=1), - ), - ] diff --git a/network-api/networkapi/buyersguide/migrations/0009_auto_20180928_1857.py b/network-api/networkapi/buyersguide/migrations/0009_auto_20180928_1857.py deleted file mode 100644 index f9a2566d228..00000000000 --- a/network-api/networkapi/buyersguide/migrations/0009_auto_20180928_1857.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.14 on 2018-09-28 18:57 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('buyersguide', '0008_auto_20180928_1856'), - ] - - operations = [ - migrations.AlterField( - model_name='product', - name='privacy_policy_reading_level', - field=models.CharField(blank='True', choices=[(None, "Can't Determine"), ('0', 'Grade 8-12'), ('1', 'Grade 13+')], default=None, max_length=1), - ), - ] diff --git a/network-api/networkapi/buyersguide/migrations/0010_auto_20180928_1907.py b/network-api/networkapi/buyersguide/migrations/0010_auto_20180928_1907.py deleted file mode 100644 index bafe2668c04..00000000000 --- a/network-api/networkapi/buyersguide/migrations/0010_auto_20180928_1907.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.14 on 2018-09-28 19:07 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('buyersguide', '0009_auto_20180928_1857'), - ] - - operations = [ - migrations.AlterField( - model_name='product', - name='privacy_policy_reading_level', - field=models.CharField(choices=[('0', "Can't Determine"), ('7', 'Grade 7'), ('8', 'Grade 8'), ('9', 'Grade 9'), ('10', 'Grade 10'), ('11', 'Grade 11'), ('12', 'Grade 12'), ('13', 'Grade 13'), ('14', 'Grade 14'), ('15', 'Grade 15'), ('16', 'Grade 16'), ('17', 'Grade 17'), ('18', 'Grade 18'), ('19', 'Grade 19')], default='0', max_length=2), - ), - ] diff --git a/network-api/networkapi/buyersguide/migrations/0011_auto_20180928_2049.py b/network-api/networkapi/buyersguide/migrations/0011_auto_20180928_2049.py deleted file mode 100644 index 9c4305e26a5..00000000000 --- a/network-api/networkapi/buyersguide/migrations/0011_auto_20180928_2049.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.14 on 2018-09-28 20:49 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('buyersguide', '0010_auto_20180928_1907'), - ] - - operations = [ - migrations.RemoveField( - model_name='product', - name='customer_support_easy', - ), - migrations.AddField( - model_name='product', - name='twitter', - field=models.CharField(blank='True', help_text='Twitter username', max_length=100), - ), - ] diff --git a/network-api/networkapi/buyersguide/migrations/0012_auto_20180928_2139.py b/network-api/networkapi/buyersguide/migrations/0012_auto_20180928_2139.py deleted file mode 100644 index 93c77a2d007..00000000000 --- a/network-api/networkapi/buyersguide/migrations/0012_auto_20180928_2139.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.14 on 2018-09-28 21:39 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('buyersguide', '0011_auto_20180928_2049'), - ] - - operations = [ - migrations.AlterField( - model_name='product', - name='related_products', - field=models.ManyToManyField(blank=True, null=True, related_name='_product_related_products_+', to='buyersguide.Product'), - ), - migrations.AlterField( - model_name='product', - name='updates', - field=models.ManyToManyField(blank=True, null=True, related_name='products', to='buyersguide.Update'), - ), - ] diff --git a/network-api/networkapi/buyersguide/migrations/0013_auto_20180928_2247.py b/network-api/networkapi/buyersguide/migrations/0013_auto_20180928_2247.py deleted file mode 100644 index 5de55ab26ba..00000000000 --- a/network-api/networkapi/buyersguide/migrations/0013_auto_20180928_2247.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.14 on 2018-09-28 22:47 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('buyersguide', '0012_auto_20180928_2139'), - ] - - operations = [ - migrations.RemoveField( - model_name='product', - name='customer_support_easy_helptext', - ), - migrations.AlterField( - model_name='product', - name='privacy_policy_reading_level', - field=models.CharField(blank='True', choices=[('0', "Can't Determine"), ('7', 'Grade 7'), ('8', 'Grade 8'), ('9', 'Grade 9'), ('10', 'Grade 10'), ('11', 'Grade 11'), ('12', 'Grade 12'), ('13', 'Grade 13'), ('14', 'Grade 14'), ('15', 'Grade 15'), ('16', 'Grade 16'), ('17', 'Grade 17'), ('18', 'Grade 18'), ('19', 'Grade 19')], default='0', max_length=2), - ), - ] diff --git a/network-api/networkapi/buyersguide/migrations/0014_auto_20180928_2250.py b/network-api/networkapi/buyersguide/migrations/0014_auto_20180928_2250.py deleted file mode 100644 index 398e074984d..00000000000 --- a/network-api/networkapi/buyersguide/migrations/0014_auto_20180928_2250.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.14 on 2018-09-28 22:50 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('buyersguide', '0013_auto_20180928_2247'), - ] - - operations = [ - migrations.AlterField( - model_name='product', - name='privacy_policy_reading_level', - field=models.CharField(choices=[('0', "Can't Determine"), ('7', 'Grade 7'), ('8', 'Grade 8'), ('9', 'Grade 9'), ('10', 'Grade 10'), ('11', 'Grade 11'), ('12', 'Grade 12'), ('13', 'Grade 13'), ('14', 'Grade 14'), ('15', 'Grade 15'), ('16', 'Grade 16'), ('17', 'Grade 17'), ('18', 'Grade 18'), ('19', 'Grade 19')], default='0', max_length=2), - ), - ] diff --git a/network-api/networkapi/buyersguide/migrations/0015_product_has_moz_approval.py b/network-api/networkapi/buyersguide/migrations/0015_product_has_moz_approval.py deleted file mode 100644 index 57973672f3f..00000000000 --- a/network-api/networkapi/buyersguide/migrations/0015_product_has_moz_approval.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.14 on 2018-10-01 17:30 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('buyersguide', '0014_auto_20180928_2250'), - ] - - operations = [ - migrations.AddField( - model_name='product', - name='has_moz_approval', - field=models.NullBooleanField(help_text='Does this product bear the Mozilla seal of approval?'), - ), - ] diff --git a/network-api/networkapi/buyersguide/migrations/0016_auto_20181001_1733.py b/network-api/networkapi/buyersguide/migrations/0016_auto_20181001_1733.py deleted file mode 100644 index 35f2dc84bd2..00000000000 --- a/network-api/networkapi/buyersguide/migrations/0016_auto_20181001_1733.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.14 on 2018-10-01 17:33 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('buyersguide', '0015_product_has_moz_approval'), - ] - - operations = [ - migrations.AlterField( - model_name='product', - name='has_moz_approval', - field=models.NullBooleanField(help_text='Does this product meet minimum security standards?'), - ), - ] diff --git a/network-api/networkapi/buyersguide/migrations/0017_auto_20181001_1734.py b/network-api/networkapi/buyersguide/migrations/0017_auto_20181001_1734.py deleted file mode 100644 index 7529f17e4ea..00000000000 --- a/network-api/networkapi/buyersguide/migrations/0017_auto_20181001_1734.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.14 on 2018-10-01 17:34 -from __future__ import unicode_literals - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('buyersguide', '0016_auto_20181001_1733'), - ] - - operations = [ - migrations.RenameField( - model_name='product', - old_name='has_moz_approval', - new_name='meets_minimum_security_standards', - ), - ]