def new_for_snippet(cls, entry, created_by, change_comment, description, license, fileset): revno = cls._get_next_entry_revno(entry) old_fileset = None if fileset.is_temporary: old_fileset = fileset fileset = FileSet.new_from_slug_and_revision(entry.slug, revno) fileset.snippet = old_fileset.snippet revision = cls(entry=entry, revno=revno, created_by=created_by, change_comment=change_comment, description=description, license=license) if old_fileset is not None: fileset.save() revision.fileset = fileset return revision
def new_for_package(cls, entry, created_by, change_comment, description, license, author, url, fileset): revno = cls._get_next_entry_revno(entry) old_fileset = None if fileset.is_temporary: old_fileset = fileset fileset = FileSet.new_from_slug_and_revision(entry.slug, revno) old_fileset.copy_to(fileset) revision = cls(entry=entry, revno=revno, created_by=created_by, change_comment=change_comment, description=description, license=license, author=author, url=url) if old_fileset is not None: fileset.save() revision.fileset = fileset return revision
def _get_fileset(request, entry, editable=False): sets = request.session.get('fileset') try: return FileSet.objects.get(name=sets[entry.slug]) except (FileSet.DoesNotExist, KeyError, TypeError): pass last_revision = entry.last_revision if not editable: if last_revision is not None: return last_revision.fileset else: return None fs = FileSet.new_temporary() fs.save() request.session['fileset'] = {entry.slug: fs.name} if last_revision is not None and last_revision.fileset is not None: last_revision.fileset.copy_to(fs) return fs