from django.db import models from django.utils.translation import gettext_lazy as _ # Create your models here. class Comment(models.Model): lang = models.CharField(max_length=5) comment = models.CharField(max_length=100) level = models.CharField(max_length=5) class Log(models.Model): game = models.CharField(max_length=30) date = models.DateField(blank=True, null=True) userinput = models.CharField(max_length=200) iscorrect = models.BooleanField() correct = models.CharField(max_length=200) example = models.CharField(max_length=200,null=True) feedback = models.CharField(max_length=200,null=True) comment = models.CharField(max_length=200) class Semtype(models.Model): semtype = models.CharField(max_length=50) class Source(models.Model): type = models.CharField(max_length=20) name = models.CharField(max_length=20) # First, define the Manager subclass. class NPosManager(models.Manager): def get_query_set(self): return super(NPosManager, self).get_query_set().filter(pos='N') class Dialect(models.Model): dialect = models.CharField(max_length=5) name = models.CharField(max_length=100) class Word(models.Model): wordid = models.CharField(max_length=200) lemma = models.CharField(max_length=200) presentationform = models.CharField(max_length=5) pos = models.CharField(max_length=5) stem = models.CharField(max_length=20) valency = models.CharField(max_length=10) semtype = models.ManyToManyField(Semtype) source = models.ManyToManyField(Source) diphthong=models.CharField(max_length=5) gradation=models.CharField(max_length=20) rime = models.CharField(max_length=20) attrsuffix = models.CharField(max_length=20) soggi = models.CharField(max_length=10) compare = models.CharField(max_length=5) # 'translations' should be removed later # translations = models.ManyToManyField('Wordnob') translations2nob = models.ManyToManyField('Wordnob') translations2fin = models.ManyToManyField('Wordfin') translations2swe = models.ManyToManyField('Wordswe') translations2eng = models.ManyToManyField('Wordeng') translations2deu = models.ManyToManyField('Worddeu') frequency = models.CharField(max_length=10) geography = models.CharField(max_length=10) dialects = models.ManyToManyField(Dialect,null=True) objects = models.Manager() # The default manager. N_objects = NPosManager() # The Noun-specific manager class Wordnob(models.Model): wordid = models.CharField(max_length=200) lemma = models.CharField(max_length=200) pos = models.CharField(max_length=5) semtype = models.ManyToManyField(Semtype) source = models.ManyToManyField(Source) translations = models.ManyToManyField(Word) frequency = models.CharField(max_length=10) geography = models.CharField(max_length=10) class Wordfin(models.Model): wordid = models.CharField(max_length=200) lemma = models.CharField(max_length=200) pos = models.CharField(max_length=5) semtype = models.ManyToManyField(Semtype) source = models.ManyToManyField(Source) translations = models.ManyToManyField(Word) frequency = models.CharField(max_length=10) geography = models.CharField(max_length=10) class Wordswe(models.Model): wordid = models.CharField(max_length=200) lemma = models.CharField(max_length=200) pos = models.CharField(max_length=5) semtype = models.ManyToManyField(Semtype) source = models.ManyToManyField(Source) translations = models.ManyToManyField(Word) frequency = models.CharField(max_length=10) geography = models.CharField(max_length=10) class Wordeng(models.Model): wordid = models.CharField(max_length=200) lemma = models.CharField(max_length=200) pos = models.CharField(max_length=5) semtype = models.ManyToManyField(Semtype) source = models.ManyToManyField(Source) translations = models.ManyToManyField(Word) frequency = models.CharField(max_length=10) geography = models.CharField(max_length=10) class Worddeu(models.Model): wordid = models.CharField(max_length=200) lemma = models.CharField(max_length=200) pos = models.CharField(max_length=5) semtype = models.ManyToManyField(Semtype) source = models.ManyToManyField(Source) translations = models.ManyToManyField(Word) frequency = models.CharField(max_length=10) geography = models.CharField(max_length=10) class Tagset(models.Model): tagset = models.CharField(max_length=25) class Tagname(models.Model): tagname=models.CharField(max_length=25) tagset=models.ForeignKey(Tagset) class Tag(models.Model): string = models.CharField(max_length=25) pos = models.CharField(max_length=5) case = models.CharField(max_length=5) number = models.CharField(max_length=5) possessive = models.CharField(max_length=5) grade = models.CharField(max_length=10) infinite = models.CharField(max_length=10) personnumber = models.CharField(max_length=8) conneg = models.CharField(max_length=5) polarity = models.CharField(max_length=5) tense = models.CharField(max_length=5) mood = models.CharField(max_length=5) subclass = models.CharField(max_length=10) attributive = models.CharField(max_length=5) class Admin: pass class Form(models.Model): word = models.ForeignKey(Word) tag = models.ForeignKey(Tag) fullform = models.CharField(max_length=200) dialects = models.ManyToManyField(Dialect) ########### CONTEXT-MORFA, VASTA class Question(models.Model): qid = models.CharField(max_length=200) level = models.IntegerField(max_length=3) task = models.CharField(max_length=20) string = models.CharField(max_length=200) qtype = models.CharField(max_length=20) qatype = models.CharField(max_length=20) question = models.ForeignKey('self', blank=True, null=True, related_name='answer_set') gametype = models.CharField(max_length=5) source = models.ManyToManyField(Source) class QElement(models.Model): question=models.ForeignKey(Question, null=True) syntax = models.CharField(max_length=50) identifier = models.CharField(max_length=20) gametype = models.CharField(max_length=5) agreement = models.ForeignKey('self', blank=True, null=True, related_name='agreement_set') tags = models.ManyToManyField(Tag) game = models.CharField(max_length=20) copy = models.ForeignKey('self', blank=True, null=True, related_name='copy_set') class WordQElement(models.Model): word = models.ForeignKey(Word, null=True) qelement = models.ForeignKey(QElement, null=True) semtype = models.ForeignKey(Semtype, null=True) ############# MORFA FEEDBACK class Feedbackmsg(models.Model): msgid = models.CharField(max_length=100) class Feedbacktext(models.Model): message = models.CharField(max_length=200) language = models.CharField(max_length=6) feedbackmsg = models.ForeignKey(Feedbackmsg) class Feedback(models.Model): messages = models.ManyToManyField(Feedbackmsg) pos = models.CharField(max_length=5,blank=True,null=True) stem = models.CharField(max_length=20,blank=True,null=True) diphthong=models.CharField(max_length=5,blank=True,null=True) gradation=models.CharField(max_length=15,null=True,blank=True) rime = models.CharField(max_length=20,null=True,blank=True) soggi = models.CharField(max_length=10,null=True,blank=True) case2 = models.CharField(max_length=5,null=True,blank=True) number = models.CharField(max_length=5,null=True,blank=True) personnumber = models.CharField(max_length=5,null=True,blank=True) tense = models.CharField(max_length=5,null=True,blank=True) mood = models.CharField(max_length=10,null=True,blank=True) grade = models.CharField(max_length=10,null=True,blank=True) attrsuffix = models.CharField(max_length=10,null=True,blank=True) attributive = models.CharField(max_length=10,null=True,blank=True) dialects = models.ManyToManyField(Dialect) class Meta: unique_together = ("pos","stem","diphthong","gradation","rime","soggi","case2","number","personnumber","tense","mood","grade","attrsuffix","attributive") ############ SAHKA class Dialogue(models.Model): name = models.CharField(max_length=50,blank=True,null=True) class Utterance(models.Model): utterance = models.CharField(max_length=500,blank=True,null=True) utttype = models.CharField(max_length=20,blank=True,null=True) links = models.ManyToManyField('LinkUtterance') name = models.CharField(max_length=200,blank=True,null=True) topic = models.ForeignKey('Topic') formlist = models.ManyToManyField(Form) class UElement(models.Model): utterance=models.ForeignKey(Utterance, null=True) syntax = models.CharField(max_length=50) tag = models.ForeignKey(Tag,null=True,blank=True) class LinkUtterance(models.Model): link = models.ForeignKey(Utterance,null=True,blank=True) target = models.CharField(max_length=20,null=True,blank=True) variable = models.CharField(max_length=20,null=True,blank=True) constant = models.CharField(max_length=20,null=True,blank=True) class Topic(models.Model): topicname = models.CharField(max_length=50,blank=True,null=True) dialogue = models.ForeignKey(Dialogue) number = models.IntegerField(max_length=3,null=True) image = models.CharField(max_length=50,null=True,blank=True) formlist = models.ManyToManyField(Form) ######### EXTRA class Grammarlinks(models.Model): name = models.CharField(max_length=200,blank=True,null=True) address = models.CharField(max_length=800,blank=True,null=True) language = models.CharField(max_length=5,blank=True,null=True)