Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2883)

Unified Diff: app/models/package.py

Issue 816693002: Add string versions of User/Pickled objects to datastore models (Closed) Base URL: https://github.com/dart-lang/pub-dartlang.git@master
Patch Set: Use db.Text(encoding="utf-8") Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « app/handlers/package_versions.py ('k') | app/models/package_version.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: app/models/package.py
diff --git a/app/models/package.py b/app/models/package.py
index 3e07516a82d342bb176b21b6ecf59e17323c9594..2bc95da4a216f62042becc70d0cd3bf6a532188c 100644
--- a/app/models/package.py
+++ b/app/models/package.py
@@ -33,6 +33,11 @@ class Package(db.Model):
When this is set, invalidate_cache() must be called."""
+ uploaderEmails = db.StringListProperty()
+ """The user emails who are allowed to upload new versions of the package.
+
+ When this is set, invalidate_cache() must be called."""
+
name = db.StringProperty(required=True)
"""The name of the package."""
@@ -49,6 +54,15 @@ class Package(db.Model):
When this is set, invalidate_cache() must be called."""
+ def temp_synchronize_uploaders_to_uploaderemails(self):
+ """ Will synchronize self.uploaders -> self.uploaderEmails. """
+ if self.uploaders is None:
+ self.uploaderEmails = None
+ elif len(self.uploaders) == 0:
+ self.uploaderEmails = self.uploaders
+ else:
+ self.uploaderEmails = [uploader.email() for uploader in self.uploaders]
+
@property
def description(self):
"""The short description of the package."""
@@ -114,6 +128,8 @@ class Package(db.Model):
return 'Uploader' if len(self.latest_version.pubspec.authors) == 1 \
else 'Uploaders'
+ # TODO(kustermann): When we have string emails, this needs to be changed
+ # to read uploaderEmails instead of uploaders.
@property
def uploaders_html(self):
"""Inline HTML for the uploaders of this package."""
@@ -159,6 +175,8 @@ class Package(db.Model):
self.name, str(version))
return version is not None
+ # TODO(kustermann): When we have string emails, this needs to be changed
+ # to read uploaderEmails instead of uploaders.
def has_uploader(self, uploader):
"""Determine whether the given user is an uploader for this package.
@@ -176,6 +194,8 @@ class Package(db.Model):
return models.url(
controller='api.packages', action='show', id=self.name)
+ # TODO(kustermann): When we have string emails, this needs to be changed
+ # to read uploaderEmails instead of uploaders.
def as_dict(self, full=False):
"""Returns the dictionary representation of this package.
« no previous file with comments | « app/handlers/package_versions.py ('k') | app/models/package_version.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698