Revision 67980f56

b/snf-astakos-app/astakos/im/forms.py
627 627
        return super(ExtendedSetPasswordForm, self).save(commit=commit)
628 628

  
629 629

  
630

  
631

  
632
app_name_label       =  "Project name"
633
app_name_placeholder = _("myproject.mylab.ntua.gr")
634
app_name_validator   =  validators.RegexValidator(
635
                            DOMAIN_VALUE_REGEX,
636
                            _(astakos_messages.DOMAIN_VALUE_ERR),
637
                            'invalid')
638
app_name_help        =  _("""
639
        The Project's name should be in a domain format.
640
        The domain shouldn't neccessarily exist in the real
641
        world but is helpful to imply a structure.
642
        e.g.: myproject.mylab.ntua.gr or
643
        myservice.myteam.myorganization""")
644
app_name_widget      =  forms.TextInput(
645
                            attrs={'placeholder': app_name_placeholder})
646

  
647

  
648
app_home_label       =  "Homepage URL"
649
app_home_placeholder =  'http://myteam.myinstitution.org/myproject/'
650
app_home_help        =  _("""
651
        URL pointing at your project's site.
652
        e.g.: http://myteam.myinstitution.org/myproject.
653
        Leave blank if there is no website.""")
654
app_home_widget      =  forms.TextInput(
655
                            attrs={'placeholder': app_home_placeholder})
656

  
657
app_desc_label       =  _("Description")
658
app_desc_help        =  _("""
659
        Please provide a short but descriptive abstract of your Project,
660
        so that anyone searching can quickly understand
661
        what this Project is about.""")
662

  
663
app_comment_label    =  _("Comments for review (private)")
664
app_comment_help     =  _("""
665
        Write down any comments you may have for the reviewer
666
        of this application (e.g. background and rationale to
667
        support your request).
668
        The comments are strictly for the review process
669
        and will not be published.""")
670

  
671
app_start_date_label =  _("Start date")
672
app_start_date_help  =  _("""
673
        Provide a date when your need your project to be created,
674
        and members to be able to join and get resources.
675
        This date is only a hint to help prioritize reviews.""")
676

  
677
app_end_date_label   =  _("Termination date")
678
app_end_date_help    =  _("""
679
        At this date, the project will be automatically terminated
680
        and its resource grants revoked from all members.
681
        Unless you know otherwise,
682
        it is best to start with a conservative estimation.
683
        You can always re-apply for an extension, if you need.""")
684

  
685
join_policy_label    =  _("Joining policy")
686
leave_policy_label   =  _("Leaving policy")
687

  
688
max_members_label    =  _("Maximum member count")
689
max_members_help     =  _("""
690
        Specify the maximum number of members this project may have,
691
        including the owner. Beyond this number, no new members
692
        may join the project and be granted the project resources.
693
        Unless you certainly for otherwise,
694
        it is best to start with a conservative limit.
695
        You can always request a raise when you need it.""")
696

  
697
join_policies = PROJECT_MEMBER_JOIN_POLICIES.iteritems()
698
leave_policies = PROJECT_MEMBER_LEAVE_POLICIES.iteritems()
699

  
630 700
class ProjectApplicationForm(forms.ModelForm):
701

  
631 702
    name = forms.CharField(
632
        validators=[validators.RegexValidator(
633
            DOMAIN_VALUE_REGEX,
634
            _(astakos_messages.DOMAIN_VALUE_ERR),
635
            'invalid'
636
        )],
637
        widget=forms.TextInput(
638
            attrs={'placeholder': 'myproject.mylab.ntua.gr'}),
639
            help_text="""The Project's name should be in a domain format.
640
                         The domain shouldn't neccessarily exist in the real
641
                         world but is helpful to imply a structure.
642
                         e.g.: myproject.mylab.ntua.gr or
643
                         myservice.myteam.myorganization"""
644
    )
703
        label     = app_name_label,
704
        help_text = app_name_help,
705
        widget    = app_name_widget,
706
        validators = [app_name_validator])
