From 7deb3e9259f31e1e9ded69437b7553b3ce93164c Mon Sep 17 00:00:00 2001 From: Magnus Hagander Date: Sat, 11 Jul 2020 18:35:27 +0200 Subject: Only update actually changed fields in most places --- .../register/management/commands/aggregate_feeds.py | 4 ++-- hamnadmin/hamnadmin/register/models.py | 2 +- hamnadmin/hamnadmin/register/views.py | 12 ++++++------ hamnadmin/hamnadmin/util/aggregate.py | 4 ++-- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/hamnadmin/hamnadmin/register/management/commands/aggregate_feeds.py b/hamnadmin/hamnadmin/register/management/commands/aggregate_feeds.py index 4bac98f..c58b5e8 100644 --- a/hamnadmin/hamnadmin/register/management/commands/aggregate_feeds.py +++ b/hamnadmin/hamnadmin/register/management/commands/aggregate_feeds.py @@ -88,7 +88,7 @@ class Command(BaseCommand): receivername="Planet PostgreSQL Moderators", ) feed.feedurl = results.url - feed.save() + feed.save(update_fields=['feedurl']) else: AggregatorLog(feed=feed, success=False, info="Feed returned redirect (http 301)").save() @@ -209,7 +209,7 @@ class Command(BaseCommand): receivername="{0} {1}".format(feed.user.first_name, feed.user.last_name), ) feed.blogurl = feed.new_blogurl - feed.save() + feed.save(update_fields=['blogurl']) if self.debug: # Roll back transaction without error raise BreakoutException() diff --git a/hamnadmin/hamnadmin/register/models.py b/hamnadmin/hamnadmin/register/models.py index 00b2857..95cf1fe 100644 --- a/hamnadmin/hamnadmin/register/models.py +++ b/hamnadmin/hamnadmin/register/models.py @@ -102,7 +102,7 @@ class Post(models.Model): def update_shortlink(self): self.shortlink = self._get_shortlink() - self.save() + self.save(update_fields=['shortlink']) def _get_shortlink(self): s = "" diff --git a/hamnadmin/hamnadmin/register/views.py b/hamnadmin/hamnadmin/register/views.py index d4012ab..2c805d9 100644 --- a/hamnadmin/hamnadmin/register/views.py +++ b/hamnadmin/hamnadmin/register/views.py @@ -82,7 +82,7 @@ def edit(request, id=None): if saved_url != form.cleaned_data['feedurl'] or saved_filter != form.cleaned_data['authorfilter']: obj = form.save() obj.approved = False - obj.save() + obj.save(update_fields=['approved']) send_simple_mail( settings.EMAIL_SENDER, @@ -170,7 +170,7 @@ def archive(request, id): receivername="Planet PostgreSQL Moderators", ) blog.archived = True - blog.save() + blog.save(update_fields=['archived']) messages.info(request, "Blog archived.") return HttpResponseRedirect("/register/") @@ -188,7 +188,7 @@ def remove_from_team(request, teamid, blogid): return HttpResponseRedirect("/register/") blog.team = None - blog.save() + blog.save(update_fields=['team']) send_simple_mail(settings.EMAIL_SENDER, settings.NOTIFICATION_RECEIVER, @@ -224,7 +224,7 @@ def __getvalidblogpost(request, blogid, postid): def __setposthide(request, blogid, postid, status): post = __getvalidblogpost(request, blogid, postid) post.hidden = status - post.save() + post.save(update_fields=['hidden']) AuditEntry(request.user.username, 'Set post %s on blog %s visibility to %s' % (postid, blogid, status)).save() messages.info(request, 'Set post "%s" to %s' % (post.title, status and "hidden" or "visible"), extra_tags="top") purge_root_and_feeds() @@ -252,7 +252,7 @@ def blogpost_delete(request, blogid, postid): # Update the feed last fetched date to be just before this entry, so that we end up # re-fetching it if necessary. post.feed.lastget = post.dat - datetime.timedelta(minutes=1) - post.feed.save() + post.feed.save(update_fields=['lastget']) # Now actually delete it post.delete() @@ -344,7 +344,7 @@ def moderate_approve(request, blogid): ) blog.approved = True - blog.save() + blog.save(update_fields=['approved']) AuditEntry(request.user.username, 'Approved blog %s at %s' % (blog.id, blog.feedurl)).save() diff --git a/hamnadmin/hamnadmin/util/aggregate.py b/hamnadmin/hamnadmin/util/aggregate.py index bb499eb..f584694 100644 --- a/hamnadmin/hamnadmin/util/aggregate.py +++ b/hamnadmin/hamnadmin/util/aggregate.py @@ -127,13 +127,13 @@ class FeedFetcher(object): if self.update: self.feed.lastget = d - self.feed.save() + self.feed.save(update_fields=['lastget']) else: # We didn't get a Last-Modified time, so set it to the entry date # for the latest entry in this feed. if self.newest_entry_date and self.update: self.feed.lastget = self.newest_entry_date - self.feed.save() + self.feed.save(update_fields=['lastget']) def matches_filter(self, entry): # For now, we only match against self.feed.authorfilter. In the future, -- cgit v1.2.3