Пример #1
0
    def testBasic(self):
        self.assertEqual(parse_docs.check_cycle_template('cycle_line'), True)
        self.assertEqual(parse_docs.check_cycle_template('cycle_Line'), True)
        self.assertEqual(parse_docs.check_cycle_template('Cycle_Line'), False)
        self.assertEqual(parse_docs.check_cycle_template('Cycle_Line'), False)
        self.assertEqual(parse_docs.check_cycle_template('_tagname_'), False)

        self.assertEqual(parse_docs.check_cycle('cycle_line_TagName_'), True)
        self.assertEqual(parse_docs.check_cycle('_TagName_'), False)
        self.assertEqual(parse_docs.check_cycle('cycle_line_'), False)
        self.assertEqual(parse_docs.check_cycle('cycle_line'), False)

        self.assertEqual(parse_docs.get_template_from_tagname('cycle_line_tagname'), 'cycle_line')
        self.assertEqual(parse_docs.get_tagname_from_tag_with_num('cycle_line_tagname_13'), 'cycle_line_tagname')
        self.assertEqual(parse_docs.get_num_from_tag_with_num('cycle_line_tagname_13'), '13')
Пример #2
0
    def get_all_datatags(self, number):
        """Get all data Tags from document_number

        Input:
            number - main.Number
        Output:
            list of dict
                tag_name - text
                tag_value - text
                tag_description - (Template.desc +num+ |+ desc if cycle)
                cycle - True/False
                cycle_template - True/False
                tag_id
        """
        data_tags = self.data.filter(number = number)
        out = []
        for data_tag in data_tags:
            tag_name = data_tag.tag_name
            tag_value = data_tag.tag_value
            cycle = parse_docs.check_cycle(tag_name)
            cycle_template = parse_docs.check_cycle_template(tag_name)
            if cycle:
                name = parse_docs.get_tagname_from_tag_with_num(tag_name)
                tag = self.tag.get(name = name)
                template = parse_docs.get_template_from_tagname(name)
                tag_template = self.tag.get(name = template)
                num = parse_docs.get_num_from_tag_with_num(tag_name)
                tag_description = tag_template.description +' '+str(
                                  int(num)+1)+ ' |' + tag.description
                tag_id = tag.id
            else:
                tag = self.tag.get(name = tag_name)
                if cycle_template:
                    tag_value = str(int(tag_value)+1)

                tag_description = tag.description
                tag_id = tag.id

            out.append({
                'tag_name': tag_name,
                'tag_value': tag_value,
                'tag_description': tag_description,
                'cycle': cycle,
                'cycle_template': cycle_template,
                'tag_id': tag_id
                })

        return out
Пример #3
0
    def modify_cycle_tags(self, number, tag_name, count):
        """Decrement num tags, if >= count

        Input:
            number - Number
            tag_name - cycle_template
            count - count of rows in table
        """
        for data in self.data.filter(number = number):
            if parse_docs.check_cycle(data.tag_name):
                if parse_docs.get_template_from_tagname(
                        data.tag_name) == tag_name:
                    num = parse_docs.get_num_from_tag_with_num(
                                        data.tag_name)
                    if int(num) >= count:
                        num = str(int(num)-1)
                        data.tag_name = parse_docs.get_tagname_from_tag_with_num(
                            data.tag_name) + '_' + num
                        data.save()
Пример #4
0
    def del_tag_from_datadoc(self, number, tag_name, row = '-1'):
        """Del one tag, from data of number, return True if ok"""

        try:
            # Test and change number (for date - change)
            if self.change_number(number = number):
                # if can change - delete
                if parse_docs.check_cycle_template(tag_name):
                    for data in self.data.filter(number = number):
                        if parse_docs.check_cycle(data.tag_name):
                            if parse_docs.get_template_from_tagname(
                                    data.tag_name) == tag_name:
                                if row != '-1' and parse_docs.get_num_from_tag_with_num(
                                        data.tag_name) == row:
                                    data.delete()
                                elif row == '-1':
                                    data.delete()

                    table = self.data.get(number = number,
                                          tag_name = tag_name)

                    if row == '-1':
                        table.tag_value = 0

                    table.tag_value = str(int(table.tag_value)-1)
                    if table.tag_value == '-1':
                        table.delete()
                    else:
                        table.save()
                        self.modify_cycle_tags(number,
                                               tag_name,
                                               int(row))

                else:
                    self.data.get(number = number, 
                                  tag_name = tag_name).delete()

                return True
            else:
                return False
        except ObjectDoesNotExist:
            return False