707

  
645 708
    homepage = forms.URLField(
646
        label="Homepage Url",
647
        help_text="""This should be a URL pointing at your project's site.
648
                     e.g.: http://myproject.com""",
649
        widget=forms.TextInput(attrs={'placeholder': 'http://myproject.com'}),
709
        label     = app_home_label,
710
        help_text = app_home_help,   
711
        widget    = app_home_widget,
712
        required  = False)
713

  
714
    description = forms.CharField(
715
        label     = app_desc_label,
716
        help_text = app_desc_help,
717
        widget    = forms.Textarea,
718
        required  = False)
719

  
720
    comments = forms.CharField(
721
        label     = app_comment_label,
722
        help_text = app_comment_help,
723
        widget    = forms.Textarea,
724
        required  = False)
725

  
726
    start_date = forms.DateTimeField(
727
        label     = app_start_date_label,
728
        help_text = app_start_date_help,
729
        required  = False)
730

  
731
    end_date = forms.DateTimeField(
732
        label     = app_end_date_label,
733
        help_text = app_end_date_help)
734

  
735
    member_join_policy  = forms.ChoiceField(
736
        label     = join_policy_label,
737
        choices   = join_policies)
650 738

  
651
        required=False
652
     )
653
    comments = forms.CharField(widget=forms.Textarea, required=False)
654
    member_join_policy = forms.ChoiceField(
655
        choices=PROJECT_MEMBER_JOIN_POLICIES.iteritems())
656 739
    member_leave_policy = forms.ChoiceField(
657
        choices=PROJECT_MEMBER_LEAVE_POLICIES.iteritems())
740
        label     = leave_policy_label,
741
        choices   = leave_policies)
742

  
743
    limit_on_members_number = forms.IntegerField(
744
        label     = max_members_label,
745
        help_text = max_members_help,
746
        required  = False)
658 747

  
659 748
    class Meta:
660 749
        model = ProjectApplication
661
        exclude = (
662
            'project',
663
            'resource_grants', 'id', 'applicant', 'owner',
664
            'precursor_application', 'state', 'issue_date')
750
        #include = ( 'name', 'homepage', 'description',
751
        #            'start_date', 'end_date', 'comments')
665 752

  
666 753
    def __init__(self, *args, **kwargs):
667 754
        self.precursor_application = kwargs.get('instance')
b/snf-astakos-app/astakos/im/models.py
1152 1152
                                                     blank=True,
1153 1153
                                                     db_index=True)
1154 1154

  
1155
    name                    =   models.CharField(max_length=80,
1156
                                                 help_text=_("The Project's name should be in a domain format. The domain shouldn't neccessarily exist in the real world but is helpful to imply a structure. e.g.: myproject.mylab.ntua.gr or myservice.myteam.myorganization"))
1157
    homepage                =   models.URLField(max_length=255,
1158
                                                null=True,
1159
                                                blank=True,help_text=_("This should be a URL pointing at your project's site. e.g.: http://myproject.com ",))
1160
    description             =   models.TextField(null=True,
1161
                                                 blank=True,
1162
                                                 help_text=_("Please provide a short but descriptive abstract of your Project, so that anyone searching can quickly understand what this Project is about. "))
1163
    start_date              =   models.DateTimeField(help_text=_("Here you specify the date you want your Project to start granting its resources. Its members will get the resources coming from this Project on this exact date."))
1164
    end_date                =   models.DateTimeField(help_text=_("Here you specify the date you want your Project to cease. This means that after this date all members will no longer be able to allocate resources from this Project.  "))
1155
    name                    =   models.CharField(max_length=80)
1156
    homepage                =   models.URLField(max_length=255, null=True)
1157
    description             =   models.TextField(null=True, blank=True)
1158
    start_date              =   models.DateTimeField()
1159
    end_date                =   models.DateTimeField()
1165 1160
    member_join_policy      =   models.IntegerField()
1166 1161
    member_leave_policy     =   models.IntegerField()
