Ejemplo n.º 1
0
    def visit_chart_group(self,
                          group_spec,
                          game,
                          parent_group,
                          order,
                          common_chart_type=None):
        common_chart_type = group_spec.get('common_chart_type',
                                           common_chart_type)

        try:
            chart_group = ChartGroup.objects.get(game=game,
                                                 parent_group=parent_group,
                                                 name=group_spec['name'])
        except ChartGroup.DoesNotExist:
            chart_group = ChartGroup(game=game,
                                     parent_group=parent_group,
                                     name=group_spec['name'],
                                     order_in_parent=order,
                                     show_charts_together=group_spec.get(
                                         'show_charts_together', False))
            chart_group.save()

        if 'child_groups' in group_spec:
            for child_order, child_group in enumerate(
                    group_spec['child_groups'], 1):
                self.visit_chart_group(child_group,
                                       game,
                                       chart_group,
                                       child_order,
                                       common_chart_type=common_chart_type)

        if 'charts' in group_spec:
            for chart_order, chart_spec in enumerate(group_spec['charts'], 1):
                # `chart_spec` can be either a dict, or just a name string.
                if isinstance(chart_spec, str):
                    chart_name = chart_spec
                    chart_type_name = None
                else:
                    chart_name = chart_spec['name']
                    chart_type_name = chart_spec.get('type')
                if not chart_type_name:
                    if not common_chart_type:
                        raise ValueError(
                            f"No chart type specified for chart {chart_name}"
                            f" of group {group_spec['name']}"
                            f" (group id {chart_group.id})")
                    chart_type_name = common_chart_type

                chart_type = ChartType.objects.get(game=game,
                                                   name=chart_type_name)
                try:
                    Chart.objects.get(chart_group=chart_group, name=chart_name)
                except Chart.DoesNotExist:
                    chart = Chart(chart_group=chart_group,
                                  name=chart_name,
                                  order_in_group=chart_order,
                                  chart_type=chart_type)
                    chart.save()
Ejemplo n.º 2
0
    def x(self):
        c = City(name='Limoeiro do Norte')
        c.save()


        name = 'Felipe Andrade Holanda'
        d = datetime(1986, 12, 22, 6, 34)
        date = d.date()
        time = d.time()

        city = c
        chart = Chart(name=name, date=date, time=time, city=city)
        chart.save()
Ejemplo n.º 3
0
def edit(request, cid=None):
    if cid:
        chart = get_object_or_404(Chart, pk=cid)
    else:
        chart = Chart(name='blank_chart',
                      data='1,2,3,4,5',
                      chart_instructions="""
chart Line dataset1 encoding=text
size 300 300 
scale 0 5
endchart""")
        chart.save()
    data = ''
    scale = ''
    ns = {}
    if 'save_chart' in request.POST:
        ds, chartimg = interp(request.POST['data'], request.POST['inst'])
        ns['inst'] = request.POST['inst']
        ns['data'] = '\r\n'.join([','.join(map(str, d)) for d in ds.values()])
        ns['chartimg'] = chartimg
        chart.data = request.POST['data']
        chart.chart_instructions = ns['inst']
        chart.save()
        return HttpResponse('<a href="/view/%d/">%s</a>' %
                            (chart.id, ns['chartimg']))
    else:
        ns['data'] = chart.data
        ns['inst'] = chart.chart_instructions
        ds, ns['chartimg'] = interp(chart.data, chart.chart_instructions)
    ns['chart'] = chart
    return render_to_response('charts/edit.html', ns)
Ejemplo n.º 4
0
    def setUpTestData(cls):
        super().setUpTestData()
        cls.game = Game(name="F-Zero")
        cls.game.save()
        ct1 = ChartType(name="CT1",
                        game=cls.game,
                        format_spec=[],
                        order_ascending=True)
        ct1.save()
        cls.cg_kl = ChartGroup(name="Knight League",
                               order_in_parent=1,
                               game=cls.game)
        cls.cg_kl.save()
        cls.cg_ql = ChartGroup(name="Queen League",
                               order_in_parent=2,
                               game=cls.game)
        cls.cg_ql.save()
        cls.cg_mc1 = ChartGroup(name="Mute City I",
                                order_in_parent=1,
                                game=cls.game,
                                parent_group=cls.cg_kl)
        cls.cg_mc1.save()
        cls.chart_mc1c = Chart(name="Course Time",
                               order_in_group=1,
                               chart_group=cls.cg_mc1,
                               chart_type=ct1)
        cls.chart_mc1c.save()

        game_2 = Game(name="F-Zero: Maximum Velocity")
        game_2.save()
        ChartGroup(name="Pawn Cup", order_in_parent=1, game=game_2).save()
