diff --git a/forms.py b/forms.py index 21c3d5e..bc36b67 100644 --- a/forms.py +++ b/forms.py @@ -27,7 +27,7 @@ class CategoryForm(ModelForm): class UserForm(ModelForm): class Meta: model = User - exclude = ('is_staff', 'is_active', 'last_login', 'last_joined', 'user_permissions', 'groups', 'date_joined') + exclude = ('is_staff', 'is_active', 'last_login', 'last_joined', 'user_permissions', 'groups', 'date_joined', 'password') class CommentForm(ModelForm): class Meta: diff --git a/generators/post.py b/generators/post.py index 05689cd..6104b43 100644 --- a/generators/post.py +++ b/generators/post.py @@ -145,6 +145,8 @@ class Post(Index): 'replace' : self.createReplace, 'tags' : self.createTags} + self.blog = blog + if not os.path.exists(src + '/_post.html'): self.addError('No _post.html found, exiting') return self.report diff --git a/models.py b/models.py index cbbf394..3f5af89 100644 --- a/models.py +++ b/models.py @@ -178,8 +178,6 @@ class Category(models.Model): super(Category, self).save() def remove(self, blog): - blog.create_paths() - output = blog.output_path + '/category/' + self.name_slug if os.path.exists(output): shutil.rmtree(output) @@ -195,8 +193,6 @@ class Tag(models.Model): super(Tag, self).save() def remove(self, blog): - blog.create_paths() - output = blog.output_path + '/tag/' + self.name_slug if os.path.exists(output): shutil.rmtree(output) @@ -228,7 +224,6 @@ class Post(models.Model): def createPost(self, content, tags): b = self.blog - b.create_paths() output = b.src_path if not os.path.exists(output + '/_post'): os.mkdir(output + '/_post') @@ -312,7 +307,6 @@ class Post(models.Model): def remove(self): b = self.blog - b.create_paths() output = b.src_path filename = output + '/_post/' + str(self.pk) diff --git a/search.py b/search.py index 5ebd3e2..b551203 100644 --- a/search.py +++ b/search.py @@ -109,7 +109,7 @@ class Search: if not word in hashtable: hashtable[word] = [] if not index in hashtable[word]: - hashtable[word].append([index, word_weight]) + hashtable[word].insert(0, [index, word_weight]) else: weight = hashtable[word][1] hashtable[word][1] = weight + word_weight @@ -192,16 +192,16 @@ class Search: if len(word) < Search.MINIMUM_LETTERS: continue word = word.lower() - while not word in hashtable and len(word) > Search.MINIMUM_LETTERS: - word = word[:-1] - if word not in hashtable: - continue - for post in hashtable[word]: - if not post[0] in res: - res[post[0]] = post[1] - res[post[0]] += post[1] - sorted_res = sorted(res.iteritems(), key=operator.itemgetter(1)) + reg = re.compile('.*' + word + '.*') + for key in hashtable.keys(): + if reg.match(key): + for post in hashtable[key]: + if not post[0] in res: + res[post[0]] = post[1] + else: + res[post[0]] += post[1] + sorted_res = sorted(res.iteritems(), key=operator.itemgetter(1)) sorted_res.reverse() res = [] diff --git a/sites/blog.soutade.fr/_post.html b/sites/blog.soutade.fr/_post.html index 0444963..57cb4bf 100755 --- a/sites/blog.soutade.fr/_post.html +++ b/sites/blog.soutade.fr/_post.html @@ -14,14 +14,14 @@
# De, le
Répondre
- + Auteur :


e-mail* :


Le commentaire :


- + Auteur :


e-mail* :


Le commentaire :