1167
    limit_on_members_number =   models.PositiveIntegerField(null=True,
1168
                                                            blank=True,help_text=_("Here you specify the number of members this Project is going to have. This means that this number of people will be granted the resources you will specify in the next step. This can be '1' if you are the only one wanting to get resources. "))
1162
    limit_on_members_number =   models.PositiveIntegerField(null=True)
1169 1163
    resource_grants         =   models.ManyToManyField(
1170 1164
                                    Resource,
1171 1165
                                    null=True,
b/snf-astakos-app/astakos/im/templates/im/projects/intro.html
4 4
     
5 5
  </div>
6 6
  <div class="lt">
7

  
8 7
    <p>
9 8
    {% blocktrans %}
10
    ~okeanos gives the opportunity to Greek Academic or Research Organizations/Institutions/Faculty 
11
    to run their own projects remotely on virtual infrastructure. Simple, fast and with minimal to no cost at all.
12
    {% endblocktrans %}
9
    ~okeanos gives the opportunity to
10
    Greek Academic or Research Organizations/Institutions/Faculty
11
    to run their own projects remotely on virtual infrastructure.
12
    Simple, fast, and with minimal to no cost at all.
13
    {% blocktrans %}
13 14
    </p>
14
    <p><a href="{% url how_it_works %}" style="font-size:1.154em;">{% trans "How it works &gt;" %}</a></p>
15
    <p><a href="{% url how_it_works %}" style="font-size:1.154em;">How it works ></a></p>
15 16
  </div>
16 17
</div>
17 18

  
......
22 23
    <li class="create">
23 24
    <div>
24 25
      <div class="wrap">
25

  
26 26
        <p class="centered"><a href="{% url project_add %}"><img alt="THINK ABOUT IT" src="/static/im/images/create.png"></a></p>
27 27
        <p class="txt">
28 28
        {% blocktrans %}
29
        Create a new Project in seconds. 
30
        Specify how many members it will have, which and how many virtual 
31
        resources it will provide to its members. Describe its purpose. 
32
        Submit your request and if accepted, you and your colleagues are ready to deploy!<br><br> </p>
29
	Create a new Project. Name it, describe its purpose,
30
	choose virtual resources to be granted to members, and submit.
31
	Your application will be reviewed, and if accepted,
32
	you and your colleagues are ready to deploy!<br/><br/>
33 33
        {% endblocktrans %}
34
	</p>
34 35
        <p><a href="{% url project_add %}">create a project ></a></p>
35 36
      </div>
36 37
    </div>
......
41 42
        <p class="centered"><a href="{% url project_search %}"><img alt="THINK ABOUT IT" src="/static/im/images/join.png"></a></p>
42 43
        <p class="txt">
43 44
        {% blocktrans %}
44
        Become a member of an existing Project and instantly gain access to the resources 
45
        it has to offer you. Search for open Projects and join for free. Contact the closed 
46
        Projects administrators, if you think they will accept you. In two words: try to Join now. </p>
45
	Request to be a member of an existing Project
46
	and instantly gain access to the resources it has to offer you.
47
	Search for public Projects, or submit a join request to a private Project,
48
	if you think its administrators will accept you.
49
	In short: try to Join now.
47 50
        {% endblocktrans %}
51
	</p>
48 52
        <p><a href="{% url project_search %}">join a project ></a></p>
49 53
      </div>
50 54
    </div>
b/snf-astakos-app/astakos/im/templates/im/projects/projectapplication_form.html
18 18
    		1. PROJECT DETAILS
19 19
			<span class="info"> 
20 20
		    	<em>more info</em>
21
		    	<span> To create a new Project, first enter the following required fields. The information you enter will be visible to all ~okeanos users. </span>
21
		    	<span> To create a new Project, first enter the following required fields.
22
			The information you enter (except <em>Comments for review)</em>)
23
			will be visible to all ~okeanos users. </span>
22 24
	    	</span>    		
23 25
    	</legend>
24 26
    	{% for field in form %}

Also available in: Unified diff