Index: assetpackager/templatetags/asset_include.py
===================================================================
--- assetpackager/templatetags/asset_include.py (revision 6)
+++ assetpackager/templatetags/asset_include.py (working copy)
@@ -3,13 +3,11 @@
from django.conf import settings
import time
+from sha import sha
-from apps.assetpackager.models import Javascript, CSS, Asset
-from apps.assetpackager.jsmin import JavascriptMinify
-from apps.assetpackager.csstidy import CSSTidy
-#from assetpackager.models import Javascript, CSS, Asset
-#from assetpackager.jsmin import JavascriptMinify
-#from assetpackager.csstidy import CSSTidy
+from assetpackager.models import Javascript, CSS, Asset
+from assetpackager.jsmin import JavascriptMinify
+from assetpackager.csstidy import CSSTidy
register = Library()
@@ -21,16 +19,16 @@
self.files = []
if self.filenames[0] == ":base":
#Uncomment this if you are not using the Sites Application
- #self.files = Javascript.objects.all()
- self.files = Javascript.on_site.all()
+ self.files = Javascript.objects.all()
+ #self.files = Javascript.on_site.all()
else:
self.filenames = ["js/" + name for name in self.filenames]
#Uncomment this if you are not using the Sites Application
- #self.files = Javascript.objects.filter(javascript__in=self.filenames)
- self.files = Javascript.on_site.filter(javascript__in=self.filenames)
+ self.files = Javascript.objects.filter(javascript__in=self.filenames).order_by('order')
+ #self.files = Javascript.on_site.filter(javascript__in=self.filenames)
#Ok, we have the files we need to check
- if settings.DEBUG:
+ if not settings.DEBUG:
#This prints out each js file individualy
return self.compute_individual()
@@ -57,20 +55,25 @@
_hash = sha(data).hexdigest()
#Uncomment this if you are not using the Sites Application
- #asset = Asset.objects.get_or_create(name=name, asset_type="js")[0]
- asset = Asset.on_site.get_or_create(name=name, asset_type="js")[0]
-
+ asset = Asset.objects.get_or_create(name=name, asset_type="js")[0]
+ #asset = Asset.on_site.get_or_create(name=name, asset_type="js")[0]
date = time.mktime(asset.created_on.timetuple())
#Check the Hash
- if asset._hash == _hash:
- #Oh, they are the same, great just give them the existing file
- return '' + "\n"
+ #if asset._hash == _hash:
+ # #Oh, they are the same, great just give them the existing file
+ # return SafeUnicode('' + "\n")
#The hash has changed so we need to create it.
try:
- os.remove(settings.MEDIA_ROOT + "js/base_" + date + '.js')
- os.remove(settings.MEDIA_ROOT + "js/base.js")
+ try:
+ os.remove(settings.MEDIA_ROOT + "js/base_" + str(date) + '.js')
+ except:
+ pass
+ try:
+ os.remove(settings.MEDIA_ROOT + "js/base.js")
+ except:
+ pass
f = open(settings.MEDIA_ROOT + "js/base.js", "w")
f.write(data)
f.close()
@@ -82,8 +85,8 @@
#Compute the new date since we saved the asset, thus updated it's date
date = time.mktime(asset.created_on.timetuple())
try:
- inp = f.open(settings.MEDIA_ROOT + "js/base.js", "r")
- outp = f.open(settings.MEDIA_ROOT + "js/base_" + date + '.js', "w")
+ inp = open(settings.MEDIA_ROOT + "js/base.js", "r")
+ outp = open(settings.MEDIA_ROOT + "js/base_" + str(date) + '.js', "w")
jsm = JavascriptMinify()
jsm.minify(inp, outp)
@@ -91,7 +94,7 @@
inp.close()
outp.close()
#Ok, the file has beencreated and our hash has been updated, now return the JS code
- return '' + "\n"
+ return SafeUnicode('' + "\n")
def javascript_include_merged(parser, token):
bits = token.contents.split()
@@ -107,13 +110,13 @@
self.files = []
if self.filenames[0] == ":base":
#Uncomment this if you are not using the Sites Application
- #self.files = CSS.objects.all()
- self.files = CSS.on_site.all()
+ self.files = CSS.objects.all()
+ #self.files = CSS.on_site.all()
else:
self.filenames = ["css/" + name for name in self.filenames]
#Uncomment this if you are not using the Sites Application
- #self.files = CSS.objects.filter(javascript__in=self.filenames)
- self.files = CSS.on_site.filter(css__in=self.filenames)
+ self.files = CSS.objects.filter(css__in=self.filenames)
+ #self.files = CSS.on_site.filter(css__in=self.filenames)
#Ok, we have the files we need to check
if settings.DEBUG:
@@ -142,15 +145,23 @@
f.close()
_hash = sha(data).hexdigest()
- asset = Asset.on_site.get_or_create(name=name, asset_type="css")[0]
+ #asset = Asset.on_site.get_or_create(name=name, asset_type="css")[0]
+ asset = Asset.objects.get_or_create(name=name, asset_type="css")[0]
+
date = time.mktime(asset.created_on.timetuple())
if asset._hash == _hash:
- return '' + "\n"
+ return SafeUnicode('' + "\n")
#The has has changed so we need to create it.
try:
- os.remove(settings.MEDIA_ROOT + "css/base_" + date + '.css')
- os.remove(settings.MEDIA_ROOT + "css/base.css")
+ try:
+ os.remove(settings.MEDIA_ROOT + "css/base_" + str(date) + '.css')
+ except:
+ pass
+ try:
+ os.remove(settings.MEDIA_ROOT + "css/base.css")
+ except:
+ pass
f = open(settings.MEDIA_ROOT + "css/base.css", "w")
f.write(data)
except:
@@ -164,10 +175,10 @@
tidy = CSSTidy()
tidy.parseFile(settings.MEDIA_ROOT + "css/base.css")
- tidy.Output('file', settings.MEDIA_ROOT + "css/base_" + date + '.css')
+ tidy.Output('file', settings.MEDIA_ROOT + "css/base_" + str(date) + '.css')
#Ok, the file has beencreated and our hash has been updated, now return the JS code
- return '' + "\n"
+ return SafeUnicode('' + "\n")
def css_include_merged(parser, token):
bits = token.contents.split()
Index: assetpackager/models.py
===================================================================
--- assetpackager/models.py (revision 6)
+++ assetpackager/models.py (working copy)
@@ -3,8 +3,8 @@
from django.conf import settings
#For People who want to use the Sites application
-from django.contrib.sites.models import Site
-from django.contrib.sites.managers import CurrentSiteManager
+#from django.contrib.sites.models import Site
+#from django.contrib.sites.managers import CurrentSiteManager
from sha import sha
@@ -14,56 +14,60 @@
asset_type = models.CharField(blank=True, max_length=3, choices=[('css','CSS'),('js', 'Javascript')])
created_on = models.DateTimeField(auto_now=True)
#Comment this out if you dont want to use sites
- site = models.ForeignKey(Site)
+ #site = models.ForeignKey(Site)
#Site Manager
- on_site = CurrentSiteManager()
+ #on_site = CurrentSiteManager()
class Meta:
unique_together = (
#Uncomment this and comment out the otherone if you are not using the Site Application
- #('name', 'asset_type'),
- ('name', 'asset_type', 'site'),
+ ('name', 'asset_type'),
+ #('name', 'asset_type', 'site'),
)
class Javascript(models.Model):
javascript = models.FileField(upload_to="js")
order = models.IntegerField(default=0)
#Comment this out if you dont want to use sites
- site = models.ForeignKey(Site)
+ #site = models.ForeignKey(Site)
#Site Manager
- on_site = CurrentSiteManager()
+ #on_site = CurrentSiteManager()
class Meta:
ordering = ('order',)
-
+ verbose_name_plural = _('Javascript')
+
class Admin:
fields = (
(_("File"), {'fields': ('javascript','order')}),
#Remove this if you are not using Sites Application
- (_("Site"), {'fields': ('site',)}),
+ #(_("Site"), {'fields': ('site',)}),
)
- list_display = ('javascript', 'order', 'site')
-
+ #list_display = ('javascript', 'order', 'site')
+ list_display = ('javascript', 'order')
+
class CSS(models.Model):
css = models.FileField(upload_to="css")
order = models.IntegerField(default=0)
#Comment this out if you dont want to use sites
- site = models.ForeignKey(Site)
+ #site = models.ForeignKey(Site)
#Site Manager
- on_site = CurrentSiteManager()
+ #on_site = CurrentSiteManager()
class Meta:
ordering = ('order',)
-
+ verbose_name_plural = _('CSS')
+
class Admin:
fields = (
(_("File"), {'fields': ('css','order')}),
#Remove this if you are not using Sites Application
- (_("Site"), {'fields': ('site',)}),
+ #(_("Site"), {'fields': ('site',)}),
)
- list_display = ('css', 'order', 'site')
\ No newline at end of file
+ #list_display = ('css', 'order', 'site')
+ list_display = ('css', 'order')