diff --git a/static/css/dynastie.css b/static/css/dynastie.css index e69de29..f655369 100644 --- a/static/css/dynastie.css +++ b/static/css/dynastie.css @@ -0,0 +1,5 @@ +.edited +{ + color:green; + font-weight:bold; +} \ No newline at end of file diff --git a/static/js/base64.js b/static/js/base64.js deleted file mode 100644 index 80f8ee7..0000000 --- a/static/js/base64.js +++ /dev/null @@ -1,142 +0,0 @@ -/** - * - * Base64 encode / decode - * http://www.webtoolkit.info/ - * - **/ - -var Base64 = { - - // private property - _keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", - - // public method for encoding - encode : function (input) { - var output = ""; - var chr1, chr2, chr3, enc1, enc2, enc3, enc4; - var i = 0; - - input = Base64._utf8_encode(input); - - while (i < input.length) { - - chr1 = input.charCodeAt(i++); - chr2 = input.charCodeAt(i++); - chr3 = input.charCodeAt(i++); - - enc1 = chr1 >> 2; - enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); - enc3 = ((chr2 & 15) << 2) | (chr3 >> 6); - enc4 = chr3 & 63; - - if (isNaN(chr2)) { - enc3 = enc4 = 64; - } else if (isNaN(chr3)) { - enc4 = 64; - } - - output = output + - this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) + - this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4); - - } - - return output; - }, - - // public method for decoding - decode : function (input) { - var output = ""; - var chr1, chr2, chr3; - var enc1, enc2, enc3, enc4; - var i = 0; - - input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); - - while (i < input.length) { - - enc1 = this._keyStr.indexOf(input.charAt(i++)); - enc2 = this._keyStr.indexOf(input.charAt(i++)); - enc3 = this._keyStr.indexOf(input.charAt(i++)); - enc4 = this._keyStr.indexOf(input.charAt(i++)); - - chr1 = (enc1 << 2) | (enc2 >> 4); - chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); - chr3 = ((enc3 & 3) << 6) | enc4; - - output = output + String.fromCharCode(chr1); - - if (enc3 != 64) { - output = output + String.fromCharCode(chr2); - } - if (enc4 != 64) { - output = output + String.fromCharCode(chr3); - } - - } - - output = Base64._utf8_decode(output); - - return output; - - }, - - // private method for UTF-8 encoding - _utf8_encode : function (string) { - string = string.replace(/\r\n/g,"\n"); - var utftext = ""; - - for (var n = 0; n < string.length; n++) { - - var c = string.charCodeAt(n); - - if (c < 128) { - utftext += String.fromCharCode(c); - } - else if((c > 127) && (c < 2048)) { - utftext += String.fromCharCode((c >> 6) | 192); - utftext += String.fromCharCode((c & 63) | 128); - } - else { - utftext += String.fromCharCode((c >> 12) | 224); - utftext += String.fromCharCode(((c >> 6) & 63) | 128); - utftext += String.fromCharCode((c & 63) | 128); - } - - } - - return utftext; - }, - - // private method for UTF-8 decoding - _utf8_decode : function (utftext) { - var string = ""; - var i = 0; - var c = c1 = c2 = 0; - - while ( i < utftext.length ) { - - c = utftext.charCodeAt(i); - - if (c < 128) { - string += String.fromCharCode(c); - i++; - } - else if((c > 191) && (c < 224)) { - c2 = utftext.charCodeAt(i+1); - string += String.fromCharCode(((c & 31) << 6) | (c2 & 63)); - i += 2; - } - else { - c2 = utftext.charCodeAt(i+1); - c3 = utftext.charCodeAt(i+2); - string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); - i += 3; - } - - } - - return string; - } - -} \ No newline at end of file diff --git a/static/js/jsaes.js b/static/js/jsaes.js deleted file mode 100644 index e7c78ce..0000000 --- a/static/js/jsaes.js +++ /dev/null @@ -1,217 +0,0 @@ -/* - * jsaes version 0.1 - Copyright 2006 B. Poettering - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - * 02111-1307 USA - */ - -/* - * http://point-at-infinity.org/jsaes/ - * - * This is a javascript implementation of the AES block cipher. Key lengths - * of 128, 192 and 256 bits are supported. - * - * The well-functioning of the encryption/decryption routines has been - * verified for different key lengths with the test vectors given in - * FIPS-197, Appendix C. - * - * The following code example enciphers the plaintext block '00 11 22 .. EE FF' - * with the 256 bit key '00 01 02 .. 1E 1F'. - * - * AES_Init(); - * - * var block = new Array(16); - * for(var i = 0; i < 16; i++) - * block[i] = 0x11 * i; - * - * var key = new Array(32); - * for(var i = 0; i < 32; i++) - * key[i] = i; - * - * AES_ExpandKey(key); - * AES_Encrypt(block, key); - * - * AES_Done(); - * - * Report bugs to: jsaes AT point-at-infinity.org - * - */ - -/******************************************************************************/ - -/* - AES_Init: initialize the tables needed at runtime. Call this function - before the (first) key expansion. -*/ - -function AES_Init() { - AES_Sbox_Inv = new Array(256); - for(var i = 0; i < 256; i++) - AES_Sbox_Inv[AES_Sbox[i]] = i; - - AES_ShiftRowTab_Inv = new Array(16); - for(var i = 0; i < 16; i++) - AES_ShiftRowTab_Inv[AES_ShiftRowTab[i]] = i; - - AES_xtime = new Array(256); - for(var i = 0; i < 128; i++) { - AES_xtime[i] = i << 1; - AES_xtime[128 + i] = (i << 1) ^ 0x1b; - } -} - -/* - AES_Done: release memory reserved by AES_Init. Call this function after - the last encryption/decryption operation. -*/ - -function AES_Done() { - delete AES_Sbox_Inv; - delete AES_ShiftRowTab_Inv; - delete AES_xtime; -} - -/* - AES_ExpandKey: expand a cipher key. Depending on the desired encryption - strength of 128, 192 or 256 bits 'key' has to be a byte array of length - 16, 24 or 32, respectively. The key expansion is done "in place", meaning - that the array 'key' is modified. -*/ - -function AES_ExpandKey(key) { - var kl = key.length, ks, Rcon = 1; - switch (kl) { - case 16: ks = 16 * (10 + 1); break; - case 24: ks = 16 * (12 + 1); break; - case 32: ks = 16 * (14 + 1); break; - default: - alert("AES_ExpandKey: Only key lengths of 16, 24 or 32 bytes allowed!"); - } - for(var i = kl; i < ks; i += 4) { - var temp = key.slice(i - 4, i); - if (i % kl == 0) { - temp = new Array(AES_Sbox[temp[1]] ^ Rcon, AES_Sbox[temp[2]], - AES_Sbox[temp[3]], AES_Sbox[temp[0]]); - if ((Rcon <<= 1) >= 256) - Rcon ^= 0x11b; - } - else if ((kl > 24) && (i % kl == 16)) - temp = new Array(AES_Sbox[temp[0]], AES_Sbox[temp[1]], - AES_Sbox[temp[2]], AES_Sbox[temp[3]]); - for(var j = 0; j < 4; j++) - key[i + j] = key[i + j - kl] ^ temp[j]; - } -} - -/* - AES_Encrypt: encrypt the 16 byte array 'block' with the previously - expanded key 'key'. -*/ - -function AES_Encrypt(block, key) { - var l = key.length; - AES_AddRoundKey(block, key.slice(0, 16)); - for(var i = 16; i < l - 16; i += 16) { - AES_SubBytes(block, AES_Sbox); - AES_ShiftRows(block, AES_ShiftRowTab); - AES_MixColumns(block); - AES_AddRoundKey(block, key.slice(i, i + 16)); - } - AES_SubBytes(block, AES_Sbox); - AES_ShiftRows(block, AES_ShiftRowTab); - AES_AddRoundKey(block, key.slice(i, l)); -} - -/* - AES_Decrypt: decrypt the 16 byte array 'block' with the previously - expanded key 'key'. -*/ - -function AES_Decrypt(block, key) { - var l = key.length; - AES_AddRoundKey(block, key.slice(l - 16, l)); - AES_ShiftRows(block, AES_ShiftRowTab_Inv); - AES_SubBytes(block, AES_Sbox_Inv); - for(var i = l - 32; i >= 16; i -= 16) { - AES_AddRoundKey(block, key.slice(i, i + 16)); - AES_MixColumns_Inv(block); - AES_ShiftRows(block, AES_ShiftRowTab_Inv); - AES_SubBytes(block, AES_Sbox_Inv); - } - AES_AddRoundKey(block, key.slice(0, 16)); -} - -/******************************************************************************/ - -/* The following lookup tables and functions are for internal use only! */ - -AES_Sbox = new Array(99,124,119,123,242,107,111,197,48,1,103,43,254,215,171, - 118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253, - 147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154, - 7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227, - 47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170, - 251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245, - 188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61, - 100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224, - 50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213, - 78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221, - 116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29, - 158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161, - 137,13,191,230,66,104,65,153,45,15,176,84,187,22); - -AES_ShiftRowTab = new Array(0,5,10,15,4,9,14,3,8,13,2,7,12,1,6,11); - -function AES_SubBytes(state, sbox) { - for(var i = 0; i < 16; i++) - state[i] = sbox[state[i]]; -} - -function AES_AddRoundKey(state, rkey) { - for(var i = 0; i < 16; i++) - state[i] ^= rkey[i]; -} - -function AES_ShiftRows(state, shifttab) { - var h = new Array().concat(state); - for(var i = 0; i < 16; i++) - state[i] = h[shifttab[i]]; -} - -function AES_MixColumns(state) { - for(var i = 0; i < 16; i += 4) { - var s0 = state[i + 0], s1 = state[i + 1]; - var s2 = state[i + 2], s3 = state[i + 3]; - var h = s0 ^ s1 ^ s2 ^ s3; - state[i + 0] ^= h ^ AES_xtime[s0 ^ s1]; - state[i + 1] ^= h ^ AES_xtime[s1 ^ s2]; - state[i + 2] ^= h ^ AES_xtime[s2 ^ s3]; - state[i + 3] ^= h ^ AES_xtime[s3 ^ s0]; - } -} - -function AES_MixColumns_Inv(state) { - for(var i = 0; i < 16; i += 4) { - var s0 = state[i + 0], s1 = state[i + 1]; - var s2 = state[i + 2], s3 = state[i + 3]; - var h = s0 ^ s1 ^ s2 ^ s3; - var xh = AES_xtime[h]; - var h1 = AES_xtime[AES_xtime[xh ^ s0 ^ s2]] ^ h; - var h2 = AES_xtime[AES_xtime[xh ^ s1 ^ s3]] ^ h; - state[i + 0] ^= h1 ^ AES_xtime[s0 ^ s1]; - state[i + 1] ^= h2 ^ AES_xtime[s1 ^ s2]; - state[i + 2] ^= h1 ^ AES_xtime[s2 ^ s3]; - state[i + 3] ^= h2 ^ AES_xtime[s3 ^ s0]; - } -} diff --git a/static/js/sha256.js b/static/js/sha256.js deleted file mode 100644 index 1e4da90..0000000 --- a/static/js/sha256.js +++ /dev/null @@ -1,174 +0,0 @@ -/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ -/* SHA-256 implementation in JavaScript | (c) Chris Veness 2002-2010 | www.movable-type.co.uk */ -/* - see http://csrc.nist.gov/groups/ST/toolkit/secure_hashing.html */ -/* http://csrc.nist.gov/groups/ST/toolkit/examples.html */ -/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ - -var Sha256 = {}; // Sha256 namespace - -/** - * Generates SHA-256 hash of string - * - * @param {String} msg String to be hashed - * @param {Boolean} [utf8encode=true] Encode msg as UTF-8 before generating hash - * @returns {String} Hash of msg as hex character string - */ -Sha256.hash = function(msg, utf8encode) { - utf8encode = (typeof utf8encode == 'undefined') ? true : utf8encode; - - // convert string to UTF-8, as SHA only deals with byte-streams - if (utf8encode) msg = Utf8.encode(msg); - - // constants [§4.2.2] - var K = [0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, - 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, - 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, - 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, - 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, - 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, - 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, - 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2]; - // initial hash value [§5.3.1] - var H = [0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19]; - - // PREPROCESSING - - msg += String.fromCharCode(0x80); // add trailing '1' bit (+ 0's padding) to string [§5.1.1] - - // convert string msg into 512-bit/16-integer blocks arrays of ints [§5.2.1] - var l = msg.length/4 + 2; // length (in 32-bit integers) of msg + ‘1’ + appended length - var N = Math.ceil(l/16); // number of 16-integer-blocks required to hold 'l' ints - var M = new Array(N); - - for (var i=0; i>> 32, but since JS converts - // bitwise-op args to 32 bits, we need to simulate this by arithmetic operators - M[N-1][14] = ((msg.length-1)*8) / Math.pow(2, 32); M[N-1][14] = Math.floor(M[N-1][14]) - M[N-1][15] = ((msg.length-1)*8) & 0xffffffff; - - - // HASH COMPUTATION [§6.1.2] - - var W = new Array(64); var a, b, c, d, e, f, g, h; - for (var i=0; i>> n) | (x << (32-n)); } -Sha256.Sigma0 = function(x) { return Sha256.ROTR(2, x) ^ Sha256.ROTR(13, x) ^ Sha256.ROTR(22, x); } -Sha256.Sigma1 = function(x) { return Sha256.ROTR(6, x) ^ Sha256.ROTR(11, x) ^ Sha256.ROTR(25, x); } -Sha256.sigma0 = function(x) { return Sha256.ROTR(7, x) ^ Sha256.ROTR(18, x) ^ (x>>>3); } -Sha256.sigma1 = function(x) { return Sha256.ROTR(17, x) ^ Sha256.ROTR(19, x) ^ (x>>>10); } -Sha256.Ch = function(x, y, z) { return (x & y) ^ (~x & z); } -Sha256.Maj = function(x, y, z) { return (x & y) ^ (x & z) ^ (y & z); } - -// -// hexadecimal representation of a number -// (note toString(16) is implementation-dependant, and -// in IE returns signed numbers when used on full words) -// -Sha256.toHexStr = function(n) { - var s="", v; - for (var i=7; i>=0; i--) { v = (n>>>(i*4)) & 0xf; s += v.toString(16); } - return s; -} - - -/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ -/* Utf8 class: encode / decode between multi-byte Unicode characters and UTF-8 multiple */ -/* single-byte character encoding (c) Chris Veness 2002-2010 */ -/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ - -var Utf8 = {}; // Utf8 namespace - -/** - * Encode multi-byte Unicode string into utf-8 multiple single-byte characters - * (BMP / basic multilingual plane only) - * - * Chars in range U+0080 - U+07FF are encoded in 2 chars, U+0800 - U+FFFF in 3 chars - * - * @param {String} strUni Unicode string to be encoded as UTF-8 - * @returns {String} encoded string - */ -Utf8.encode = function(strUni) { - // use regular expressions & String.replace callback function for better efficiency - // than procedural approaches - var strUtf = strUni.replace( - /[\u0080-\u07ff]/g, // U+0080 - U+07FF => 2 bytes 110yyyyy, 10zzzzzz - function(c) { - var cc = c.charCodeAt(0); - return String.fromCharCode(0xc0 | cc>>6, 0x80 | cc&0x3f); } - ); - strUtf = strUtf.replace( - /[\u0800-\uffff]/g, // U+0800 - U+FFFF => 3 bytes 1110xxxx, 10yyyyyy, 10zzzzzz - function(c) { - var cc = c.charCodeAt(0); - return String.fromCharCode(0xe0 | cc>>12, 0x80 | cc>>6&0x3F, 0x80 | cc&0x3f); } - ); - return strUtf; -} - -/** - * Decode utf-8 encoded string back into multi-byte Unicode characters - * - * @param {String} strUtf UTF-8 string to be decoded back to Unicode - * @returns {String} decoded string - */ -Utf8.decode = function(strUtf) { - // note: decode 3-byte chars first as decoded 2-byte strings could appear to be 3-byte char! - var strUni = strUtf.replace( - /[\u00e0-\u00ef][\u0080-\u00bf][\u0080-\u00bf]/g, // 3-byte chars - function(c) { // (note parentheses for precence) - var cc = ((c.charCodeAt(0)&0x0f)<<12) | ((c.charCodeAt(1)&0x3f)<<6) | ( c.charCodeAt(2)&0x3f); - return String.fromCharCode(cc); } - ); - strUni = strUni.replace( - /[\u00c0-\u00df][\u0080-\u00bf]/g, // 2-byte chars - function(c) { // (note parentheses for precence) - var cc = (c.charCodeAt(0)&0x1f)<<6 | c.charCodeAt(1)&0x3f; - return String.fromCharCode(cc); } - ); - return strUni; -} - -/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ \ No newline at end of file diff --git a/templates/base.html b/templates/base.html index 5ab0eb1..f685cc9 100644 --- a/templates/base.html +++ b/templates/base.html @@ -2,6 +2,8 @@ Dynastie {% block head %} {% endblock %} + + Users Blogs Disconnect

diff --git a/templates/category.html b/templates/category.html index 4e8dfac..9fb7fb9 100644 --- a/templates/category.html +++ b/templates/category.html @@ -7,7 +7,7 @@ {% else %} {% for category in categories %} - + {% endfor %}
{{ category.id }}{{ category.name }}EditDelete
{{ category.id }}{{ category.name }}EditDelete
{% endif %} diff --git a/templates/edit_user.html b/templates/edit_user.html index 6a2893b..5b9b0bd 100644 --- a/templates/edit_user.html +++ b/templates/edit_user.html @@ -2,15 +2,20 @@ {% block content %} {% if edited %} -

User successfuly updated

+

User successfuly updated

{% endif %} {% if user.is_superuser or user.id == user_to_edit.id %}
{% csrf_token %} {{ form.as_p }} - +

+{% if user.is_superuser %}{% endif %}
{% else %} +
+{% csrf_token %} {{ form.as_p }} + +
{% endif %} {% endblock %} diff --git a/templates/login.html b/templates/login.html index 2e7ce49..9455396 100644 --- a/templates/login.html +++ b/templates/login.html @@ -1,24 +1,6 @@ Dynastie - - - -