field=models.CharField(blank=True,default='',help_text='Which language is forced to be used for this course.',max_length=200,null=True,validators=[course.models.validate_course_specific_language],verbose_name='Course language forcibly used'),
field=models.CharField(help_text="A Git URL from which to pull course updates. If you're just starting out, enter <tt>git://github.com/inducer/relate-sample</tt> to get some sample content.",max_length=200,verbose_name='git source'),
field=models.CharField(help_text="A symbolic name for this role, used in course code. Should be a valid identifier. The name 'unenrolled' is special and refers to anyone not enrolled in the course.",max_length=100,verbose_name='Role identifier'),
),
migrations.AlterField(
model_name='participationtag',
name='name',
field=models.CharField(help_text='Should be a valid identifier.',max_length=100,verbose_name='Name of participation tag'),
),
migrations.AlterField(
model_name='participationtag',
name='shown_to_participant',
field=models.BooleanField(default=False,verbose_name='Shown to participant'),
field=models.CharField(db_index=True,help_text="A course identifier. Alphanumeric with dashes, no spaces. This is visible in URLs and determines the location on your file system where the course's git repository lives. This should <em>not</em> be changed after the course has been created without also moving the course's git on the server.",max_length=200,unique=True,validators=[django.core.validators.RegexValidator('^(?P<course_identifier>[-a-zA-Z0-9]+)$',message="Identifier may only contain letters, numbers, and hyphens ('-').")],verbose_name='Course identifier'),
),
migrations.AlterField(
model_name='event',
name='kind',
field=models.CharField(help_text='Should be lower_case_with_underscores, no spaces allowed.',max_length=50,validators=[django.core.validators.RegexValidator('^(?P<event_kind>[_a-z0-9]+)$',message='Should be lower_case_with_underscores, no spaces allowed.')],verbose_name='Kind of event'),
),
migrations.AlterField(
model_name='flowaccessexception',
name='stipulations',
field=jsonfield.fields.JSONField(blank=True,dump_kwargs={'ensure_ascii':False},help_text='A dictionary of the same things that can be added to a flow access rule, such as allowed_session_count or credit_percent. If not specified here, values will default to the stipulations in the course content.',null=True,validators=[course.models.validate_stipulations],verbose_name='Stipulations'),
field=models.CharField(help_text='A symbolic name for this grade. lower_case_with_underscores, no spaces.',max_length=200,validators=[django.core.validators.RegexValidator('^(?P<grading_opp_id>[-_a-zA-Z0-9]+)$',message="Identifier may only contain letters, numbers, and hyphens ('-').")],verbose_name='Grading opportunity ID'),
field=models.CharField(help_text="A symbolic name for this role, used in course code. Should be a valid identifier (as defined by Python). The name 'unenrolled' is special and refers to anyone not enrolled in the course.",max_length=100,verbose_name='Role identifier'),
field=models.CharField(help_text="A Git URL from which to pull course updates. If you're just starting out, enter <tt>https://github.com/inducer/relate-sample.git</tt> to get some sample content.",max_length=200,verbose_name='git source'),