set max_length of flac file path to 255
[audio.git] / apps / archive / forms.py
1 from datetime import datetime
2 import os
3 import os.path
4
5 from django import forms
6 from django.utils.translation import ugettext_lazy as _
7 import mutagen
8
9 from archive.models import Audiobook
10 from archive.settings import FILES_PATH
11 from archive.utils import ExistingFile, sha1_file
12
13 class AudiobookForm(forms.ModelForm):
14     class Meta:
15         model = Audiobook
16
17     def save(self, commit=True, path=None):
18         m = super(AudiobookForm, self).save(commit=False)
19         m.modified = datetime.now()
20
21         if path:
22             # adding a new audiobook
23             if not os.path.isdir(FILES_PATH):
24                 os.makedirs(FILES_PATH)
25             # save the file in model
26
27             m.source_file.save(
28                 os.path.basename(path),
29                 ExistingFile(path))
30
31             f = open(m.source_file.path)
32             m.source_sha1 = sha1_file(f)
33             f.close()
34
35         if commit:
36             m.save()