Forgot to add my source : _ models.py _ Testdata.py
******************************************************************************************* from django.db import models import logging from django.contrib.auth.models import User, UserManager log = logging.getLogger('dpaste.models') GENDER_CHOICES = ( ('M', 'Male'), ('F', 'Female'), ) TOPIC_CHOICES = ( ( 'general', 'General enquiry'), ( 'bug', 'Report a bug'), ( 'suggestion', 'Make a suggestion'), ) # ########################################################################################### class PersistanceDuration(models.Model): """ Defines a persistence duration for the posts. Per default a user has a persistence duration assigned to him/her. """ duration_type = models.TextField(max_length='100', unique=True, null=False) duration = models.IntegerField(default=100) def __str__(self): return self.__unicode__() def __unicode__(self): return u'duration : ''%s'' --> %i days' % (self.duration_type, self.duration) class Admin: pass # # # class Author(User): """ An Author is someone more of less identified who will be authorised to post code""" # TODO : Ensure that in fact the users are FK to the Django user management code gender = models.CharField(max_length=1, choices=GENDER_CHOICES) persistance = models.ForeignKey(PersistanceDuration) class Admin: list_display = ( 'username', 'email', 'first_name', 'last_name', 'gender', 'date_joined', 'last_login') list_filter = ( 'username', 'email', 'first_name', 'last_name', 'gender') ordering = ('username',) search_fields = ( 'username', 'email', 'first_name', 'last_name', 'gender') def __unicode__(self): return u'%s %s --> user-id : %s (%s)' % (self.first_name, self.last_name, self.username, self.email) class ProgrammingLanguage(models.Model): """ Defining the programming language is probably a mean to add/ remove them based on the lexer's acronyms""" lang_code = models.CharField(max_length=20, unique=True, null=False) comment = models.TextField() created_on = models.DateField(auto_now_add=True, editable=False) last_modified_on = models.DateField(auto_now=True, editable=False) def __unicode__(self): return u'ProgrammingLanguage : %s (last updated : %s)' % (self.lang_code, self.last_modified_on) class CodePost(models.Model): poster = models.ForeignKey(Author, to_field='username') languages = models.ManyToManyField(ProgrammingLanguage) #, to_field='lang_code') code = models.TextField(null=False) comment = models.TextField() created_on = models.DateField(auto_now_add=True, editable=False) last_modified_on = models.DateField(auto_now=True, editable=False) # This is a mean to clean up the code isActive = models.BooleanField(default=True) persistance = models.ForeignKey(PersistanceDuration, null=True) class Admin: list_display = ( 'poster', 'code', 'comment', 'created_on', 'last_modified_on', 'isActive') list_filter = ( 'poster', 'languages') ordering = ('languages', '-last_modified_on') search_fields = ( 'poster', 'languages', 'code', 'comment') def __unicode__(self): return "poster:" + str(self.poster) + '\ncode:' + str(self.code) # Is currently hard coded class Lexer(models.Model): lang_code = models.ForeignKey(ProgrammingLanguage, to_field='lang_code') name = models.CharField(max_length=200, unique=True, null=False) created_on = models.DateField(auto_now_add=True, editable=False) last_modified_on = models.DateField(auto_now=True, editable=False) def __unicode__(self): return u'Lexer : %s for %s' % (self.name, self.lang_code) # Is currently hard coded class Render(models.Model): rendered_type = models.CharField(max_length=20, unique=True, null=False) renderer_name = models.CharField(max_length=200, unique=True, null=False) created_on = models.DateField(auto_now_add=True, editable=False) last_modified_on = models.DateField(auto_now=True, editable=False) def __unicode__(self): return u'Render : type : %s / name : %s' % (self.rendered_type, self.renderer_name) class Submition(models.Model): topic = models.CharField(max_length=50, choices=TOPIC_CHOICES) message = models.TextField() sender = models.EmailField() def __unicode__(self): return u'Submition : Topic : %s from %s' % (self.topic, self.sender) ******************************************************************************************* from dpaste.models import * import logging PDs = [] PDs.append(PersistanceDuration(duration_type = 'Admin', duration=50000)) PDs.append(PersistanceDuration(duration_type = 'default', duration=500)) PDs.append(PersistanceDuration(duration_type = 'minimal', duration=5)) for pd in PDs: pd.save() pd_minimal = PersistanceDuration.objects.get(duration_type='minimal') pd_default = PersistanceDuration.objects.get(duration_type='default') pd_root = PersistanceDuration.objects.get(duration_type='Admin') # # Create 2 authors # ######################################################################## a1 = Author(username='root', email='tsm...@a3-system.eu', first_name='Thomas Lionel', last_name='Smets', gender='M', persistance=pd_root, password='123456' ) a1.save() a2 = Author(username='Anonymous', email='tsm...@a3-system.be', first_name='Unregistered user', last_name='too bad', gender='M', persistance=pd_minimal, password='123456') a2.save() author_list = Author.objects.all() author_list user_list = User.objects.all() user_list # Define programming languages # ######################################################################### PLs = [] PLs.append(ProgrammingLanguage(lang_code='python3', comment='The currently active versions of Python (3.0)')) PLs.append(ProgrammingLanguage(lang_code='python', comment='The currently active versions of Python (2.4, 2.5, 2.6)... waiting on 3.0 final version')) PLs.append(ProgrammingLanguage(lang_code='shell', comment='Almost any shell: bash, c- shell, korn, zsh, ... or just plain shell')) PLs.append(ProgrammingLanguage(lang_code='perl', comment='Larry Wall''s Practical Extraction Language')) PLs.append(ProgrammingLanguage(lang_code='python-console', comment='')) PLs.append(ProgrammingLanguage(lang_code='ruby', # Ruby comment='A dynamic, interpreted, open source programming language with a focus on simplicity and productivity')) PLs.append(ProgrammingLanguage(lang_code='ruby-console', # comment='The interpreter trace of a Ruby session')) PLs.append(ProgrammingLanguage(lang_code='java', # comment='')) PLs.append(ProgrammingLanguage(lang_code='scala', # comment='')) PLs.append(ProgrammingLanguage(lang_code='c#', # comment='MS lingua fraca')) PLs.append(ProgrammingLanguage(lang_code='fortran', # FORTRAN comment='THE language for numerical work (FORmula TRANslation)')) PLs.append(ProgrammingLanguage(lang_code='my-sql', # my- sql comment='mySQL ')) PLs.append(ProgrammingLanguage(lang_code='sql', # comment='General SQL')) PLs.append(ProgrammingLanguage(lang_code='povray', # POVRAY comment='The Persistence of Vision Raytracer -> http://www.povray.org/')) # PLs.append(ProgrammingLanguage(lang_code='', comment='')) # print 'Adding the definition of the programming languages (%i)' % len (PLs) for pl in PLs: pl.save() # # Added some posts # ######################################################################## CPs = [] cp=CodePost(poster=a1, code='[python]#!/usr/bin/python\nprint "Hello World!"[/python]') CPs.append(cp) cp.save() cp.languages=[ ProgrammingLanguage.objects.get(lang_code='java') ] cp = CodePost(poster=a1, code='[shell]#!/bin/sh\nNOW=`date +YYYY+MM+DD` [/shell]') CPs.append(cp) cp.save() cp.languages=[ ProgrammingLanguage.objects.get(lang_code='shell') ] cp = CodePost(poster=a1, code='[python][/pyhton]') CPs.append(cp) cp.save() cp.languages=[ ProgrammingLanguage.objects.get(lang_code='python') ] for cp in CPs: cp.save() ******************************************************************************************* -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-us...@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.