@@ -24,25 +24,26 @@ under the
2424[ ** django-audit-log/audit-log/models/__ init__ .py** ] ( https://github.com/vvangelovski/django-audit-log/blob/master/audit_log/models/__init__.py )
2525
2626``` python
27+ # __init__.py
2728~~ from django.db.models import Model
2829from django.utils.translation import ugettext_lazy as _
2930from audit_log.models.fields import (CreatingUserField, CreatingSessionKeyField,
3031 LastUserField, LastSessionKeyField)
3132
3233
3334~~ class AuthStampedModel (Model ):
34- """ An abstract base class model that provides auth and session information
35- fields.
36- """
37- created_by = CreatingUserField(verbose_name = _(" created by" ),
38- related_name = " created_%(app_label)s _%(class)s _set" )
39- created_with_session_key = CreatingSessionKeyField(_(" created with session key" ))
40- modified_by = LastUserField(verbose_name = _(" modified by" ),
41- related_name = " modified_%(app_label)s _%(class)s _set" )
42- modified_with_session_key = LastSessionKeyField(_(" modified with session key" ))
43-
44- class Meta :
45- abstract = True
35+ ~~ """ An abstract base class model that provides auth and session information
36+ ~~ fields.
37+ ~~ """
38+ ~~ created_by = CreatingUserField(verbose_name = _(" created by" ),
39+ ~~ related_name = " created_%(app_label)s _%(class)s _set" )
40+ ~~ created_with_session_key = CreatingSessionKeyField(_(" created with session key" ))
41+ ~~ modified_by = LastUserField(verbose_name = _(" modified by" ),
42+ ~~ related_name = " modified_%(app_label)s _%(class)s _set" )
43+ ~~ modified_with_session_key = LastSessionKeyField(_(" modified with session key" ))
44+ ~~
45+ ~~ class Meta :
46+ ~~ abstract = True
4647```
4748
4849
@@ -59,10 +60,10 @@ for use with Django web apps that is open sourced under the
5960``` python
6061# -*- coding: utf-8 -*-
6162from django.apps import apps
62- `` from django.db import models
63+ ~~ from django.db import models
6364from django.conf import settings
6465~~ from django.contrib.auth.models import Group, UserManager
65- ` ~ from django.contrib.sites.models import Site
66+ ~ ~from django.contrib.sites.models import Site
6667from django.core.exceptions import ImproperlyConfigured, ValidationError
6768from django.utils.encoding import force_text, python_2_unicode_compatible
6869from django.utils.translation import ugettext_lazy as _
@@ -251,182 +252,182 @@ from django.contrib.auth import get_user_model
251252from django.db.models.signals import post_save
252253from django.dispatch import receiver
253254from django.utils.translation import ugettext_lazy as _
254- from django.db import models
255+ ~~ from django.db import models
255256
256257# Create your models here.
257258from django_countries.fields import CountryField
258259
259260
260- User = get_user_model()
261-
262-
263- class Conference (models .Model ):
264- full_name = models.CharField(
265- max_length = 300 , verbose_name = _(' Full name of the conference' )
266- )
267-
268- short_name = models.CharField(
269- max_length = 30 , verbose_name = _(' Short name of the conference' )
270- )
271-
272- is_ieee = models.BooleanField(
273- default = False , verbose_name = _(' The conference is supported by IEEE' )
274- )
275-
276- country = CountryField(null = True , verbose_name = _(' Country' ))
277-
278- city = models.CharField(
279- max_length = 100 , verbose_name = _(' City' )
280- )
281-
282- start_date = models.DateField(null = True , verbose_name = _(' Opens at' ))
283- close_date = models.DateField(null = True , verbose_name = _(' Closes at' ))
284-
285- chairs = models.ManyToManyField(User, related_name = ' chaired_conferences' )
286-
287- creator = models.ForeignKey(
288- User, null = True , blank = True , on_delete = models.SET_NULL ,
289- related_name = ' created_conferences'
290- )
291-
292- logotype = models.ImageField(
293- verbose_name = _(" Conference logotype" ),
294- upload_to = f ' { settings.MEDIA_PUBLIC_ROOT } /conferences/logo/ ' ,
295- null = True , blank = True
296- )
297-
298- description = models.TextField(
299- verbose_name = _(' Medium length description of the conference' ),
300- default = " " ,
301- blank = True ,
302- )
303-
304- site_url = models.URLField(
305- verbose_name = _(' Conference informational site' ),
306- default = " " ,
307- blank = True ,
308- )
309-
310- def __str__ (self ):
311- return f ' { self .full_name} ( { self .short_name} ) '
312-
313-
314- class SubmissionStage (models .Model ):
315- conference = models.OneToOneField(
316- Conference, on_delete = models.CASCADE , related_name = ' submission_stage'
317- )
318-
319- end_date = models.DateTimeField(
320- null = True , verbose_name = _(' Deadline for submissions' )
321- )
322-
323- end_date_description = models.CharField(blank = True , max_length = 100 )
324-
325-
326- class ReviewStage (models .Model ):
327- conference = models.OneToOneField(
328- Conference, on_delete = models.CASCADE , related_name = ' review_stage'
329- )
330-
331- end_date = models.DateTimeField(
332- null = True , verbose_name = _(' End of review' )
333- )
334-
335-
336- class ProceedingType (models .Model ):
337- conference = models.ForeignKey(Conference, on_delete = models.CASCADE )
338-
339- name = models.CharField(
340- max_length = 100 , verbose_name = _(' Short name' )
341- )
261+ ~~ User = get_user_model()
342262
343- description = models.CharField(
344- max_length = 1000 , verbose_name = _(' Long description' )
345- )
346263
347- final_manuscript_deadline = models.DateTimeField(
348- null = True , verbose_name = _(' Deadline for final manuscript submission' )
349- )
350-
351- min_num_pages = models.IntegerField(
352- default = 4 , verbose_name = _(' Minimum number of pages in submission' )
353- )
354-
355- max_num_pages = models.IntegerField(
356- default = 4 , verbose_name = _(' Maximum number of pages in submission' )
357- )
358-
359- final_latex_template = models.FileField(
360- null = True , blank = True ,
361- verbose_name = _(' LaTeX template for final manuscript' ),
362- upload_to = f ' { settings.MEDIA_PUBLIC_ROOT } /conferences/templates '
363- )
364-
365- _final_latex_template_version = models.IntegerField(default = 1 )
366-
367- def __str__ (self ):
368- return self .name
369-
370-
371- class SubmissionType (models .Model ):
372- LANGUAGES = (
373- (None , _(' Select submission language' )),
374- (' RU' , _(' Russian' )),
375- (' EN' , _(' English' )),
376- )
377-
378- conference = models.ForeignKey(Conference, on_delete = models.CASCADE )
379-
380- name = models.CharField(
381- max_length = 100 , verbose_name = _(' Short name' )
382- )
383-
384- description = models.CharField(
385- max_length = 1000 , verbose_name = _(' Long description' )
386- )
387-
388- language = models.TextField(max_length = 2 , choices = LANGUAGES )
389-
390- latex_template = models.FileField(
391- null = True , verbose_name = _(' LaTeX template' ),
392- upload_to = f ' { settings.MEDIA_PUBLIC_ROOT } /conferences/templates '
393- )
394-
395- _latex_template_version = models.IntegerField(default = 1 )
396-
397- num_reviews = models.IntegerField(
398- default = 2 , verbose_name = _(' Number of reviews per submission' )
399- )
264+ ~~ class Conference (models .Model ):
265+ ~~ full_name = models.CharField(
266+ ~~ max_length = 300 , verbose_name = _(' Full name of the conference' )
267+ ~~ )
268+ ~~
269+ ~~ short_name = models.CharField(
270+ ~~ max_length = 30 , verbose_name = _(' Short name of the conference' )
271+ ~~ )
272+ ~~
273+ ~~ is_ieee = models.BooleanField(
274+ ~~ default = False , verbose_name = _(' The conference is supported by IEEE' )
275+ ~~ )
276+ ~~
277+ ~~ country = CountryField(null = True , verbose_name = _(' Country' ))
278+ ~~
279+ ~~ city = models.CharField(
280+ ~~ max_length = 100 , verbose_name = _(' City' )
281+ ~~ )
282+ ~~
283+ ~~ start_date = models.DateField(null = True , verbose_name = _(' Opens at' ))
284+ ~~ close_date = models.DateField(null = True , verbose_name = _(' Closes at' ))
285+ ~~
286+ ~~ chairs = models.ManyToManyField(User, related_name = ' chaired_conferences' )
287+ ~~
288+ ~~ creator = models.ForeignKey(
289+ ~~ User, null = True , blank = True , on_delete = models.SET_NULL ,
290+ ~~ related_name = ' created_conferences'
291+ ~~ )
292+ ~~
293+ ~~ logotype = models.ImageField(
294+ ~~ verbose_name = _(" Conference logotype" ),
295+ ~~ upload_to = f ' { settings.MEDIA_PUBLIC_ROOT } /conferences/logo/ ' ,
296+ ~~ null = True , blank = True
297+ ~~ )
298+ ~~
299+ ~~ description = models.TextField(
300+ ~~ verbose_name = _(' Medium length description of the conference' ),
301+ ~~ default = " " ,
302+ ~~ blank = True ,
303+ ~~ )
304+ ~~
305+ ~~ site_url = models.URLField(
306+ ~~ verbose_name = _(' Conference informational site' ),
307+ ~~ default = " " ,
308+ ~~ blank = True ,
309+ ~~ )
310+ ~~
311+ ~~ def __str__ (self ):
312+ ~~ return f ' { self .full_name} ( { self .short_name} ) '
400313
401- min_num_pages = models.IntegerField(
402- default = 4 , verbose_name = _(' Minimum number of pages in submission' )
403- )
404314
405- max_num_pages = models.IntegerField(
406- default = 4 , verbose_name = _(' Maximum number of pages in submission' )
407- )
315+ ~~ class SubmissionStage (models .Model ):
316+ ~~ conference = models.OneToOneField(
317+ ~~ Conference, on_delete = models.CASCADE , related_name = ' submission_stage'
318+ ~~ )
319+ ~~
320+ ~~ end_date = models.DateTimeField(
321+ ~~ null = True , verbose_name = _(' Deadline for submissions' )
322+ ~~ )
323+ ~~
324+ ~~ end_date_description = models.CharField(blank = True , max_length = 100 )
408325
409- blind_review = models.BooleanField(
410- default = False , verbose_name = _(' Blind review' )
411- )
412326
413- possible_proceedings = models.ManyToManyField(ProceedingType)
327+ ~~ class ReviewStage (models .Model ):
328+ ~~ conference = models.OneToOneField(
329+ ~~ Conference, on_delete = models.CASCADE , related_name = ' review_stage'
330+ ~~ )
331+ ~~
332+ ~~ end_date = models.DateTimeField(
333+ ~~ null = True , verbose_name = _(' End of review' )
334+ ~~ )
414335
415- def __str__ (self ):
416- return self .name
417336
337+ ~~ class ProceedingType (models .Model ):
338+ ~~ conference = models.ForeignKey(Conference, on_delete = models.CASCADE )
339+ ~~
340+ ~~ name = models.CharField(
341+ ~~ max_length = 100 , verbose_name = _(' Short name' )
342+ ~~ )
343+ ~~
344+ ~~ description = models.CharField(
345+ ~~ max_length = 1000 , verbose_name = _(' Long description' )
346+ ~~ )
347+ ~~
348+ ~~ final_manuscript_deadline = models.DateTimeField(
349+ ~~ null = True , verbose_name = _(' Deadline for final manuscript submission' )
350+ ~~ )
351+ ~~
352+ ~~ min_num_pages = models.IntegerField(
353+ ~~ default = 4 , verbose_name = _(' Minimum number of pages in submission' )
354+ ~~ )
355+ ~~
356+ ~~ max_num_pages = models.IntegerField(
357+ ~~ default = 4 , verbose_name = _(' Maximum number of pages in submission' )
358+ ~~ )
359+ ~~
360+ ~~ final_latex_template = models.FileField(
361+ ~~ null = True , blank = True ,
362+ ~~ verbose_name = _(' LaTeX template for final manuscript' ),
363+ ~~ upload_to = f ' { settings.MEDIA_PUBLIC_ROOT } /conferences/templates '
364+ ~~ )
365+ ~~
366+ ~~ _final_latex_template_version = models.IntegerField(default = 1 )
367+ ~~
368+ ~~ def __str__ (self ):
369+ ~~ return self .name
418370
419- class Topic (models .Model ):
420- class Meta :
421- ordering = [' order' ]
422371
423- conference = models.ForeignKey(Conference, on_delete = models.CASCADE )
372+ ~~ class SubmissionType (models .Model ):
373+ ~~ LANGUAGES = (
374+ ~~ (None , _(' Select submission language' )),
375+ ~~ (' RU' , _(' Russian' )),
376+ ~~ (' EN' , _(' English' )),
377+ ~~ )
378+ ~~
379+ ~~ conference = models.ForeignKey(Conference, on_delete = models.CASCADE )
380+ ~~
381+ ~~ name = models.CharField(
382+ ~~ max_length = 100 , verbose_name = _(' Short name' )
383+ ~~ )
384+ ~~
385+ ~~ description = models.CharField(
386+ ~~ max_length = 1000 , verbose_name = _(' Long description' )
387+ ~~ )
388+ ~~
389+ ~~ language = models.TextField(max_length = 2 , choices = LANGUAGES )
390+ ~~
391+ ~~ latex_template = models.FileField(
392+ ~~ null = True , verbose_name = _(' LaTeX template' ),
393+ ~~ upload_to = f ' { settings.MEDIA_PUBLIC_ROOT } /conferences/templates '
394+ ~~ )
395+ ~~
396+ ~~ _latex_template_version = models.IntegerField(default = 1 )
397+ ~~
398+ ~~ num_reviews = models.IntegerField(
399+ ~~ default = 2 , verbose_name = _(' Number of reviews per submission' )
400+ ~~ )
401+ ~~
402+ ~~ min_num_pages = models.IntegerField(
403+ ~~ default = 4 , verbose_name = _(' Minimum number of pages in submission' )
404+ ~~ )
405+ ~~
406+ ~~ max_num_pages = models.IntegerField(
407+ ~~ default = 4 , verbose_name = _(' Maximum number of pages in submission' )
408+ ~~ )
409+ ~~
410+ ~~ blind_review = models.BooleanField(
411+ ~~ default = False , verbose_name = _(' Blind review' )
412+ ~~ )
413+ ~~
414+ ~~ possible_proceedings = models.ManyToManyField(ProceedingType)
415+ ~~
416+ ~~ def __str__ (self ):
417+ ~~ return self .name
424418
425- name = models.CharField(max_length = 250 , verbose_name = _(' Topic name' ))
426- order = models.IntegerField(default = 0 )
427419
428- def __str__ (self ):
429- return f ' { self .name} '
420+ ~~ class Topic (models .Model ):
421+ ~~ class Meta :
422+ ~~ ordering = [' order' ]
423+ ~~
424+ ~~ conference = models.ForeignKey(Conference, on_delete = models.CASCADE )
425+ ~~
426+ ~~ name = models.CharField(max_length = 250 , verbose_name = _(' Topic name' ))
427+ ~~ order = models.IntegerField(default = 0 )
428+ ~~
429+ ~~ def __str__ (self ):
430+ ~~ return f ' { self .name} '
430431
431432
432433# source file continues from here without further Model examples
0 commit comments