~libravatar/libravatar/master

« back to all changes in this revision

Viewing changes to libravatar/account/models.py

  • Committer: Francois Marier
  • Date: 2011-04-10 04:11:35 UTC
  • mfrom: (392.1.7)
  • Revision ID: git-v1:15693968875bc8e66c780be13037e2474659e900
Merge account export functionality

Show diffs side-by-side

added added

removed removed

Lines of Context:
100
100
class PhotoManager(models.Manager):
101
101
    def delete_user_photos(self, user):
102
102
        for photo in self.filter(user=user):
103
 
            photo.delete() # deletes the photo on disk as well
 
103
            photo.delete(delete_file_on_disk=False)
104
104
 
105
105
class Photo(models.Model):
106
106
    user = models.ForeignKey(User, related_name='photos')
131
131
        rename(tmp_filename, dest_filename)
132
132
        return True
133
133
 
134
 
    def delete(self):
 
134
    def delete(self, delete_file_on_disk=True):
135
135
        # Remove links to this photo
136
136
        for email in self.emails.all():
137
137
            email.set_photo(None)
138
138
        for openid in self.openids.all():
139
139
            openid.set_photo(None)
140
140
 
141
 
        # Queue a job for the photo deletion gearman worker
142
 
        gm_client = libgearman.Client()
143
 
        for server in settings.GEARMAN_SERVERS:
144
 
            gm_client.add_server(server)
 
141
        if delete_file_on_disk:
 
142
            # Queue a job for the photo deletion gearman worker
 
143
            gm_client = libgearman.Client()
 
144
            for server in settings.GEARMAN_SERVERS:
 
145
                gm_client.add_server(server)
145
146
 
146
 
        workload = {'file_hash': self.filename, 'format': self.format}
147
 
        gm_client.do_background('deletephoto', json.dumps(workload))
 
147
            workload = {'file_hash': self.filename, 'format': self.format}
 
148
            gm_client.do_background('deletephoto', json.dumps(workload))
148
149
 
149
150
        super(Photo, self).delete()
150
151