Ejemplo n.º 5
0
 def create_sys_charts(self):
     from datetime import datetime
     from charts.models import Chart
     from django.contrib.auth.models import User
     admin = User.objects.get(username='******')
     now = datetime.now()
     chart = Chart.create(admin.profile, 'Now', now.date(), now.time())
     chart.save()
Ejemplo n.º 6
0
    def setUpTestData(cls):
        super().setUpTestData()
        cls.game = Game(name="G")
        cls.game.save()
        game_2 = Game(name="G")
        game_2.save()
        cg1 = ChartGroup(name="CG1", game=cls.game, order_in_parent=1)
        cg1.save()
        cls.ct1 = ChartType(
            name="CT1", game=cls.game, format_spec=[], order_ascending=True)
        cls.ct1.save()
        cls.ct2 = ChartType(
            name="CT2", game=cls.game, format_spec=[], order_ascending=True)
        cls.ct2.save()
        cls.c1 = Chart(
            name="C1", chart_group=cg1, order_in_group=1, chart_type=cls.ct1)
        cls.c1.save()
        cls.c2 = Chart(
            name="C2", chart_group=cg1, order_in_group=2, chart_type=cls.ct2)
        cls.c2.save()

        # Add FGs to game 1 specifying a different order from alphabetical
        # or FG ID, so we can tell the order field is respected.
        cls.fg1 = FilterGroup(name="FG1", game=cls.game, order_in_game=2)
        cls.fg1.save()
        cls.fg2 = FilterGroup(name="FG2", game=cls.game, order_in_game=1)
        cls.fg2.save()
        cls.fg3 = FilterGroup(name="FG3", game=cls.game, order_in_game=3)
        cls.fg3.save()
        cls.fg4 = FilterGroup(name="FG4", game=cls.game, order_in_game=4)
        cls.fg4.save()
        # Add one FG to game 2, so that we can tell we're only getting FGs
        # of game 1.
        cls.fg5 = FilterGroup(name="FG5", game=game_2, order_in_game=1)
        cls.fg5.save()

        # Don't link FG4, so we can tell we're only getting FGs of this CT.
        cls.ct1.filter_groups.add(cls.fg1, cls.fg2, cls.fg3)
Ejemplo n.º 7
0
 def save(self, *args, **kwargs):
     from charts.models import Chart
     self.name = "%s %s" % (self.user.first_name, self.user.last_name)
     self.update_datetime_city()
     super(UserProfile, self).save(*args, **kwargs)
     if self.chart:
         self.chart.date = self.date
         self.chart.time = self.time
         self.chart.save()
     else:
         if self.date:
             self.chart = Chart.create(name=self.name, date=self.date, time=self.time, city=self.city)
             self.chart.save()
     super(UserProfile, self).save(force_update=True)
Ejemplo n.º 8
0
    def setUpTestData(cls):
        super().setUpTestData()
        cls.game = Game(name="Game")
        cls.game.save()
        ct1 = ChartType(name="CT1",
                        game=cls.game,
                        format_spec=[],
                        order_ascending=True)
        ct1.save()

        # Make a chart group hierarchy with breadth and depth of at least 5.
        # And add about as many charts, some top level, some nested.

        for n in range(1, 5 + 1):
            cg = ChartGroup(name=f"Top level group {n}",
                            order_in_parent=n,
                            game=cls.game)
            cg.save()
            chart = Chart(chart_group=cg,
                          name=f"Chart {cg.id}",
                          order_in_group=1,
                          chart_type=ct1)
            chart.save()

        cg = ChartGroup(name=f"Top level group 6",
                        order_in_parent=6,
                        game=cls.game)
        cg.save()
        prev_cg = cg
        for n in range(1, 5 + 1):
            cg = ChartGroup(name=f"Nested group {n}",
                            order_in_parent=1,
                            parent_group=prev_cg,
                            game=cls.game)
            cg.save()
            prev_cg = cg
        for n in range(1, 5 + 1):
            chart = Chart(chart_group=cg,
                          name=f"Nested chart {cg.id}",
                          order_in_group=n,
                          chart_type=ct1)
            chart.save()
Ejemplo n.º 9
0
def init_chart(language):
    c = Chart()
    c.week = datetime.datetime.today()
    c.language = language
    c.save()
    return c